From a0a31e55aeadf96cfe3c33c2ebb17de687c59a68 Mon Sep 17 00:00:00 2001 From: Sarah McAlear Date: Fri, 24 Feb 2017 17:01:20 +0000 Subject: [PATCH] Move 3rd party client code into vendor/ directories for ease of maintenance. --- web/pgadmin/browser/__init__.py | 38 +- .../servers/templates/css/servers.css | 2 +- .../{css => vendor}/aciTree/css/aciTree.css | 1098 ++-- .../aciTree/image/drag-drop-rtl.png | Bin .../aciTree/image/drag-drop.png | Bin .../{css => vendor}/aciTree/image/eyes.png | Bin .../aciTree/image/load-node.gif | Bin .../aciTree/image/load-root.gif | Bin .../aciTree/image/tree-arrow-big-rtl.png | Bin .../aciTree/image/tree-arrow-big.png | Bin .../aciTree/image/tree-arrow-small-rtl.png | Bin .../aciTree/image/tree-arrow-small.png | Bin .../aciTree/image/tree-big-rtl.png | Bin .../aciTree/image/tree-big.png | Bin .../aciTree/image/tree-branch.png | Bin .../aciTree/image/tree-check-big-rtl.png | Bin .../aciTree/image/tree-check-big.png | Bin .../aciTree/image/tree-check-small-rtl.png | Bin .../aciTree/image/tree-check-small.png | Bin .../aciTree/image/tree-small-rtl.png | Bin .../aciTree/image/tree-small.png | Bin .../aciTree/jquery.aciFragment.min.js | 30 +- .../aciTree/jquery.aciPlugin.min.js | 0 .../aciTree/jquery.aciSortable.min.js | 26 +- .../aciTree/jquery.aciTree.checkbox.js | 0 .../aciTree/jquery.aciTree.column.js | 0 .../aciTree/jquery.aciTree.core.js | 5088 ++++++++--------- .../aciTree/jquery.aciTree.debug.js | 0 .../aciTree/jquery.aciTree.dom.js | 1320 ++--- .../aciTree/jquery.aciTree.editable.js | 0 .../aciTree/jquery.aciTree.hash.js | 0 .../{js => vendor}/aciTree/jquery.aciTree.js | 0 .../aciTree/jquery.aciTree.min.js | 88 +- .../aciTree/jquery.aciTree.persist.js | 0 .../aciTree/jquery.aciTree.radio.js | 0 .../aciTree/jquery.aciTree.selectable.js | 0 .../aciTree/jquery.aciTree.sortable.js | 0 .../aciTree/jquery.aciTree.utils.js | 0 .../browser/templates/browser/js/browser.js | 4 +- web/pgadmin/misc/file_manager/__init__.py | 2 +- .../templates/file_manager/index.html | 4 +- ...{overrides.css => bootstrap.overrides.css} | 0 .../pgadmin.css => webcabin.overrides.css} | 0 ...faults.js => alertify.pgadmin.defaults.js} | 0 .../js/{backgrid => }/backgrid.pgadmin.js | 0 web/pgadmin/static/js/npm.js | 13 - .../{css => vendor}/alertifyjs/alertify.css | 0 .../{js => vendor}/alertifyjs/alertify.js | 0 .../alertifyjs/alertify.min.css | 0 .../{js => vendor}/alertifyjs/alertify.min.js | 0 .../alertifyjs/alertify.rtl.css | 0 .../alertifyjs/alertify.rtl.min.css | 0 .../alertifyjs/themes/bootstrap.css | 0 .../alertifyjs/themes/bootstrap.min.css | 0 .../alertifyjs/themes/bootstrap.rtl.css | 0 .../alertifyjs/themes/bootstrap.rtl.min.css | 0 .../alertifyjs/themes/default.css | 0 .../alertifyjs/themes/default.min.css | 0 .../alertifyjs/themes/default.rtl.css | 0 .../alertifyjs/themes/default.rtl.min.css | 0 .../alertifyjs/themes/semantic.css | 0 .../alertifyjs/themes/semantic.min.css | 0 .../alertifyjs/themes/semantic.rtl.css | 0 .../alertifyjs/themes/semantic.rtl.min.css | 0 .../{js => vendor/backbone}/backbone-min.js | 0 .../{js => vendor/backbone}/backbone.js | 0 .../backbone}/backbone.paginator.js | 0 .../backbone}/backbone.paginator.min.js | 0 .../{js => vendor/backbone}/backbone.undo.js | 0 .../backbone}/backbone.undo.min.js | 0 .../{js => vendor/backform}/backform.js | 0 .../backgrid/backgrid-filter.css | 0 .../backgrid/backgrid-filter.js | 0 .../backgrid/backgrid-filter.min.css | 0 .../backgrid/backgrid-filter.min.js | 0 .../backgrid/backgrid-paginator.css | 0 .../backgrid/backgrid-paginator.js | 0 .../backgrid/backgrid-paginator.min.css | 0 .../backgrid/backgrid-paginator.min.js | 0 .../backgrid/backgrid-select-all.css | 0 .../backgrid/backgrid-select-all.js | 0 .../backgrid/backgrid-select-all.min.css | 0 .../backgrid/backgrid-select-all.min.js | 0 .../backgrid/backgrid-sizeable-columns.css | 0 .../backgrid/backgrid-sizeable-columns.js | 0 .../{css => vendor}/backgrid/backgrid.css | 0 .../{js => vendor}/backgrid/backgrid.js | 0 .../{css => vendor}/backgrid/backgrid.min.css | 0 .../{js => vendor}/backgrid/backgrid.min.js | 0 .../{js => vendor}/bignumber/bignumber.js | 0 .../{js => vendor}/bignumber/bignumber.min.js | 0 .../bootstrap}/bootstrap-datepicker.js | 0 .../bootstrap}/bootstrap-datepicker.min.js | 0 .../bootstrap}/bootstrap-datepicker3.css | 0 .../bootstrap}/bootstrap-datepicker3.min.css | 0 .../bootstrap}/bootstrap-datetimepicker.js | 0 .../bootstrap-datetimepicker.min.css | 0 .../bootstrap-datetimepicker.min.js | 0 .../bootstrap}/bootstrap-switch.css | 0 .../bootstrap}/bootstrap-switch.js | 0 .../bootstrap}/bootstrap-switch.min.css | 0 .../bootstrap}/bootstrap-switch.min.js | 0 .../bootstrap}/bootstrap-theme.css | 0 .../bootstrap}/bootstrap-theme.css.map | 0 .../bootstrap}/bootstrap-theme.min.css | 0 .../{css => vendor/bootstrap}/bootstrap.css | 0 .../bootstrap}/bootstrap.css.map | 0 .../{js => vendor/bootstrap}/bootstrap.js | 0 .../bootstrap}/bootstrap.min.css | 0 .../{js => vendor/bootstrap}/bootstrap.min.js | 0 .../glyphicons-halflings-regular.eot | Bin .../glyphicons-halflings-regular.svg | 0 .../glyphicons-halflings-regular.ttf | Bin .../glyphicons-halflings-regular.woff | Bin .../glyphicons-halflings-regular.woff2 | Bin .../codemirror/addon/comment/comment.js | 0 .../addon/comment/continuecomment.js | 0 .../codemirror/addon/dialog/dialog.css | 0 .../codemirror/addon/dialog/dialog.js | 0 .../codemirror/addon/display/autorefresh.js | 0 .../codemirror/addon/display/fullscreen.css | 0 .../codemirror/addon/display/fullscreen.js | 0 .../codemirror/addon/display/panel.js | 0 .../codemirror/addon/display/placeholder.js | 0 .../codemirror/addon/display/rulers.js | 0 .../codemirror/addon/edit/closebrackets.js | 0 .../codemirror/addon/edit/closetag.js | 0 .../codemirror/addon/edit/continuelist.js | 0 .../codemirror/addon/edit/matchbrackets.js | 0 .../codemirror/addon/edit/matchtags.js | 0 .../codemirror/addon/edit/trailingspace.js | 0 .../codemirror/addon/fold/brace-fold.js | 0 .../codemirror/addon/fold/comment-fold.js | 0 .../codemirror/addon/fold/foldcode.js | 0 .../codemirror/addon/fold/foldgutter.css | 0 .../codemirror/addon/fold/foldgutter.js | 0 .../codemirror/addon/fold/indent-fold.js | 0 .../codemirror/addon/fold/markdown-fold.js | 0 .../addon/fold/pgadmin-sqlfoldcode.js | 0 .../codemirror/addon/fold/xml-fold.js | 0 .../codemirror/addon/hint/anyword-hint.js | 0 .../codemirror/addon/hint/css-hint.js | 0 .../codemirror/addon/hint/html-hint.js | 0 .../codemirror/addon/hint/javascript-hint.js | 0 .../codemirror/addon/hint/show-hint.css | 0 .../codemirror/addon/hint/show-hint.js | 0 .../codemirror/addon/hint/sql-hint.js | 0 .../codemirror/addon/hint/xml-hint.js | 0 .../addon/lint/coffeescript-lint.js | 0 .../codemirror/addon/lint/css-lint.js | 0 .../codemirror/addon/lint/html-lint.js | 0 .../codemirror/addon/lint/javascript-lint.js | 0 .../codemirror/addon/lint/json-lint.js | 0 .../codemirror/addon/lint/lint.css | 0 .../codemirror/addon/lint/lint.js | 0 .../codemirror/addon/lint/yaml-lint.js | 0 .../codemirror/addon/merge/merge.css | 0 .../codemirror/addon/merge/merge.js | 0 .../codemirror/addon/mode/loadmode.js | 0 .../codemirror/addon/mode/multiplex.js | 0 .../codemirror/addon/mode/multiplex_test.js | 0 .../codemirror/addon/mode/overlay.js | 0 .../codemirror/addon/mode/simple.js | 0 .../codemirror/addon/runmode/colorize.js | 0 .../addon/runmode/runmode-standalone.js | 0 .../codemirror/addon/runmode/runmode.js | 0 .../codemirror/addon/runmode/runmode.node.js | 0 .../addon/scroll/annotatescrollbar.js | 0 .../codemirror/addon/scroll/scrollpastend.js | 0 .../addon/scroll/simplescrollbars.css | 0 .../addon/scroll/simplescrollbars.js | 0 .../codemirror/addon/search/jump-to-line.js | 0 .../addon/search/match-highlighter.js | 0 .../addon/search/matchesonscrollbar.css | 0 .../addon/search/matchesonscrollbar.js | 0 .../codemirror/addon/search/search.js | 0 .../codemirror/addon/search/searchcursor.js | 0 .../codemirror/addon/selection/active-line.js | 0 .../addon/selection/mark-selection.js | 0 .../addon/selection/selection-pointer.js | 0 .../codemirror/addon/tern/tern.css | 0 .../codemirror/addon/tern/tern.js | 0 .../codemirror/addon/tern/worker.js | 0 .../codemirror/addon/wrap/hardwrap.js | 0 .../{css => vendor}/codemirror/codemirror.css | 0 .../codemirror/lib/codemirror.js | 0 .../{js => vendor}/codemirror/mode/sql/sql.js | 0 .../static/{js => vendor}/flotr2/bean-min.js | 0 .../static/{js => vendor}/flotr2/bean.js | 0 .../{js => vendor}/flotr2/flotr2.amd.js | 0 .../static/vendor/font-awesome/.npmignore | 42 + .../vendor/font-awesome/HELP-US-OUT.txt | 7 + .../static/vendor/font-awesome/README.md | 100 + .../font-awesome}/css/font-awesome.css | 0 .../font-awesome/css/font-awesome.css.map | 7 + .../font-awesome}/css/font-awesome.min.css | 0 .../font-awesome}/fonts/FontAwesome.otf | Bin .../fonts/fontawesome-webfont.eot | Bin .../fonts/fontawesome-webfont.svg | 0 .../fonts/fontawesome-webfont.ttf | Bin .../fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin .../vendor/font-awesome/less/animated.less | 34 + .../font-awesome/less/bordered-pulled.less | 25 + .../static/vendor/font-awesome/less/core.less | 12 + .../vendor/font-awesome/less/fixed-width.less | 6 + .../font-awesome/less/font-awesome.less | 17 + .../vendor/font-awesome/less/icons.less | 697 +++ .../vendor/font-awesome/less/larger.less | 13 + .../static/vendor/font-awesome/less/list.less | 19 + .../vendor/font-awesome/less/mixins.less | 26 + .../static/vendor/font-awesome/less/path.less | 15 + .../font-awesome/less/rotated-flipped.less | 20 + .../vendor/font-awesome/less/stacked.less | 20 + .../vendor/font-awesome/less/variables.less | 708 +++ .../static/vendor/font-awesome/package.json | 104 + .../vendor/font-awesome/scss/_animated.scss | 34 + .../font-awesome/scss/_bordered-pulled.scss | 25 + .../vendor/font-awesome/scss/_core.scss | 12 + .../font-awesome/scss/_fixed-width.scss | 6 + .../vendor/font-awesome/scss/_icons.scss | 697 +++ .../vendor/font-awesome/scss/_larger.scss | 13 + .../vendor/font-awesome/scss/_list.scss | 19 + .../vendor/font-awesome/scss/_mixins.scss | 26 + .../vendor/font-awesome/scss/_path.scss | 15 + .../font-awesome/scss/_rotated-flipped.scss | 20 + .../vendor/font-awesome/scss/_stacked.scss | 20 + .../vendor/font-awesome/scss/_variables.scss | 708 +++ .../font-awesome/scss/font-awesome.scss | 17 + .../{css => vendor/font-mfizz}/font-mfizz.css | 12 +- .../font-mfizz}/font-mfizz.eot | Bin .../font-mfizz}/font-mfizz.svg | 0 .../font-mfizz}/font-mfizz.ttf | Bin .../font-mfizz}/font-mfizz.woff | Bin .../font/context-menu-icons.eot | Bin .../font/context-menu-icons.ttf | Bin .../font/context-menu-icons.woff | Bin .../font/context-menu-icons.woff2 | Bin .../jQuery-contextMenu/jquery.contextMenu.css | 0 .../jQuery-contextMenu/jquery.contextMenu.js | 0 .../jquery.contextMenu.min.css | 0 .../jquery.contextMenu.min.css.map | 0 .../jquery.contextMenu.min.js | 0 .../jQuery-contextMenu/jquery.ui.position.js | 0 .../jquery.ui.position.min.js | 0 .../jquery-ui/jquery-ui-1.11.3.js | 0 .../jquery-ui/jquery-ui-1.11.3.min.js | 0 .../jquery-ui/jquery.event.drag-2.2.js | 0 .../jquery-ui/jquery.event.drop-2.2.js | 0 .../jquery.dropzone/dropzone.css | 0 .../jquery.dropzone/dropzone.js | 0 .../{js => vendor/jquery}/jquery-1.11.2.js | 0 .../jquery}/jquery-1.11.2.min.js | 0 .../modernizr-2.6.2-respond-1.1.0.min.js | 0 .../moment}/moment-with-locales.js | 0 .../moment}/moment-with-locales.min.js | 0 .../static/{js => vendor/require}/require.js | 0 .../{js => vendor/require}/require.min.js | 0 .../static/{js => vendor}/select2/i18n/ar.js | 0 .../static/{js => vendor}/select2/i18n/az.js | 0 .../static/{js => vendor}/select2/i18n/bg.js | 0 .../static/{js => vendor}/select2/i18n/ca.js | 0 .../static/{js => vendor}/select2/i18n/cs.js | 0 .../static/{js => vendor}/select2/i18n/da.js | 0 .../static/{js => vendor}/select2/i18n/de.js | 0 .../static/{js => vendor}/select2/i18n/en.js | 0 .../static/{js => vendor}/select2/i18n/es.js | 0 .../static/{js => vendor}/select2/i18n/et.js | 0 .../static/{js => vendor}/select2/i18n/eu.js | 0 .../static/{js => vendor}/select2/i18n/fa.js | 0 .../static/{js => vendor}/select2/i18n/fi.js | 0 .../static/{js => vendor}/select2/i18n/fr.js | 0 .../static/{js => vendor}/select2/i18n/gl.js | 0 .../static/{js => vendor}/select2/i18n/he.js | 0 .../static/{js => vendor}/select2/i18n/hi.js | 0 .../static/{js => vendor}/select2/i18n/hr.js | 0 .../static/{js => vendor}/select2/i18n/hu.js | 0 .../static/{js => vendor}/select2/i18n/id.js | 0 .../static/{js => vendor}/select2/i18n/is.js | 0 .../static/{js => vendor}/select2/i18n/it.js | 0 .../static/{js => vendor}/select2/i18n/ja.js | 0 .../static/{js => vendor}/select2/i18n/ko.js | 0 .../static/{js => vendor}/select2/i18n/lt.js | 0 .../static/{js => vendor}/select2/i18n/lv.js | 0 .../static/{js => vendor}/select2/i18n/mk.js | 0 .../static/{js => vendor}/select2/i18n/ms.js | 0 .../static/{js => vendor}/select2/i18n/nb.js | 0 .../static/{js => vendor}/select2/i18n/nl.js | 0 .../static/{js => vendor}/select2/i18n/pl.js | 0 .../{js => vendor}/select2/i18n/pt-BR.js | 0 .../static/{js => vendor}/select2/i18n/pt.js | 0 .../static/{js => vendor}/select2/i18n/ro.js | 0 .../static/{js => vendor}/select2/i18n/ru.js | 0 .../static/{js => vendor}/select2/i18n/sk.js | 0 .../{js => vendor}/select2/i18n/sr-Cyrl.js | 0 .../static/{js => vendor}/select2/i18n/sr.js | 0 .../static/{js => vendor}/select2/i18n/sv.js | 0 .../static/{js => vendor}/select2/i18n/th.js | 0 .../static/{js => vendor}/select2/i18n/tr.js | 0 .../static/{js => vendor}/select2/i18n/uk.js | 0 .../static/{js => vendor}/select2/i18n/vi.js | 0 .../{js => vendor}/select2/i18n/zh-CN.js | 0 .../{js => vendor}/select2/i18n/zh-TW.js | 0 .../{css => vendor}/select2/select2.css | 0 .../{js => vendor}/select2/select2.full.js | 0 .../select2/select2.full.min.js | 0 .../{css => vendor}/select2/select2.min.css | 0 .../static/{js => vendor}/slickgrid/README | 0 .../slickgrid/controls/slick.columnpicker.css | 0 .../slickgrid/controls/slick.columnpicker.js | 0 .../slickgrid/controls/slick.pager.css | 0 .../slickgrid/controls/slick.pager.js | 0 .../slickgrid/images/actions.gif | Bin .../slickgrid/images/ajax-loader-small.gif | Bin .../slickgrid/images/arrow_redo.png | Bin .../images/arrow_right_peppermint.png | Bin .../images/arrow_right_spearmint.png | Bin .../slickgrid/images/arrow_undo.png | Bin .../slickgrid/images/bullet_blue.png | Bin .../slickgrid/images/bullet_star.png | Bin .../slickgrid/images/bullet_toggle_minus.png | Bin .../slickgrid/images/bullet_toggle_plus.png | Bin .../slickgrid/images/calendar.gif | Bin .../slickgrid/images/collapse.gif | Bin .../slickgrid/images/comment_yellow.gif | Bin .../{css => vendor}/slickgrid/images/down.gif | Bin .../slickgrid/images/drag-handle.png | Bin .../slickgrid/images/editor-helper-bg.gif | Bin .../slickgrid/images/expand.gif | Bin .../slickgrid/images/header-bg.gif | Bin .../slickgrid/images/header-columns-bg.gif | Bin .../images/header-columns-over-bg.gif | Bin .../{css => vendor}/slickgrid/images/help.png | Bin .../{css => vendor}/slickgrid/images/info.gif | Bin .../slickgrid/images/listview.gif | Bin .../slickgrid/images/pencil.gif | Bin .../slickgrid/images/row-over-bg.gif | Bin .../slickgrid/images/sort-asc.gif | Bin .../slickgrid/images/sort-asc.png | Bin .../slickgrid/images/sort-desc.gif | Bin .../slickgrid/images/sort-desc.png | Bin .../slickgrid/images/stripes.png | Bin .../slickgrid/images/tag_red.png | Bin .../{css => vendor}/slickgrid/images/tick.png | Bin .../slickgrid/images/user_identity.gif | Bin .../slickgrid/images/user_identity_plus.gif | Bin .../slickgrid/plugins/slick.autotooltips.js | 0 .../plugins/slick.cellcopymanager.js | 0 .../plugins/slick.cellrangedecorator.js | 0 .../plugins/slick.cellrangeselector.js | 0 .../plugins/slick.cellselectionmodel.js | 0 .../plugins/slick.checkboxselectcolumn.js | 0 .../slickgrid/plugins/slick.headerbuttons.css | 0 .../slickgrid/plugins/slick.headerbuttons.js | 0 .../slickgrid/plugins/slick.headermenu.css | 0 .../slickgrid/plugins/slick.headermenu.js | 0 .../slickgrid/plugins/slick.rowmovemanager.js | 0 .../plugins/slick.rowselectionmodel.js | 0 .../slickgrid/slick-default-theme.css | 0 .../{js => vendor}/slickgrid/slick.core.js | 0 .../slickgrid/slick.dataview.js | 0 .../{js => vendor}/slickgrid/slick.editors.js | 0 .../slickgrid/slick.formatters.js | 0 .../{css => vendor}/slickgrid/slick.grid.css | 0 .../{js => vendor}/slickgrid/slick.grid.js | 0 .../slickgrid/slick.pgadmin.editors.js | 0 .../slickgrid/slick.pgadmin.formatters.js | 0 .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_flat_75_ffffff_40x100.png | Bin .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../images/ui-bg_glass_65_ffffff_1x400.png | Bin .../images/ui-bg_glass_75_dadada_1x400.png | Bin .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../images/ui-icons_222222_256x240.png | Bin .../images/ui-icons_2e83ff_256x240.png | Bin .../images/ui-icons_454545_256x240.png | Bin .../images/ui-icons_888888_256x240.png | Bin .../images/ui-icons_cd0a0a_256x240.png | Bin .../smoothness/jquery-ui-1.11.3.custom.css | 0 .../jquery-ui-1.11.3.custom.min.css | 0 .../underscore}/underscore-min.js | 0 .../{js => vendor/underscore}/underscore.js | 0 .../underscore}/underscore.string.js | 0 .../underscore}/underscore.string.min.js | 0 .../static/{js => vendor}/wcDocker/README | 0 .../wcDocker/Themes/default.css | 0 .../wcDocker/Themes/default.min.css | 0 .../{css => vendor}/wcDocker/wcDocker.css | 0 .../{js => vendor}/wcDocker/wcDocker.js | 0 .../{css => vendor}/wcDocker/wcDocker.min.css | 0 .../{js => vendor}/wcDocker/wcDocker.min.js | 0 web/pgadmin/templates/base.html | 105 +- .../debugger/templates/debugger/js/direct.js | 4 +- .../templates/sqleditor/js/sqleditor.js | 4 +- 396 files changed, 7398 insertions(+), 3924 deletions(-) rename web/pgadmin/browser/static/{css => vendor}/aciTree/css/aciTree.css (97%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/drag-drop-rtl.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/drag-drop.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/eyes.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/load-node.gif (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/load-root.gif (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-arrow-big-rtl.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-arrow-big.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-arrow-small-rtl.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-arrow-small.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-big-rtl.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-big.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-branch.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-check-big-rtl.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-check-big.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-check-small-rtl.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-check-small.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-small-rtl.png (100%) rename web/pgadmin/browser/static/{css => vendor}/aciTree/image/tree-small.png (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciFragment.min.js (99%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciPlugin.min.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciSortable.min.js (99%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.checkbox.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.column.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.core.js (97%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.debug.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.dom.js (97%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.editable.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.hash.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.min.js (99%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.persist.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.radio.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.selectable.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.sortable.js (100%) rename web/pgadmin/browser/static/{js => vendor}/aciTree/jquery.aciTree.utils.js (100%) rename web/pgadmin/static/css/{overrides.css => bootstrap.overrides.css} (100%) rename web/pgadmin/static/css/{wcDocker/Themes/pgadmin.css => webcabin.overrides.css} (100%) rename web/pgadmin/static/js/{alertifyjs/pgadmin.defaults.js => alertify.pgadmin.defaults.js} (100%) rename web/pgadmin/static/js/{backgrid => }/backgrid.pgadmin.js (100%) delete mode 100644 web/pgadmin/static/js/npm.js rename web/pgadmin/static/{css => vendor}/alertifyjs/alertify.css (100%) rename web/pgadmin/static/{js => vendor}/alertifyjs/alertify.js (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/alertify.min.css (100%) rename web/pgadmin/static/{js => vendor}/alertifyjs/alertify.min.js (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/alertify.rtl.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/alertify.rtl.min.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/bootstrap.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/bootstrap.min.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/bootstrap.rtl.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/bootstrap.rtl.min.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/default.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/default.min.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/default.rtl.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/default.rtl.min.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/semantic.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/semantic.min.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/semantic.rtl.css (100%) rename web/pgadmin/static/{css => vendor}/alertifyjs/themes/semantic.rtl.min.css (100%) rename web/pgadmin/static/{js => vendor/backbone}/backbone-min.js (100%) rename web/pgadmin/static/{js => vendor/backbone}/backbone.js (100%) rename web/pgadmin/static/{js => vendor/backbone}/backbone.paginator.js (100%) rename web/pgadmin/static/{js => vendor/backbone}/backbone.paginator.min.js (100%) rename web/pgadmin/static/{js => vendor/backbone}/backbone.undo.js (100%) rename web/pgadmin/static/{js => vendor/backbone}/backbone.undo.min.js (100%) rename web/pgadmin/static/{js => vendor/backform}/backform.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid-filter.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid-filter.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid-filter.min.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid-filter.min.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid-paginator.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid-paginator.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid-paginator.min.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid-paginator.min.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid-select-all.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid-select-all.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid-select-all.min.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid-select-all.min.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid-sizeable-columns.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid-sizeable-columns.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid.js (100%) rename web/pgadmin/static/{css => vendor}/backgrid/backgrid.min.css (100%) rename web/pgadmin/static/{js => vendor}/backgrid/backgrid.min.js (100%) rename web/pgadmin/static/{js => vendor}/bignumber/bignumber.js (100%) rename web/pgadmin/static/{js => vendor}/bignumber/bignumber.min.js (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap-datepicker.js (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap-datepicker.min.js (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-datepicker3.css (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-datepicker3.min.css (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap-datetimepicker.js (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-datetimepicker.min.css (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap-datetimepicker.min.js (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-switch.css (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap-switch.js (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-switch.min.css (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap-switch.min.js (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-theme.css (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-theme.css.map (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap-theme.min.css (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap.css (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap.css.map (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap.js (100%) rename web/pgadmin/static/{css => vendor/bootstrap}/bootstrap.min.css (100%) rename web/pgadmin/static/{js => vendor/bootstrap}/bootstrap.min.js (100%) rename web/pgadmin/static/{fonts => vendor/bootstrap}/glyphicons-halflings-regular.eot (100%) rename web/pgadmin/static/{fonts => vendor/bootstrap}/glyphicons-halflings-regular.svg (100%) rename web/pgadmin/static/{fonts => vendor/bootstrap}/glyphicons-halflings-regular.ttf (100%) rename web/pgadmin/static/{fonts => vendor/bootstrap}/glyphicons-halflings-regular.woff (100%) rename web/pgadmin/static/{fonts => vendor/bootstrap}/glyphicons-halflings-regular.woff2 (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/comment/comment.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/comment/continuecomment.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/dialog/dialog.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/dialog/dialog.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/display/autorefresh.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/display/fullscreen.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/display/fullscreen.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/display/panel.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/display/placeholder.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/display/rulers.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/edit/closebrackets.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/edit/closetag.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/edit/continuelist.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/edit/matchbrackets.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/edit/matchtags.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/edit/trailingspace.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/brace-fold.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/comment-fold.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/foldcode.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/foldgutter.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/foldgutter.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/indent-fold.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/markdown-fold.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/pgadmin-sqlfoldcode.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/fold/xml-fold.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/anyword-hint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/css-hint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/html-hint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/javascript-hint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/show-hint.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/show-hint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/sql-hint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/hint/xml-hint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/coffeescript-lint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/css-lint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/html-lint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/javascript-lint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/json-lint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/lint.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/lint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/lint/yaml-lint.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/merge/merge.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/merge/merge.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/mode/loadmode.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/mode/multiplex.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/mode/multiplex_test.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/mode/overlay.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/mode/simple.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/runmode/colorize.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/runmode/runmode-standalone.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/runmode/runmode.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/runmode/runmode.node.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/scroll/annotatescrollbar.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/scroll/scrollpastend.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/scroll/simplescrollbars.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/scroll/simplescrollbars.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/search/jump-to-line.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/search/match-highlighter.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/search/matchesonscrollbar.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/search/matchesonscrollbar.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/search/search.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/search/searchcursor.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/selection/active-line.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/selection/mark-selection.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/selection/selection-pointer.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/tern/tern.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/tern/tern.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/tern/worker.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/addon/wrap/hardwrap.js (100%) rename web/pgadmin/static/{css => vendor}/codemirror/codemirror.css (100%) rename web/pgadmin/static/{js => vendor}/codemirror/lib/codemirror.js (100%) rename web/pgadmin/static/{js => vendor}/codemirror/mode/sql/sql.js (100%) rename web/pgadmin/static/{js => vendor}/flotr2/bean-min.js (100%) rename web/pgadmin/static/{js => vendor}/flotr2/bean.js (100%) rename web/pgadmin/static/{js => vendor}/flotr2/flotr2.amd.js (100%) create mode 100644 web/pgadmin/static/vendor/font-awesome/.npmignore create mode 100644 web/pgadmin/static/vendor/font-awesome/HELP-US-OUT.txt create mode 100644 web/pgadmin/static/vendor/font-awesome/README.md rename web/pgadmin/static/{ => vendor/font-awesome}/css/font-awesome.css (100%) create mode 100644 web/pgadmin/static/vendor/font-awesome/css/font-awesome.css.map rename web/pgadmin/static/{ => vendor/font-awesome}/css/font-awesome.min.css (100%) rename web/pgadmin/static/{ => vendor/font-awesome}/fonts/FontAwesome.otf (100%) rename web/pgadmin/static/{ => vendor/font-awesome}/fonts/fontawesome-webfont.eot (100%) rename web/pgadmin/static/{ => vendor/font-awesome}/fonts/fontawesome-webfont.svg (100%) rename web/pgadmin/static/{ => vendor/font-awesome}/fonts/fontawesome-webfont.ttf (100%) rename web/pgadmin/static/{ => vendor/font-awesome}/fonts/fontawesome-webfont.woff (100%) rename web/pgadmin/static/{ => vendor/font-awesome}/fonts/fontawesome-webfont.woff2 (100%) create mode 100644 web/pgadmin/static/vendor/font-awesome/less/animated.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/bordered-pulled.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/core.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/fixed-width.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/font-awesome.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/icons.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/larger.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/list.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/mixins.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/path.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/rotated-flipped.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/stacked.less create mode 100644 web/pgadmin/static/vendor/font-awesome/less/variables.less create mode 100644 web/pgadmin/static/vendor/font-awesome/package.json create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_animated.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_bordered-pulled.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_core.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_fixed-width.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_icons.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_larger.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_list.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_mixins.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_path.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_rotated-flipped.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_stacked.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/_variables.scss create mode 100644 web/pgadmin/static/vendor/font-awesome/scss/font-awesome.scss rename web/pgadmin/static/{css => vendor/font-mfizz}/font-mfizz.css (95%) mode change 100644 => 100755 rename web/pgadmin/static/{fonts => vendor/font-mfizz}/font-mfizz.eot (100%) mode change 100644 => 100755 rename web/pgadmin/static/{fonts => vendor/font-mfizz}/font-mfizz.svg (100%) mode change 100644 => 100755 rename web/pgadmin/static/{fonts => vendor/font-mfizz}/font-mfizz.ttf (100%) mode change 100644 => 100755 rename web/pgadmin/static/{fonts => vendor/font-mfizz}/font-mfizz.woff (100%) mode change 100644 => 100755 rename web/pgadmin/static/{css => vendor}/jQuery-contextMenu/font/context-menu-icons.eot (100%) rename web/pgadmin/static/{css => vendor}/jQuery-contextMenu/font/context-menu-icons.ttf (100%) rename web/pgadmin/static/{css => vendor}/jQuery-contextMenu/font/context-menu-icons.woff (100%) rename web/pgadmin/static/{css => vendor}/jQuery-contextMenu/font/context-menu-icons.woff2 (100%) rename web/pgadmin/static/{css => vendor}/jQuery-contextMenu/jquery.contextMenu.css (100%) rename web/pgadmin/static/{js => vendor}/jQuery-contextMenu/jquery.contextMenu.js (100%) rename web/pgadmin/static/{css => vendor}/jQuery-contextMenu/jquery.contextMenu.min.css (100%) rename web/pgadmin/static/{css => vendor}/jQuery-contextMenu/jquery.contextMenu.min.css.map (100%) rename web/pgadmin/static/{js => vendor}/jQuery-contextMenu/jquery.contextMenu.min.js (100%) rename web/pgadmin/static/{js => vendor}/jQuery-contextMenu/jquery.ui.position.js (100%) rename web/pgadmin/static/{js => vendor}/jQuery-contextMenu/jquery.ui.position.min.js (100%) rename web/pgadmin/static/{js => vendor}/jquery-ui/jquery-ui-1.11.3.js (100%) rename web/pgadmin/static/{js => vendor}/jquery-ui/jquery-ui-1.11.3.min.js (100%) rename web/pgadmin/static/{js => vendor}/jquery-ui/jquery.event.drag-2.2.js (100%) rename web/pgadmin/static/{js => vendor}/jquery-ui/jquery.event.drop-2.2.js (100%) rename web/pgadmin/static/{css => vendor}/jquery.dropzone/dropzone.css (100%) rename web/pgadmin/static/{js => vendor}/jquery.dropzone/dropzone.js (100%) rename web/pgadmin/static/{js => vendor/jquery}/jquery-1.11.2.js (100%) rename web/pgadmin/static/{js => vendor/jquery}/jquery-1.11.2.min.js (100%) rename web/pgadmin/static/{js => vendor/modernizr}/modernizr-2.6.2-respond-1.1.0.min.js (100%) rename web/pgadmin/static/{js => vendor/moment}/moment-with-locales.js (100%) rename web/pgadmin/static/{js => vendor/moment}/moment-with-locales.min.js (100%) rename web/pgadmin/static/{js => vendor/require}/require.js (100%) rename web/pgadmin/static/{js => vendor/require}/require.min.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/ar.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/az.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/bg.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/ca.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/cs.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/da.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/de.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/en.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/es.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/et.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/eu.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/fa.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/fi.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/fr.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/gl.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/he.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/hi.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/hr.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/hu.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/id.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/is.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/it.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/ja.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/ko.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/lt.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/lv.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/mk.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/ms.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/nb.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/nl.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/pl.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/pt-BR.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/pt.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/ro.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/ru.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/sk.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/sr-Cyrl.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/sr.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/sv.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/th.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/tr.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/uk.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/vi.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/zh-CN.js (100%) rename web/pgadmin/static/{js => vendor}/select2/i18n/zh-TW.js (100%) rename web/pgadmin/static/{css => vendor}/select2/select2.css (100%) rename web/pgadmin/static/{js => vendor}/select2/select2.full.js (100%) rename web/pgadmin/static/{js => vendor}/select2/select2.full.min.js (100%) rename web/pgadmin/static/{css => vendor}/select2/select2.min.css (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/README (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/controls/slick.columnpicker.css (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/controls/slick.columnpicker.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/controls/slick.pager.css (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/controls/slick.pager.js (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/actions.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/ajax-loader-small.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/arrow_redo.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/arrow_right_peppermint.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/arrow_right_spearmint.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/arrow_undo.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/bullet_blue.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/bullet_star.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/bullet_toggle_minus.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/bullet_toggle_plus.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/calendar.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/collapse.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/comment_yellow.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/down.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/drag-handle.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/editor-helper-bg.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/expand.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/header-bg.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/header-columns-bg.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/header-columns-over-bg.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/help.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/info.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/listview.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/pencil.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/row-over-bg.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/sort-asc.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/sort-asc.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/sort-desc.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/sort-desc.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/stripes.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/tag_red.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/tick.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/user_identity.gif (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/images/user_identity_plus.gif (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.autotooltips.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.cellcopymanager.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.cellrangedecorator.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.cellrangeselector.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.cellselectionmodel.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.checkboxselectcolumn.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.headerbuttons.css (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.headerbuttons.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.headermenu.css (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.headermenu.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.rowmovemanager.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/plugins/slick.rowselectionmodel.js (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/slick-default-theme.css (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/slick.core.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/slick.dataview.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/slick.editors.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/slick.formatters.js (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/slick.grid.css (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/slick.grid.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/slick.pgadmin.editors.js (100%) rename web/pgadmin/static/{js => vendor}/slickgrid/slick.pgadmin.formatters.js (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_flat_75_ffffff_40x100.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_glass_65_ffffff_1x400.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_glass_75_dadada_1x400.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-icons_222222_256x240.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-icons_2e83ff_256x240.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-icons_454545_256x240.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-icons_888888_256x240.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/images/ui-icons_cd0a0a_256x240.png (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/jquery-ui-1.11.3.custom.css (100%) rename web/pgadmin/static/{css => vendor}/slickgrid/smoothness/jquery-ui-1.11.3.custom.min.css (100%) rename web/pgadmin/static/{js => vendor/underscore}/underscore-min.js (100%) rename web/pgadmin/static/{js => vendor/underscore}/underscore.js (100%) rename web/pgadmin/static/{js => vendor/underscore}/underscore.string.js (100%) rename web/pgadmin/static/{js => vendor/underscore}/underscore.string.min.js (100%) rename web/pgadmin/static/{js => vendor}/wcDocker/README (100%) rename web/pgadmin/static/{css => vendor}/wcDocker/Themes/default.css (100%) rename web/pgadmin/static/{css => vendor}/wcDocker/Themes/default.min.css (100%) rename web/pgadmin/static/{css => vendor}/wcDocker/wcDocker.css (100%) rename web/pgadmin/static/{js => vendor}/wcDocker/wcDocker.js (100%) rename web/pgadmin/static/{css => vendor}/wcDocker/wcDocker.min.css (100%) rename web/pgadmin/static/{js => vendor}/wcDocker/wcDocker.min.js (100%) diff --git a/web/pgadmin/browser/__init__.py b/web/pgadmin/browser/__init__.py index 9c1e5456c..d14bd4f01 100644 --- a/web/pgadmin/browser/__init__.py +++ b/web/pgadmin/browser/__init__.py @@ -39,14 +39,14 @@ class BrowserModule(PgAdminModule): stylesheets = [] # Add browser stylesheets for (endpoint, filename) in [ - ('static', 'css/codemirror/codemirror.css'), - ('static', 'js/codemirror/addon/dialog/dialog.css'), - ('static', 'css/jQuery-contextMenu/jquery.contextMenu.css' if current_app.debug + ('static', 'vendor/codemirror/codemirror.css'), + ('static', 'vendor/codemirror/addon/dialog/dialog.css'), + ('static', 'vendor/jQuery-contextMenu/jquery.contextMenu.css' if current_app.debug else 'css/jQuery-contextMenu/jquery.contextMenu.min.css'), - ('static', 'css/wcDocker/wcDocker.css' if current_app.debug - else 'css/wcDocker/wcDocker.min.css'), + ('static', 'vendor/wcDocker/wcDocker.css' if current_app.debug + else 'vendor/wcDocker/wcDocker.min.css'), ('browser.static', 'css/browser.css'), - ('browser.static', 'css/aciTree/css/aciTree.css') + ('browser.static', 'vendor/aciTree/css/aciTree.css') ]: stylesheets.append(url_for(endpoint, filename=filename)) stylesheets.append(url_for('browser.browser_css')) @@ -58,8 +58,8 @@ class BrowserModule(PgAdminModule): 'name': 'alertify', 'path': url_for( 'static', - filename='js/alertifyjs/alertify' if current_app.debug - else 'js/alertifyjs/alertify.min' + filename='vendor/alertifyjs/alertify' if current_app.debug + else 'vendor/alertifyjs/alertify.min' ), 'exports': 'alertify', 'preloaded': True @@ -68,9 +68,9 @@ class BrowserModule(PgAdminModule): 'name': 'jqueryui.position', 'path': url_for( 'static', - filename='js/jQuery-contextMenu/jquery.ui.position' if \ + filename='vendor/jQuery-contextMenu/jquery.ui.position' if \ current_app.debug else \ - 'js/jQuery-contextMenu/jquery.ui.position.min' + 'vendor/jQuery-contextMenu/jquery.ui.position.min' ), 'deps': ['jquery'], 'exports': 'jQuery.ui.position', @@ -80,9 +80,9 @@ class BrowserModule(PgAdminModule): 'name': 'jquery.contextmenu', 'path': url_for( 'static', - filename='js/jQuery-contextMenu/jquery.contextMenu' if \ + filename='vendor/jQuery-contextMenu/jquery.contextMenu' if \ current_app.debug else \ - 'js/jQuery-contextMenu/jquery.contextMenu.min' + 'vendor/jQuery-contextMenu/jquery.contextMenu.min' ), 'deps': ['jquery', 'jqueryui.position'], 'exports': 'jQuery.contextMenu', @@ -92,7 +92,7 @@ class BrowserModule(PgAdminModule): 'name': 'jquery.aciplugin', 'path': url_for( 'browser.static', - filename='js/aciTree/jquery.aciPlugin.min' + filename='vendor/aciTree/jquery.aciPlugin.min' ), 'deps': ['jquery'], 'exports': 'aciPluginClass', @@ -102,8 +102,8 @@ class BrowserModule(PgAdminModule): 'name': 'jquery.acitree', 'path': url_for( 'browser.static', - filename='js/aciTree/jquery.aciTree' if - current_app.debug else 'js/aciTree/jquery.aciTree.min' + filename='vendor/aciTree/jquery.aciTree' if + current_app.debug else 'vendor/aciTree/jquery.aciTree.min' ), 'deps': ['jquery', 'jquery.aciplugin'], 'exports': 'aciPluginClass.plugins.aciTree', @@ -113,7 +113,7 @@ class BrowserModule(PgAdminModule): 'name': 'jquery.acisortable', 'path': url_for( 'browser.static', - filename='js/aciTree/jquery.aciSortable.min' + filename='vendor/aciTree/jquery.aciSortable.min' ), 'deps': ['jquery', 'jquery.aciplugin'], 'exports': 'aciPluginClass.plugins.aciSortable', @@ -124,7 +124,7 @@ class BrowserModule(PgAdminModule): 'name': 'jquery.acifragment', 'path': url_for( 'browser.static', - filename='js/aciTree/jquery.aciFragment.min' + filename='vendor/aciTree/jquery.aciFragment.min' ), 'deps': ['jquery', 'jquery.aciplugin'], 'exports': 'aciPluginClass.plugins.aciFragment', @@ -135,8 +135,8 @@ class BrowserModule(PgAdminModule): 'name': 'wcdocker', 'path': url_for( 'static', - filename='js/wcDocker/wcDocker' if current_app.debug - else 'js/wcDocker/wcDocker.min' + filename='vendor/wcDocker/wcDocker' if current_app.debug + else 'vendor/wcDocker/wcDocker.min' ), 'deps': ['jquery.contextmenu'], 'exports': '', diff --git a/web/pgadmin/browser/server_groups/servers/templates/css/servers.css b/web/pgadmin/browser/server_groups/servers/templates/css/servers.css index 7e839c7ae..11b6a3012 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/css/servers.css +++ b/web/pgadmin/browser/server_groups/servers/templates/css/servers.css @@ -12,7 +12,7 @@ } .icon-server-connecting { - background-image: url('{{ url_for('browser.static', filename='css/aciTree/image/load-node.gif')}}') !important; + background-image: url('{{ url_for('browser.static', filename='vendor/aciTree/image/load-node.gif')}}') !important; background-repeat: no-repeat; align-content: center; vertical-align: middle; diff --git a/web/pgadmin/browser/static/css/aciTree/css/aciTree.css b/web/pgadmin/browser/static/vendor/aciTree/css/aciTree.css similarity index 97% rename from web/pgadmin/browser/static/css/aciTree/css/aciTree.css rename to web/pgadmin/browser/static/vendor/aciTree/css/aciTree.css index 716c70cb3..e295a1260 100755 --- a/web/pgadmin/browser/static/css/aciTree/css/aciTree.css +++ b/web/pgadmin/browser/static/vendor/aciTree/css/aciTree.css @@ -1,549 +1,549 @@ -@charset "utf-8"; - -/* - * aciTree jQuery Plugin - * http://acoderinsights.ro - * - */ - -.aciTree { - outline: none; -} - -/* the big loader */ -.aciTree.aciTreeLoad { - background:url(../image/load-root.gif) center center no-repeat; -} - -.aciTree .aciTreeUl { - list-style:none; - margin:0; - padding:0; -} -.aciTree .aciTreeLi { - display:block; - clear:both; - white-space:nowrap; -} -.aciTree .aciTreeLine:focus { - outline:none; -} - -.aciTree .aciTreeLi.aciTreeHidden { - display:none; -} - -/* the branch line */ -.aciTree .aciTreeBranch { - padding-left:20px; /* branch indent */ - background:url(../image/tree-branch.png) left 1px repeat-y; -} -.aciTree[dir=rtl] .aciTreeBranch { - padding-left:0; - padding-right:20px; /* branch indent */ - background:url(../image/tree-branch.png) right 1px repeat-y; -} -/* if the parent is the last child on his level (this is level based; added for #8 levels, if you need more ... add them as needed) */ -.aciTree .aciTreeLi.aciTreeLevel0.aciTreeLast .aciTreeBranch.aciTreeLevel0, -.aciTree .aciTreeLi.aciTreeLevel1.aciTreeLast .aciTreeBranch.aciTreeLevel1, -.aciTree .aciTreeLi.aciTreeLevel2.aciTreeLast .aciTreeBranch.aciTreeLevel2, -.aciTree .aciTreeLi.aciTreeLevel3.aciTreeLast .aciTreeBranch.aciTreeLevel3, -.aciTree .aciTreeLi.aciTreeLevel4.aciTreeLast .aciTreeBranch.aciTreeLevel4, -.aciTree .aciTreeLi.aciTreeLevel5.aciTreeLast .aciTreeBranch.aciTreeLevel5, -.aciTree .aciTreeLi.aciTreeLevel6.aciTreeLast .aciTreeBranch.aciTreeLevel6, -.aciTree .aciTreeLi.aciTreeLevel7.aciTreeLast .aciTreeBranch.aciTreeLevel7, -.aciTree .aciTreeLi.aciTreeLevel8.aciTreeLast .aciTreeBranch.aciTreeLevel8, -.aciTree.aciTreeNoBranches .aciTreeBranch { - background:none; -} -/* the branch line behind the button (for the siblings) */ -.aciTree .aciTreeEntry { - overflow:hidden; - background:url(../image/tree-branch.png) left 1px repeat-y; -} -.aciTree[dir=rtl] .aciTreeEntry { - background:url(../image/tree-branch.png) right 1px repeat-y; -} -.aciTree .aciTreeLi.aciTreeLast>.aciTreeLine .aciTreeEntry, -.aciTree.aciTreeNoBranches .aciTreeEntry { - background:none; -} - -.aciTree.aciTreeBig .aciTreeEntry { - padding:0 0 2px 0; -} - -.aciTree .aciTreeButton, .aciTree .aciTreePush, .aciTree .aciTreeItem, .aciTree .aciTreeIcon, .aciTree .aciTreeText, .aciTree .aciTreeColumn { - display:inline-block; - height:20px; - line-height:20px; - font-family:Verdana, Geneva, sans-serif; - font-size:11px; - color:#000; - vertical-align:top; -} -.aciTree.aciTreeBig .aciTreeText, .aciTree.aciTreeBig .aciTreeColumn { - font-size:12px; -} - -.aciTree .aciTreeDisabled>.aciTreeLine .aciTreeText, .aciTree .aciTreeDisabled>.aciTreeLine .aciTreeColumn { - color:#888; -} - -.aciTree .aciTreeItem { - padding:0 2px 0 2px; - border:1px solid transparent; - height:auto; - white-space:normal; - cursor:pointer; - /* margin-right need to be set to icon width [.aciTree .aciTreeIcon = 20] + - item padding [.aciTree .aciTreeItem = 4] (+ the width of all columns, if any) */ - margin-right:24px; -} -.aciTree[dir=rtl] .aciTreeItem{ - margin-right:0; - /* margin-left need to be set to icon width [.aciTree .aciTreeIcon = 20] + - item padding [.aciTree .aciTreeItem = 4] (+ the width of all columns, if any) */ - margin-left:24px; -} -.aciTree .aciTreeText { - display:inline; - height:auto; -} -.aciTree .aciTreeColumn { - float:right; - height:auto; - white-space:normal; - cursor:default; -} -.aciTree[dir=rtl] .aciTreeColumn { - float:left; -} - -/* columns width/style (left to right, if any) */ - -.aciTree .aciTreeColumn0 { - width:80px; -} -.aciTree .aciTreeColumn1 { - width:60px; -} - -/* item selection */ - -.aciTree .aciTreeLine.aciTreeHover .aciTreeItem { - background-color:#EFF5FD; - border:1px dashed #D9D9D9; - -webkit-border-radius:3px; - -moz-border-radius:3px; - border-radius:3px; -} -.aciTree .aciTreeFocus>.aciTreeLine .aciTreeItem { - /* not selected but with focus */ - border:1px solid #D9D9D9; - -webkit-border-radius:3px; - -moz-border-radius:3px; - border-radius:3px; -} -.aciTree .aciTreeSelected>.aciTreeLine .aciTreeItem { - background-color:#E8E8E8; - border:1px dashed #D9D9D9; - -webkit-border-radius:3px; - -moz-border-radius:3px; - border-radius:3px; -} -.aciTree.aciTreeFocus .aciTreeSelected>.aciTreeLine .aciTreeItem { - background-color:#d0e5fe; -} -.aciTree.aciTreeFocus .aciTreeFocus>.aciTreeLine .aciTreeItem { - /* not selected but with focus */ - border:1px solid #84acdd; -} -.aciTree.aciTreeFocus .aciTreeSelected.aciTreeFocus>.aciTreeLine .aciTreeItem { - border:1px dashed #84acdd; -} - -/* full row selection */ - -.aciTree.aciTreeFullRow>.aciTreeUl { - margin:2px; -} - -.aciTree.aciTreeFullRow .aciTreeLine { - margin:-2px; - border:1px solid transparent; -} - -.aciTree.aciTreeFullRow .aciTreeLine.aciTreeHover .aciTreeItem { - background:none; - border:1px solid transparent; -} -.aciTree.aciTreeFullRow .aciTreeFocus>.aciTreeLine { - /* not selected but with focus */ - border:1px solid #D9D9D9; -} -.aciTree.aciTreeFullRow .aciTreeSelected>.aciTreeLine .aciTreeItem, -.aciTree.aciTreeFullRow .aciTreeFocus>.aciTreeLine .aciTreeItem { - background:none; - border:1px solid transparent; -} -.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeSelected>.aciTreeLine .aciTreeItem { - background:none; - border:1px solid transparent; -} - -.aciTree.aciTreeFullRow .aciTreeLine.aciTreeHover { - background: #e3edf9; - background: -moz-linear-gradient(top, #e3edf9 0%, #9cb7d8 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e3edf9), color-stop(100%,#9cb7d8)); - background: -webkit-linear-gradient(top, #e3edf9 0%,#9cb7d8 100%); - background: -o-linear-gradient(top, #e3edf9 0%,#9cb7d8 100%); - background: -ms-linear-gradient(top, #e3edf9 0%,#9cb7d8 100%); - background: linear-gradient(to bottom, #e3edf9 0%,#9cb7d8 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e3edf9', endColorstr='#9cb7d8',GradientType=0 ); -} -.aciTree.aciTreeFullRow .aciTreeSelected>.aciTreeLine { - background: #f4f4f4; - background: -moz-linear-gradient(top, #f4f4f4 0%, #c6c6c6 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f4f4f4), color-stop(100%,#c6c6c6)); - background: -webkit-linear-gradient(top, #f4f4f4 0%,#c6c6c6 100%); - background: -o-linear-gradient(top, #f4f4f4 0%,#c6c6c6 100%); - background: -ms-linear-gradient(top, #f4f4f4 0%,#c6c6c6 100%); - background: linear-gradient(to bottom, #f4f4f4 0%,#c6c6c6 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#c6c6c6',GradientType=0 ); -} -.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeFocus>.aciTreeLine { - /* not selected but with focus */ - border:1px solid #84acdd; -} -.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeSelected>.aciTreeLine { - border:1px solid transparent; - background: #d0e5fe; - background: -moz-linear-gradient(top, #d0e5fe 0%, #84acdd 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d0e5fe), color-stop(100%,#84acdd)); - background: -webkit-linear-gradient(top, #d0e5fe 0%,#84acdd 100%); - background: -o-linear-gradient(top, #d0e5fe 0%,#84acdd 100%); - background: -ms-linear-gradient(top, #d0e5fe 0%,#84acdd 100%); - background: linear-gradient(to bottom, #d0e5fe 0%,#84acdd 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#d0e5fe', endColorstr='#84acdd',GradientType=0 ); -} -.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeSelected>.aciTreeLine.aciTreeHover, -.aciTree.aciTreeFullRow .aciTreeSelected>.aciTreeLine.aciTreeHover { - background: #c3dbf7; - background: -moz-linear-gradient(top, #c3dbf7 0%, #84a9d6 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c3dbf7), color-stop(100%,#84a9d6)); - background: -webkit-linear-gradient(top, #c3dbf7 0%,#84a9d6 100%); - background: -o-linear-gradient(top, #c3dbf7 0%,#84a9d6 100%); - background: -ms-linear-gradient(top, #c3dbf7 0%,#84a9d6 100%); - background: linear-gradient(to bottom, #c3dbf7 0%,#84a9d6 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c3dbf7', endColorstr='#84a9d6',GradientType=0 ); -} - -/* checkbox/radio tree */ - -.aciTree .aciTreeCheckbox label, .aciTree .aciTreeRadio label { - cursor:pointer; -} -.aciTree .aciTreeCheck { - width:20px; - height:20px; - display:inline-block; - margin:0 2px 0 2px; - padding:0; - vertical-align:text-bottom; - background:url(../image/tree-check-small.png) 0 0 no-repeat; -} -.aciTree.aciTreeBig .aciTreeCheck { - background:url(../image/tree-check-big.png) 0 0 no-repeat; -} - -.aciTree[dir=rtl] .aciTreeCheck { - background:url(../image/tree-check-small-rtl.png) 0 0 no-repeat; -} -.aciTree.aciTreeBig[dir=rtl] .aciTreeCheck { - background:url(../image/tree-check-big-rtl.png) 0 0 no-repeat; -} - -.aciTree .aciTreeCheckbox>.aciTreeLine .aciTreeCheck { background-position:-5px -65px; } -.aciTree .aciTreeCheckbox.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-5px -5px; } -.aciTree .aciTreeCheckbox.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-5px -35px; } - -.aciTree .aciTreeCheckbox>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-35px -65px; } -.aciTree .aciTreeCheckbox.aciTreeChecked>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-35px -5px; } -.aciTree .aciTreeCheckbox.aciTreeChecked.aciTreeTristate>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-35px -35px; } - -.aciTree .aciTreeCheckbox.aciTreeDisabled>.aciTreeLine .aciTreeCheck { background-position:-65px -65px; } -.aciTree .aciTreeCheckbox.aciTreeDisabled.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-65px -5px; } -.aciTree .aciTreeCheckbox.aciTreeDisabled.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-65px -35px; } - -.aciTree .aciTreeRadio>.aciTreeLine .aciTreeCheck { background-position:-95px -65px; } -.aciTree .aciTreeRadio.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-95px -5px; } -.aciTree .aciTreeRadio.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-95px -35px; } - -.aciTree .aciTreeRadio>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-125px -65px; } -.aciTree .aciTreeRadio.aciTreeChecked>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-125px -5px; } -.aciTree .aciTreeRadio.aciTreeChecked.aciTreeTristate>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-125px -35px; } - -.aciTree .aciTreeRadio.aciTreeDisabled>.aciTreeLine .aciTreeCheck { background-position:-155px -65px; } -.aciTree .aciTreeRadio.aciTreeDisabled.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-155px -5px; } -.aciTree .aciTreeRadio.aciTreeDisabled.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-155px -35px; } - -/* inplace editable */ - -.aciTree .aciTreeEdited input[type=text] { - outline: none; - border:1px solid #000; - padding:0; - margin:0; - line-height:18px; - height:18px; - display:inline-block; - font-family:Verdana, Geneva, sans-serif; - font-size:11px; - color:#000; - vertical-align:top; -} -.aciTree.aciTreeBig .aciTreeEdited input[type=text] { - font-size:12px; -} - -/* sortable items */ - -.aciTree .aciTreeChild { - height:0; - line-height:0; -} - -.aciTree .aciTreePlaceholder { - height:0; - line-height:0; - overflow:visible; - position:relative; -} - -.aciTree .aciTreePlaceholder div { - position:absolute; - left:0; - width:16px; - height:16px; - margin-left:20px; - background:#fff url(../image/drag-drop.png) -7px -37px no-repeat; - border:1px solid #999; -} - -.aciTree[dir=rtl] .aciTreePlaceholder div { - background:#fff url(../image/drag-drop-rtl.png) -7px -37px no-repeat; -} - -.aciTree .aciTreeChild .aciTreePlaceholder div { - top:-20px; - left:-20px; -} -.aciTree.aciTreeBig .aciTreeChild .aciTreePlaceholder div { - top:-22px; -} - -.aciTree .aciTreePlaceholder.aciTreeBefore div { - top:2px; - background-position:-7px -7px !important; -} - -.aciTree .aciTreePlaceholder.aciTreeAfter div { - top:-20px; - background-position:-7px -67px !important; -} -.aciTree.aciTreeBig .aciTreePlaceholder.aciTreeAfter div { - top:-22px; -} - -.aciTree.aciTreeDragDrop .aciTreeItem, .aciTree.aciTreeDragDrop .aciTreeColumn, -.aciTree.aciTreeDragDrop .aciTreeCheckbox label, .aciTree.aciTreeDragDrop .aciTreeRadio label { - cursor:inherit !important; -} - -/* this is level based; added for #8 levels, if you need more ... add them as needed */ -.aciTree .aciTreeLi.aciTreeLevel0 .aciTreePlaceholder div { margin-left:40px; } -.aciTree .aciTreeLi.aciTreeLevel1 .aciTreePlaceholder div { margin-left:60px; } -.aciTree .aciTreeLi.aciTreeLevel2 .aciTreePlaceholder div { margin-left:80px; } -.aciTree .aciTreeLi.aciTreeLevel3 .aciTreePlaceholder div { margin-left:100px; } -.aciTree .aciTreeLi.aciTreeLevel4 .aciTreePlaceholder div { margin-left:120px; } -.aciTree .aciTreeLi.aciTreeLevel5 .aciTreePlaceholder div { margin-left:140px; } -.aciTree .aciTreeLi.aciTreeLevel6 .aciTreePlaceholder div { margin-left:160px; } -.aciTree .aciTreeLi.aciTreeLevel7 .aciTreePlaceholder div { margin-left:180px; } -.aciTree .aciTreeLi.aciTreeLevel8 .aciTreePlaceholder div { margin-left:200px; } - -.aciTree[dir=rtl] .aciTreePlaceholder div { - left:auto; - right:0; - margin-left:0; - margin-right:20px; -} - -.aciTree .aciTreeChild .aciTreePlaceholder div { - right:-20px; -} - -/* this is level based; added for #8 levels, if you need more ... add them as needed */ -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel0 .aciTreePlaceholder div { margin-right:40px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel1 .aciTreePlaceholder div { margin-right:60px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel2 .aciTreePlaceholder div { margin-right:80px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel3 .aciTreePlaceholder div { margin-right:100px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel4 .aciTreePlaceholder div { margin-right:120px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel5 .aciTreePlaceholder div { margin-right:140px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel6 .aciTreePlaceholder div { margin-right:160px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel7 .aciTreePlaceholder div { margin-right:180px; } -.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel8 .aciTreePlaceholder div { margin-right:200px; } - -.aciTreeHelper { - position:absolute; - max-width:300px; - color:#000; - background-color:#d0e5fe; - border:1px dashed #84acdd; - -webkit-border-radius:3px; - -moz-border-radius:3px; - border-radius:3px; - padding:4px; - margin:20px 0 0 20px; -} - -/* default - item in the middle (comment the hover part to keep the same button image) */ - -.aciTree .aciTreeButton, .aciTree .aciTreePush { - width:18px; - background:url(../image/tree-small.png) -7px -35px no-repeat; -} -.aciTree.aciTreeBig .aciTreeButton, .aciTree.aciTreeBig .aciTreePush { - background:url(../image/tree-big.png) -7px -35px no-repeat; -} - -.aciTree[dir=rtl] .aciTreeButton, .aciTree[dir=rtl] .aciTreePush { - background:url(../image/tree-small-rtl.png) -7px -35px no-repeat; -} -.aciTree.aciTreeBig[dir=rtl] .aciTreeButton, .aciTree.aciTreeBig[dir=rtl] .aciTreePush { - background:url(../image/tree-big-rtl.png) -7px -35px no-repeat; -} - -.aciTree.aciTreeArrow .aciTreeButton, .aciTree.aciTreeArrow .aciTreePush { - background:url(../image/tree-arrow-small.png) -7px -35px no-repeat; -} -.aciTree.aciTreeBig.aciTreeArrow .aciTreeButton, .aciTree.aciTreeBig.aciTreeArrow .aciTreePush { - background:url(../image/tree-arrow-big.png) -7px -35px no-repeat; -} - -.aciTree.aciTreeArrow[dir=rtl] .aciTreeButton, .aciTree.aciTreeArrow[dir=rtl] .aciTreePush { - background:url(../image/tree-arrow-small-rtl.png) -7px -35px no-repeat; -} -.aciTree.aciTreeBig.aciTreeArrow[dir=rtl] .aciTreeButton, .aciTree.aciTreeBig.aciTreeArrow[dir=rtl] .aciTreePush { - background:url(../image/tree-arrow-big-rtl.png) -7px -35px no-repeat; -} - -.aciTree.aciTreeNoBranches .aciTreeButton, -.aciTree .aciTreeLeaf>.aciTreeLine .aciTreePush { background:none !important; } - -.aciTree .aciTreeInodeMaybe>.aciTreeLine .aciTreePush { background-position:-67px -5px !important; } -.aciTree .aciTreeInodeMaybe>.aciTreeLine .aciTreePush.aciTreeHover { background-position:-67px -35px !important; } -.aciTree .aciTreeInode>.aciTreeLine .aciTreePush { background-position:-97px -5px !important; } -.aciTree .aciTreeInode>.aciTreeLine .aciTreePush.aciTreeHover { background-position:-97px -35px !important; } -.aciTree .aciTreeOpen>.aciTreeLine .aciTreePush { background-position:-127px -5px !important; } -.aciTree .aciTreeOpen>.aciTreeLine .aciTreePush.aciTreeHover { background-position:-127px -35px !important; } - -/* if it's the last item in list */ - -.aciTree .aciTreeLi.aciTreeLast>.aciTreeLine .aciTreeButton { background-position:-37px -5px !important; } - -/* the item loader */ - -.aciTree .aciTreePush>span { - display:none; - position:absolute; - width:18px; - height:18px; - left:0; - top:2px; - background:url(../image/load-node.gif) 0 0 no-repeat; -} -.aciTree .aciTreeLoad>.aciTreeLine .aciTreePush { - position:relative; - /* uncomment next line to hide the button while loading */ - /*background:none !important;*/ -} -.aciTree .aciTreeLoad>.aciTreeLine .aciTreePush>span { - display:inline-block; -} - -/* tree item icon */ - -.aciTree .aciTreeIcon { - width:20px; - background:url(../image/tree-small.png) 0 0 no-repeat; -} -.aciTree.aciTreeBig .aciTreeIcon { - background:url(../image/tree-big.png) 0 0 no-repeat; -} - -.aciTree[dir=rtl] .aciTreeIcon { - width:16px; - margin-left:4px; - background:url(../image/tree-small-rtl.png) 0 0 no-repeat; -} -.aciTree.aciTreeBig[dir=rtl] .aciTreeIcon { - background:url(../image/tree-big-rtl.png) 0 0 no-repeat; -} - -.aciTree.aciTreeArrow .aciTreeIcon { background:url(../image/tree-arrow-small.png) 0 0 no-repeat; } -.aciTree.aciTreeBig.aciTreeArrow .aciTreeIcon { background:url(../image/tree-arrow-big.png) 0 0 no-repeat; } - -.aciTree.aciTreeArrow[dir=rtl] .aciTreeIcon { background:url(../image/tree-arrow-small-rtl.png) 0 0 no-repeat; } -.aciTree.aciTreeBig.aciTreeArrow[dir=rtl] .aciTreeIcon { background:url(../image/tree-arrow-big-rtl.png) 0 0 no-repeat; } - -/* demo file/folder icon class */ - -.aciTree .aciTreeIcon.folder { - background-position:-157px -5px !important; -} -.aciTree .aciTreeLine.aciTreeHover .aciTreeIcon.folder { - /* comment next line to keep the same icon on hover */ - background-position:-157px -35px !important; -} -.aciTree .aciTreeIcon.file { - background-position:-187px -5px !important; -} -.aciTree .aciTreeLine.aciTreeHover .aciTreeIcon.file { - /* comment next line to keep the same icon on hover */ - background-position:-187px -35px !important; -} - -/* demo row colors */ - -.aciTree.aciTreeColors .aciTreeOdd>.aciTreeLine { - /* odd rows */ - background-color:#FFFFC4; -} -.aciTree.aciTreeColors .aciTreeEven>.aciTreeLine { - /* even rows */ - background-color:#CAFFCA; -} -.aciTree.aciTreeColors .aciTreeFirst>.aciTreeLine { - /* first item on each level */ - /*background-color:#B0DFFF;*/ -} -.aciTree.aciTreeColors .aciTreeLast>.aciTreeLine { - /* last item on each level */ - /*background-color:#FFCEFF;*/ -} - -/* uncomment below to keep the item in one line and scroll the tree horizontally when needed */ - -/* - -.aciTree .aciTreeEntry { - overflow:visible; -} - -.aciTree .aciTreeItem { - white-space:nowrap; - margin-right:12px; -} - -*/ +@charset "utf-8"; + +/* + * aciTree jQuery Plugin + * http://acoderinsights.ro + * + */ + +.aciTree { + outline: none; +} + +/* the big loader */ +.aciTree.aciTreeLoad { + background:url(../image/load-root.gif) center center no-repeat; +} + +.aciTree .aciTreeUl { + list-style:none; + margin:0; + padding:0; +} +.aciTree .aciTreeLi { + display:block; + clear:both; + white-space:nowrap; +} +.aciTree .aciTreeLine:focus { + outline:none; +} + +.aciTree .aciTreeLi.aciTreeHidden { + display:none; +} + +/* the branch line */ +.aciTree .aciTreeBranch { + padding-left:20px; /* branch indent */ + background:url(../image/tree-branch.png) left 1px repeat-y; +} +.aciTree[dir=rtl] .aciTreeBranch { + padding-left:0; + padding-right:20px; /* branch indent */ + background:url(../image/tree-branch.png) right 1px repeat-y; +} +/* if the parent is the last child on his level (this is level based; added for #8 levels, if you need more ... add them as needed) */ +.aciTree .aciTreeLi.aciTreeLevel0.aciTreeLast .aciTreeBranch.aciTreeLevel0, +.aciTree .aciTreeLi.aciTreeLevel1.aciTreeLast .aciTreeBranch.aciTreeLevel1, +.aciTree .aciTreeLi.aciTreeLevel2.aciTreeLast .aciTreeBranch.aciTreeLevel2, +.aciTree .aciTreeLi.aciTreeLevel3.aciTreeLast .aciTreeBranch.aciTreeLevel3, +.aciTree .aciTreeLi.aciTreeLevel4.aciTreeLast .aciTreeBranch.aciTreeLevel4, +.aciTree .aciTreeLi.aciTreeLevel5.aciTreeLast .aciTreeBranch.aciTreeLevel5, +.aciTree .aciTreeLi.aciTreeLevel6.aciTreeLast .aciTreeBranch.aciTreeLevel6, +.aciTree .aciTreeLi.aciTreeLevel7.aciTreeLast .aciTreeBranch.aciTreeLevel7, +.aciTree .aciTreeLi.aciTreeLevel8.aciTreeLast .aciTreeBranch.aciTreeLevel8, +.aciTree.aciTreeNoBranches .aciTreeBranch { + background:none; +} +/* the branch line behind the button (for the siblings) */ +.aciTree .aciTreeEntry { + overflow:hidden; + background:url(../image/tree-branch.png) left 1px repeat-y; +} +.aciTree[dir=rtl] .aciTreeEntry { + background:url(../image/tree-branch.png) right 1px repeat-y; +} +.aciTree .aciTreeLi.aciTreeLast>.aciTreeLine .aciTreeEntry, +.aciTree.aciTreeNoBranches .aciTreeEntry { + background:none; +} + +.aciTree.aciTreeBig .aciTreeEntry { + padding:0 0 2px 0; +} + +.aciTree .aciTreeButton, .aciTree .aciTreePush, .aciTree .aciTreeItem, .aciTree .aciTreeIcon, .aciTree .aciTreeText, .aciTree .aciTreeColumn { + display:inline-block; + height:20px; + line-height:20px; + font-family:Verdana, Geneva, sans-serif; + font-size:11px; + color:#000; + vertical-align:top; +} +.aciTree.aciTreeBig .aciTreeText, .aciTree.aciTreeBig .aciTreeColumn { + font-size:12px; +} + +.aciTree .aciTreeDisabled>.aciTreeLine .aciTreeText, .aciTree .aciTreeDisabled>.aciTreeLine .aciTreeColumn { + color:#888; +} + +.aciTree .aciTreeItem { + padding:0 2px 0 2px; + border:1px solid transparent; + height:auto; + white-space:normal; + cursor:pointer; + /* margin-right need to be set to icon width [.aciTree .aciTreeIcon = 20] + + item padding [.aciTree .aciTreeItem = 4] (+ the width of all columns, if any) */ + margin-right:24px; +} +.aciTree[dir=rtl] .aciTreeItem{ + margin-right:0; + /* margin-left need to be set to icon width [.aciTree .aciTreeIcon = 20] + + item padding [.aciTree .aciTreeItem = 4] (+ the width of all columns, if any) */ + margin-left:24px; +} +.aciTree .aciTreeText { + display:inline; + height:auto; +} +.aciTree .aciTreeColumn { + float:right; + height:auto; + white-space:normal; + cursor:default; +} +.aciTree[dir=rtl] .aciTreeColumn { + float:left; +} + +/* columns width/style (left to right, if any) */ + +.aciTree .aciTreeColumn0 { + width:80px; +} +.aciTree .aciTreeColumn1 { + width:60px; +} + +/* item selection */ + +.aciTree .aciTreeLine.aciTreeHover .aciTreeItem { + background-color:#EFF5FD; + border:1px dashed #D9D9D9; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; +} +.aciTree .aciTreeFocus>.aciTreeLine .aciTreeItem { + /* not selected but with focus */ + border:1px solid #D9D9D9; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; +} +.aciTree .aciTreeSelected>.aciTreeLine .aciTreeItem { + background-color:#E8E8E8; + border:1px dashed #D9D9D9; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; +} +.aciTree.aciTreeFocus .aciTreeSelected>.aciTreeLine .aciTreeItem { + background-color:#d0e5fe; +} +.aciTree.aciTreeFocus .aciTreeFocus>.aciTreeLine .aciTreeItem { + /* not selected but with focus */ + border:1px solid #84acdd; +} +.aciTree.aciTreeFocus .aciTreeSelected.aciTreeFocus>.aciTreeLine .aciTreeItem { + border:1px dashed #84acdd; +} + +/* full row selection */ + +.aciTree.aciTreeFullRow>.aciTreeUl { + margin:2px; +} + +.aciTree.aciTreeFullRow .aciTreeLine { + margin:-2px; + border:1px solid transparent; +} + +.aciTree.aciTreeFullRow .aciTreeLine.aciTreeHover .aciTreeItem { + background:none; + border:1px solid transparent; +} +.aciTree.aciTreeFullRow .aciTreeFocus>.aciTreeLine { + /* not selected but with focus */ + border:1px solid #D9D9D9; +} +.aciTree.aciTreeFullRow .aciTreeSelected>.aciTreeLine .aciTreeItem, +.aciTree.aciTreeFullRow .aciTreeFocus>.aciTreeLine .aciTreeItem { + background:none; + border:1px solid transparent; +} +.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeSelected>.aciTreeLine .aciTreeItem { + background:none; + border:1px solid transparent; +} + +.aciTree.aciTreeFullRow .aciTreeLine.aciTreeHover { + background: #e3edf9; + background: -moz-linear-gradient(top, #e3edf9 0%, #9cb7d8 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e3edf9), color-stop(100%,#9cb7d8)); + background: -webkit-linear-gradient(top, #e3edf9 0%,#9cb7d8 100%); + background: -o-linear-gradient(top, #e3edf9 0%,#9cb7d8 100%); + background: -ms-linear-gradient(top, #e3edf9 0%,#9cb7d8 100%); + background: linear-gradient(to bottom, #e3edf9 0%,#9cb7d8 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e3edf9', endColorstr='#9cb7d8',GradientType=0 ); +} +.aciTree.aciTreeFullRow .aciTreeSelected>.aciTreeLine { + background: #f4f4f4; + background: -moz-linear-gradient(top, #f4f4f4 0%, #c6c6c6 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f4f4f4), color-stop(100%,#c6c6c6)); + background: -webkit-linear-gradient(top, #f4f4f4 0%,#c6c6c6 100%); + background: -o-linear-gradient(top, #f4f4f4 0%,#c6c6c6 100%); + background: -ms-linear-gradient(top, #f4f4f4 0%,#c6c6c6 100%); + background: linear-gradient(to bottom, #f4f4f4 0%,#c6c6c6 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#c6c6c6',GradientType=0 ); +} +.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeFocus>.aciTreeLine { + /* not selected but with focus */ + border:1px solid #84acdd; +} +.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeSelected>.aciTreeLine { + border:1px solid transparent; + background: #d0e5fe; + background: -moz-linear-gradient(top, #d0e5fe 0%, #84acdd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d0e5fe), color-stop(100%,#84acdd)); + background: -webkit-linear-gradient(top, #d0e5fe 0%,#84acdd 100%); + background: -o-linear-gradient(top, #d0e5fe 0%,#84acdd 100%); + background: -ms-linear-gradient(top, #d0e5fe 0%,#84acdd 100%); + background: linear-gradient(to bottom, #d0e5fe 0%,#84acdd 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#d0e5fe', endColorstr='#84acdd',GradientType=0 ); +} +.aciTree.aciTreeFullRow.aciTreeFocus .aciTreeSelected>.aciTreeLine.aciTreeHover, +.aciTree.aciTreeFullRow .aciTreeSelected>.aciTreeLine.aciTreeHover { + background: #c3dbf7; + background: -moz-linear-gradient(top, #c3dbf7 0%, #84a9d6 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c3dbf7), color-stop(100%,#84a9d6)); + background: -webkit-linear-gradient(top, #c3dbf7 0%,#84a9d6 100%); + background: -o-linear-gradient(top, #c3dbf7 0%,#84a9d6 100%); + background: -ms-linear-gradient(top, #c3dbf7 0%,#84a9d6 100%); + background: linear-gradient(to bottom, #c3dbf7 0%,#84a9d6 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c3dbf7', endColorstr='#84a9d6',GradientType=0 ); +} + +/* checkbox/radio tree */ + +.aciTree .aciTreeCheckbox label, .aciTree .aciTreeRadio label { + cursor:pointer; +} +.aciTree .aciTreeCheck { + width:20px; + height:20px; + display:inline-block; + margin:0 2px 0 2px; + padding:0; + vertical-align:text-bottom; + background:url(../image/tree-check-small.png) 0 0 no-repeat; +} +.aciTree.aciTreeBig .aciTreeCheck { + background:url(../image/tree-check-big.png) 0 0 no-repeat; +} + +.aciTree[dir=rtl] .aciTreeCheck { + background:url(../image/tree-check-small-rtl.png) 0 0 no-repeat; +} +.aciTree.aciTreeBig[dir=rtl] .aciTreeCheck { + background:url(../image/tree-check-big-rtl.png) 0 0 no-repeat; +} + +.aciTree .aciTreeCheckbox>.aciTreeLine .aciTreeCheck { background-position:-5px -65px; } +.aciTree .aciTreeCheckbox.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-5px -5px; } +.aciTree .aciTreeCheckbox.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-5px -35px; } + +.aciTree .aciTreeCheckbox>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-35px -65px; } +.aciTree .aciTreeCheckbox.aciTreeChecked>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-35px -5px; } +.aciTree .aciTreeCheckbox.aciTreeChecked.aciTreeTristate>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-35px -35px; } + +.aciTree .aciTreeCheckbox.aciTreeDisabled>.aciTreeLine .aciTreeCheck { background-position:-65px -65px; } +.aciTree .aciTreeCheckbox.aciTreeDisabled.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-65px -5px; } +.aciTree .aciTreeCheckbox.aciTreeDisabled.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-65px -35px; } + +.aciTree .aciTreeRadio>.aciTreeLine .aciTreeCheck { background-position:-95px -65px; } +.aciTree .aciTreeRadio.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-95px -5px; } +.aciTree .aciTreeRadio.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-95px -35px; } + +.aciTree .aciTreeRadio>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-125px -65px; } +.aciTree .aciTreeRadio.aciTreeChecked>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-125px -5px; } +.aciTree .aciTreeRadio.aciTreeChecked.aciTreeTristate>.aciTreeLine.aciTreeHover .aciTreeCheck { background-position:-125px -35px; } + +.aciTree .aciTreeRadio.aciTreeDisabled>.aciTreeLine .aciTreeCheck { background-position:-155px -65px; } +.aciTree .aciTreeRadio.aciTreeDisabled.aciTreeChecked>.aciTreeLine .aciTreeCheck { background-position:-155px -5px; } +.aciTree .aciTreeRadio.aciTreeDisabled.aciTreeChecked.aciTreeTristate>.aciTreeLine .aciTreeCheck { background-position:-155px -35px; } + +/* inplace editable */ + +.aciTree .aciTreeEdited input[type=text] { + outline: none; + border:1px solid #000; + padding:0; + margin:0; + line-height:18px; + height:18px; + display:inline-block; + font-family:Verdana, Geneva, sans-serif; + font-size:11px; + color:#000; + vertical-align:top; +} +.aciTree.aciTreeBig .aciTreeEdited input[type=text] { + font-size:12px; +} + +/* sortable items */ + +.aciTree .aciTreeChild { + height:0; + line-height:0; +} + +.aciTree .aciTreePlaceholder { + height:0; + line-height:0; + overflow:visible; + position:relative; +} + +.aciTree .aciTreePlaceholder div { + position:absolute; + left:0; + width:16px; + height:16px; + margin-left:20px; + background:#fff url(../image/drag-drop.png) -7px -37px no-repeat; + border:1px solid #999; +} + +.aciTree[dir=rtl] .aciTreePlaceholder div { + background:#fff url(../image/drag-drop-rtl.png) -7px -37px no-repeat; +} + +.aciTree .aciTreeChild .aciTreePlaceholder div { + top:-20px; + left:-20px; +} +.aciTree.aciTreeBig .aciTreeChild .aciTreePlaceholder div { + top:-22px; +} + +.aciTree .aciTreePlaceholder.aciTreeBefore div { + top:2px; + background-position:-7px -7px !important; +} + +.aciTree .aciTreePlaceholder.aciTreeAfter div { + top:-20px; + background-position:-7px -67px !important; +} +.aciTree.aciTreeBig .aciTreePlaceholder.aciTreeAfter div { + top:-22px; +} + +.aciTree.aciTreeDragDrop .aciTreeItem, .aciTree.aciTreeDragDrop .aciTreeColumn, +.aciTree.aciTreeDragDrop .aciTreeCheckbox label, .aciTree.aciTreeDragDrop .aciTreeRadio label { + cursor:inherit !important; +} + +/* this is level based; added for #8 levels, if you need more ... add them as needed */ +.aciTree .aciTreeLi.aciTreeLevel0 .aciTreePlaceholder div { margin-left:40px; } +.aciTree .aciTreeLi.aciTreeLevel1 .aciTreePlaceholder div { margin-left:60px; } +.aciTree .aciTreeLi.aciTreeLevel2 .aciTreePlaceholder div { margin-left:80px; } +.aciTree .aciTreeLi.aciTreeLevel3 .aciTreePlaceholder div { margin-left:100px; } +.aciTree .aciTreeLi.aciTreeLevel4 .aciTreePlaceholder div { margin-left:120px; } +.aciTree .aciTreeLi.aciTreeLevel5 .aciTreePlaceholder div { margin-left:140px; } +.aciTree .aciTreeLi.aciTreeLevel6 .aciTreePlaceholder div { margin-left:160px; } +.aciTree .aciTreeLi.aciTreeLevel7 .aciTreePlaceholder div { margin-left:180px; } +.aciTree .aciTreeLi.aciTreeLevel8 .aciTreePlaceholder div { margin-left:200px; } + +.aciTree[dir=rtl] .aciTreePlaceholder div { + left:auto; + right:0; + margin-left:0; + margin-right:20px; +} + +.aciTree .aciTreeChild .aciTreePlaceholder div { + right:-20px; +} + +/* this is level based; added for #8 levels, if you need more ... add them as needed */ +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel0 .aciTreePlaceholder div { margin-right:40px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel1 .aciTreePlaceholder div { margin-right:60px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel2 .aciTreePlaceholder div { margin-right:80px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel3 .aciTreePlaceholder div { margin-right:100px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel4 .aciTreePlaceholder div { margin-right:120px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel5 .aciTreePlaceholder div { margin-right:140px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel6 .aciTreePlaceholder div { margin-right:160px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel7 .aciTreePlaceholder div { margin-right:180px; } +.aciTree[dir=rtl] .aciTreeLi.aciTreeLevel8 .aciTreePlaceholder div { margin-right:200px; } + +.aciTreeHelper { + position:absolute; + max-width:300px; + color:#000; + background-color:#d0e5fe; + border:1px dashed #84acdd; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + padding:4px; + margin:20px 0 0 20px; +} + +/* default - item in the middle (comment the hover part to keep the same button image) */ + +.aciTree .aciTreeButton, .aciTree .aciTreePush { + width:18px; + background:url(../image/tree-small.png) -7px -35px no-repeat; +} +.aciTree.aciTreeBig .aciTreeButton, .aciTree.aciTreeBig .aciTreePush { + background:url(../image/tree-big.png) -7px -35px no-repeat; +} + +.aciTree[dir=rtl] .aciTreeButton, .aciTree[dir=rtl] .aciTreePush { + background:url(../image/tree-small-rtl.png) -7px -35px no-repeat; +} +.aciTree.aciTreeBig[dir=rtl] .aciTreeButton, .aciTree.aciTreeBig[dir=rtl] .aciTreePush { + background:url(../image/tree-big-rtl.png) -7px -35px no-repeat; +} + +.aciTree.aciTreeArrow .aciTreeButton, .aciTree.aciTreeArrow .aciTreePush { + background:url(../image/tree-arrow-small.png) -7px -35px no-repeat; +} +.aciTree.aciTreeBig.aciTreeArrow .aciTreeButton, .aciTree.aciTreeBig.aciTreeArrow .aciTreePush { + background:url(../image/tree-arrow-big.png) -7px -35px no-repeat; +} + +.aciTree.aciTreeArrow[dir=rtl] .aciTreeButton, .aciTree.aciTreeArrow[dir=rtl] .aciTreePush { + background:url(../image/tree-arrow-small-rtl.png) -7px -35px no-repeat; +} +.aciTree.aciTreeBig.aciTreeArrow[dir=rtl] .aciTreeButton, .aciTree.aciTreeBig.aciTreeArrow[dir=rtl] .aciTreePush { + background:url(../image/tree-arrow-big-rtl.png) -7px -35px no-repeat; +} + +.aciTree.aciTreeNoBranches .aciTreeButton, +.aciTree .aciTreeLeaf>.aciTreeLine .aciTreePush { background:none !important; } + +.aciTree .aciTreeInodeMaybe>.aciTreeLine .aciTreePush { background-position:-67px -5px !important; } +.aciTree .aciTreeInodeMaybe>.aciTreeLine .aciTreePush.aciTreeHover { background-position:-67px -35px !important; } +.aciTree .aciTreeInode>.aciTreeLine .aciTreePush { background-position:-97px -5px !important; } +.aciTree .aciTreeInode>.aciTreeLine .aciTreePush.aciTreeHover { background-position:-97px -35px !important; } +.aciTree .aciTreeOpen>.aciTreeLine .aciTreePush { background-position:-127px -5px !important; } +.aciTree .aciTreeOpen>.aciTreeLine .aciTreePush.aciTreeHover { background-position:-127px -35px !important; } + +/* if it's the last item in list */ + +.aciTree .aciTreeLi.aciTreeLast>.aciTreeLine .aciTreeButton { background-position:-37px -5px !important; } + +/* the item loader */ + +.aciTree .aciTreePush>span { + display:none; + position:absolute; + width:18px; + height:18px; + left:0; + top:2px; + background:url(../image/load-node.gif) 0 0 no-repeat; +} +.aciTree .aciTreeLoad>.aciTreeLine .aciTreePush { + position:relative; + /* uncomment next line to hide the button while loading */ + /*background:none !important;*/ +} +.aciTree .aciTreeLoad>.aciTreeLine .aciTreePush>span { + display:inline-block; +} + +/* tree item icon */ + +.aciTree .aciTreeIcon { + width:20px; + background:url(../image/tree-small.png) 0 0 no-repeat; +} +.aciTree.aciTreeBig .aciTreeIcon { + background:url(../image/tree-big.png) 0 0 no-repeat; +} + +.aciTree[dir=rtl] .aciTreeIcon { + width:16px; + margin-left:4px; + background:url(../image/tree-small-rtl.png) 0 0 no-repeat; +} +.aciTree.aciTreeBig[dir=rtl] .aciTreeIcon { + background:url(../image/tree-big-rtl.png) 0 0 no-repeat; +} + +.aciTree.aciTreeArrow .aciTreeIcon { background:url(../image/tree-arrow-small.png) 0 0 no-repeat; } +.aciTree.aciTreeBig.aciTreeArrow .aciTreeIcon { background:url(../image/tree-arrow-big.png) 0 0 no-repeat; } + +.aciTree.aciTreeArrow[dir=rtl] .aciTreeIcon { background:url(../image/tree-arrow-small-rtl.png) 0 0 no-repeat; } +.aciTree.aciTreeBig.aciTreeArrow[dir=rtl] .aciTreeIcon { background:url(../image/tree-arrow-big-rtl.png) 0 0 no-repeat; } + +/* demo file/folder icon class */ + +.aciTree .aciTreeIcon.folder { + background-position:-157px -5px !important; +} +.aciTree .aciTreeLine.aciTreeHover .aciTreeIcon.folder { + /* comment next line to keep the same icon on hover */ + background-position:-157px -35px !important; +} +.aciTree .aciTreeIcon.file { + background-position:-187px -5px !important; +} +.aciTree .aciTreeLine.aciTreeHover .aciTreeIcon.file { + /* comment next line to keep the same icon on hover */ + background-position:-187px -35px !important; +} + +/* demo row colors */ + +.aciTree.aciTreeColors .aciTreeOdd>.aciTreeLine { + /* odd rows */ + background-color:#FFFFC4; +} +.aciTree.aciTreeColors .aciTreeEven>.aciTreeLine { + /* even rows */ + background-color:#CAFFCA; +} +.aciTree.aciTreeColors .aciTreeFirst>.aciTreeLine { + /* first item on each level */ + /*background-color:#B0DFFF;*/ +} +.aciTree.aciTreeColors .aciTreeLast>.aciTreeLine { + /* last item on each level */ + /*background-color:#FFCEFF;*/ +} + +/* uncomment below to keep the item in one line and scroll the tree horizontally when needed */ + +/* + +.aciTree .aciTreeEntry { + overflow:visible; +} + +.aciTree .aciTreeItem { + white-space:nowrap; + margin-right:12px; +} + +*/ diff --git a/web/pgadmin/browser/static/css/aciTree/image/drag-drop-rtl.png b/web/pgadmin/browser/static/vendor/aciTree/image/drag-drop-rtl.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/drag-drop-rtl.png rename to web/pgadmin/browser/static/vendor/aciTree/image/drag-drop-rtl.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/drag-drop.png b/web/pgadmin/browser/static/vendor/aciTree/image/drag-drop.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/drag-drop.png rename to web/pgadmin/browser/static/vendor/aciTree/image/drag-drop.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/eyes.png b/web/pgadmin/browser/static/vendor/aciTree/image/eyes.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/eyes.png rename to web/pgadmin/browser/static/vendor/aciTree/image/eyes.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/load-node.gif b/web/pgadmin/browser/static/vendor/aciTree/image/load-node.gif similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/load-node.gif rename to web/pgadmin/browser/static/vendor/aciTree/image/load-node.gif diff --git a/web/pgadmin/browser/static/css/aciTree/image/load-root.gif b/web/pgadmin/browser/static/vendor/aciTree/image/load-root.gif similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/load-root.gif rename to web/pgadmin/browser/static/vendor/aciTree/image/load-root.gif diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-arrow-big-rtl.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-big-rtl.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-arrow-big-rtl.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-big-rtl.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-arrow-big.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-big.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-arrow-big.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-big.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-arrow-small-rtl.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-small-rtl.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-arrow-small-rtl.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-small-rtl.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-arrow-small.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-small.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-arrow-small.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-arrow-small.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-big-rtl.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-big-rtl.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-big-rtl.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-big-rtl.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-big.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-big.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-big.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-big.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-branch.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-branch.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-branch.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-branch.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-check-big-rtl.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-check-big-rtl.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-check-big-rtl.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-check-big-rtl.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-check-big.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-check-big.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-check-big.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-check-big.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-check-small-rtl.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-check-small-rtl.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-check-small-rtl.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-check-small-rtl.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-check-small.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-check-small.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-check-small.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-check-small.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-small-rtl.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-small-rtl.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-small-rtl.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-small-rtl.png diff --git a/web/pgadmin/browser/static/css/aciTree/image/tree-small.png b/web/pgadmin/browser/static/vendor/aciTree/image/tree-small.png similarity index 100% rename from web/pgadmin/browser/static/css/aciTree/image/tree-small.png rename to web/pgadmin/browser/static/vendor/aciTree/image/tree-small.png diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciFragment.min.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciFragment.min.js similarity index 99% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciFragment.min.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciFragment.min.js index 85bd48d4b..f115cd515 100755 --- a/web/pgadmin/browser/static/js/aciTree/jquery.aciFragment.min.js +++ b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciFragment.min.js @@ -1,15 +1,15 @@ - -/* - * aciFragment jQuery Plugin v1.1.0 - * http://acoderinsights.ro - * - * Copyright (c) 2013 Dragos Ursu - * Dual licensed under the MIT or GPL Version 2 licenses. - * - * Require jQuery Library >= v1.7.1 http://jquery.com - * + aciPlugin >= v1.1.1 https://github.com/dragosu/jquery-aciPlugin - * - * Date: Apr Fri 26 18:00 2013 +0200 - */ - -(function(e,t,n){var r={anchor:"anchor",poolDelay:250,scroll:{duration:"medium",easing:"linear"}};var i={__extend:function(){e.extend(this._instance,{lastHash:null,lastParsed:null,parsed:{},anchor:true,timeOut:null,"native":"onhashchange"in t&&(t.document.documentMode===n||t.document.documentMode>7)})},init:function(){var n=this;if(this.wasInit()){return}if(this._instance.native){e(t).bind("hashchange"+this._instance.nameSpace,function(){n._trigger()})}else{this._change()}this._instance.anchor=true;this._trigger();this._super()},_trigger:function(){this._instance.jQuery.trigger("acifragment",[this,this._instance.anchor]);this._instance.anchor=false},_change:function(){var e=this;var n=t.location.hash;if(n!=this._instance.lastHash){this._trigger();this._instance.lastHash=n}this._instance.timeOut=t.setTimeout(function(){e._change()},this._instance.options.poolDelay)},scroll:function(){var n=this.get(this._instance.options.anchor);if(n&&n.length){var r=e("#"+n+":first");if(!r.length){r=e('[name="'+n+'"]:first')}if(r.length){var i=r.get(0).getBoundingClientRect();var s=e(t).scrollLeft()+i.left,o=e(t).scrollTop()+i.top;if(this._instance.options.scroll){e("html,body").stop(true).animate({scrollLeft:s,scrollTop:o},this._instance.options.scroll)}else{t.scrollTo(s,o)}}}},click:function(e,t){var n=e.attr("href");if(n){var r=this.parse(n);this.update(r);if(t&&this.hasAnchor(r)){this.scroll()}}},parse:function(e){var n=e.indexOf("#"),r={};if(n!=-1){e=e.substr(n+1);var i=e.split("&"),s;for(var o in i){s=i[o].split("=");if(s.length>1){r[t.decodeURIComponent(s[0])]=t.decodeURIComponent(s[1])}else{r[this._instance.options.anchor]=t.decodeURIComponent(s[0])}}}return r},hasAnchor:function(e){return e[this._instance.options.anchor]&&e[this._instance.options.anchor].length>0},setAnchor:function(e){this.set(this._instance.options.anchor,e)},getAnchor:function(e){return this.get(this._instance.options.anchor,e)},parseHash:function(){var e=t.location.hash;if(e==this._instance.lastParsed){return this._instance.parsed}var n=this.parse(e);this._instance.parsed=n;this._instance.lastParsed=e;return n},get:function(e,r){var i=this.parseHash();if(i[e]!==null&&i[e]!==n&&t.String(i[e]).length){return i[e]}else{return r}},replace:function(e,r){var i=[];for(var s in e){if(e[s]!==null&&e[s]!==n&&t.String(e[s]).length){i[i.length]=t.encodeURIComponent(s)+"="+t.encodeURIComponent(e[s])}}if(!r&&this.hasAnchor(e)){this._instance.anchor=true}var o=t.location.hash;if(i.length){t.location.hash="#"+i.join("&")}else if(t.history&&t.history.pushState){t.history.pushState("",t.document.title,t.location.pathname+t.location.search)}else{t.location.hash=""}if(t.location.hash==o){this._trigger()}},update:function(e){var t=this.parseHash();for(var n in e){t[n]=e[n]}if(this.hasAnchor(e)){this._instance.anchor=true}this.replace(t,true)},set:function(e,t){var n=this.parseHash();n[e]=t;if(e==this._instance.options.anchor){this._instance.anchor=true}this.replace(n,true)},destroy:function(){if(!this.wasInit()){return}if(this._instance.native){e(t).unbind(this._instance.nameSpace)}t.clearTimeout(this._instance.timeOut);this._super()}};aciPluginClass.plugins.aciFragment=aciPluginClass.aciPluginUi.extend(i,"aciFragment");aciPluginClass.publish("aciFragment",r)})(jQuery,this); + +/* + * aciFragment jQuery Plugin v1.1.0 + * http://acoderinsights.ro + * + * Copyright (c) 2013 Dragos Ursu + * Dual licensed under the MIT or GPL Version 2 licenses. + * + * Require jQuery Library >= v1.7.1 http://jquery.com + * + aciPlugin >= v1.1.1 https://github.com/dragosu/jquery-aciPlugin + * + * Date: Apr Fri 26 18:00 2013 +0200 + */ + +(function(e,t,n){var r={anchor:"anchor",poolDelay:250,scroll:{duration:"medium",easing:"linear"}};var i={__extend:function(){e.extend(this._instance,{lastHash:null,lastParsed:null,parsed:{},anchor:true,timeOut:null,"native":"onhashchange"in t&&(t.document.documentMode===n||t.document.documentMode>7)})},init:function(){var n=this;if(this.wasInit()){return}if(this._instance.native){e(t).bind("hashchange"+this._instance.nameSpace,function(){n._trigger()})}else{this._change()}this._instance.anchor=true;this._trigger();this._super()},_trigger:function(){this._instance.jQuery.trigger("acifragment",[this,this._instance.anchor]);this._instance.anchor=false},_change:function(){var e=this;var n=t.location.hash;if(n!=this._instance.lastHash){this._trigger();this._instance.lastHash=n}this._instance.timeOut=t.setTimeout(function(){e._change()},this._instance.options.poolDelay)},scroll:function(){var n=this.get(this._instance.options.anchor);if(n&&n.length){var r=e("#"+n+":first");if(!r.length){r=e('[name="'+n+'"]:first')}if(r.length){var i=r.get(0).getBoundingClientRect();var s=e(t).scrollLeft()+i.left,o=e(t).scrollTop()+i.top;if(this._instance.options.scroll){e("html,body").stop(true).animate({scrollLeft:s,scrollTop:o},this._instance.options.scroll)}else{t.scrollTo(s,o)}}}},click:function(e,t){var n=e.attr("href");if(n){var r=this.parse(n);this.update(r);if(t&&this.hasAnchor(r)){this.scroll()}}},parse:function(e){var n=e.indexOf("#"),r={};if(n!=-1){e=e.substr(n+1);var i=e.split("&"),s;for(var o in i){s=i[o].split("=");if(s.length>1){r[t.decodeURIComponent(s[0])]=t.decodeURIComponent(s[1])}else{r[this._instance.options.anchor]=t.decodeURIComponent(s[0])}}}return r},hasAnchor:function(e){return e[this._instance.options.anchor]&&e[this._instance.options.anchor].length>0},setAnchor:function(e){this.set(this._instance.options.anchor,e)},getAnchor:function(e){return this.get(this._instance.options.anchor,e)},parseHash:function(){var e=t.location.hash;if(e==this._instance.lastParsed){return this._instance.parsed}var n=this.parse(e);this._instance.parsed=n;this._instance.lastParsed=e;return n},get:function(e,r){var i=this.parseHash();if(i[e]!==null&&i[e]!==n&&t.String(i[e]).length){return i[e]}else{return r}},replace:function(e,r){var i=[];for(var s in e){if(e[s]!==null&&e[s]!==n&&t.String(e[s]).length){i[i.length]=t.encodeURIComponent(s)+"="+t.encodeURIComponent(e[s])}}if(!r&&this.hasAnchor(e)){this._instance.anchor=true}var o=t.location.hash;if(i.length){t.location.hash="#"+i.join("&")}else if(t.history&&t.history.pushState){t.history.pushState("",t.document.title,t.location.pathname+t.location.search)}else{t.location.hash=""}if(t.location.hash==o){this._trigger()}},update:function(e){var t=this.parseHash();for(var n in e){t[n]=e[n]}if(this.hasAnchor(e)){this._instance.anchor=true}this.replace(t,true)},set:function(e,t){var n=this.parseHash();n[e]=t;if(e==this._instance.options.anchor){this._instance.anchor=true}this.replace(n,true)},destroy:function(){if(!this.wasInit()){return}if(this._instance.native){e(t).unbind(this._instance.nameSpace)}t.clearTimeout(this._instance.timeOut);this._super()}};aciPluginClass.plugins.aciFragment=aciPluginClass.aciPluginUi.extend(i,"aciFragment");aciPluginClass.publish("aciFragment",r)})(jQuery,this); diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciPlugin.min.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciPlugin.min.js similarity index 100% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciPlugin.min.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciPlugin.min.js diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciSortable.min.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciSortable.min.js similarity index 99% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciSortable.min.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciSortable.min.js index 6a7ad0c70..ac9583f07 100755 --- a/web/pgadmin/browser/static/js/aciTree/jquery.aciSortable.min.js +++ b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciSortable.min.js @@ -1,13 +1,13 @@ - -/* - * aciSortable jQuery Plugin v1.6.1 - * http://acoderinsights.ro - * - * Copyright (c) 2014 Dragos Ursu - * Dual licensed under the MIT or GPL Version 2 licenses. - * - * Require jQuery Library >= v1.7.1 http://jquery.com - * + aciPlugin >= v1.4.0 https://github.com/dragosu/jquery-aciPlugin - */ - -(function(d,c,e){var b={container:"ul",item:"li",distance:4,handle:"*",disable:"a,input,textarea,select,option,button",child:null,childHolder:'',childHolderSelector:".aciSortableChild",exclude:null,vertical:true,placeholder:'
  • ',placeholderSelector:".aciSortablePlaceholder",helper:'
    ',helperSelector:".aciSortableHelper",relative:false,draggable:true,gluedPlaceholder:false,connectDrop:null,dropPosition:null,simpleDrop:null,scroll:80,scrollParent:"window",before:function(g){if(this._instance.options.exclude){var f=this.containerFrom(g);return !f.is(this._instance.options.exclude)&&!g.is(this._instance.options.exclude)}return true},start:function(g,h,f){var i=g.clone();i.children(this._instance.options.container).remove();f.html(i.text())},valid:function(j,h,k,g,l,i){if(this._instance.options.exclude){if(g){return !h.is(this._instance.options.exclude)}else{var f=this.containerFrom(h);return !f.is(this._instance.options.exclude)}}return true},drag:function(g,i,h,f){},create:function(g,f){f.append(this._instance.options.childHolder);return true},remove:function(g,f){f.children(this._instance.options.childHolderSelector).remove()},end:function(h,f,i,g){if(i.parent().length){i.after(h).detach()}g.detach()}};var a={__extend:function(){d.extend(this._instance,{sorting:false,item:null,hoverItem:null,isContainer:false,pointStart:null,pointNow:null,placeholder:null,helper:null,relative:null,children:null,scroll:false,lastCheck:{}})},init:function(){if(this.wasInit()){return}this._instance.jQuery.on("mousedown"+this._instance.nameSpace,this._instance.options.item,this.proxy(function(f){var g=d(f.target);if(!g.is(this._instance.options.handle)||g.is(this._instance.options.disable)){return}if(!g.is(this._instance.options.disable)){f.preventDefault()}if(g.is(this._instance.options.container)){d(c.document.body).css("cursor","no-drop")}else{this._delayStart(f)}})).on("mousemove"+this._instance.nameSpace,this._instance.options.item,this.proxy(function(h){if(this._instance.sorting){h.stopPropagation();this._instance.isContainer=false;var g=this.itemFrom(h.target);if(this._instance.item.has(g).length){this._instance.hoverItem=null}else{if(this._instance.options.dropPosition===null){this._instance.hoverItem=g}else{var f=this.containerFrom(h.target);this._dropPosition(f)}}}this._drag(h)})).on("mousemove"+this._instance.nameSpace,this._instance.options.container,this.proxy(function(g){if(this._instance.sorting){g.stopPropagation();var f=this.containerFrom(g.target);if(!this._instance.item.has(f).length){if(this.isEmpty(f)){this._instance.hoverItem=f;this._instance.isContainer=true}else{this._instance.isContainer=false;if(this._instance.options.dropPosition===null){this._instance.hoverItem=this._closestFrom(g)}else{this._dropPosition(f)}}}}this._drag(g)}));this._initConnect();this._initSimple();d(c.document).bind("mousemove"+this._instance.nameSpace+this._instance.index,this.proxy(function(f){if(this._instance.sorting){this._instance.hoverItem=null;this._drag(f)}})).on("mousemove"+this._instance.nameSpace+this._instance.index,this._instance.options.helperSelector,this.proxy(function(g){if(this._instance.sorting){var f=this._fromCursor(g);if(f){this._instance.jQuery.trigger(d.Event("mousemove",{target:f,pageX:g.pageX,pageY:g.pageY}));g.stopPropagation()}}})).bind("selectstart"+this._instance.nameSpace+this._instance.index,this.proxy(function(f){if(this._instance.sorting){f.preventDefault()}})).bind("mouseup"+this._instance.nameSpace+this._instance.index,this.proxy(function(){if(this._instance.sorting){this._end()}else{this._instance.item=null;d(c.document.body).css("cursor","default")}}));this._super()},_dropPosition:function(f){if(this._instance.options.dropPosition==-1){this._instance.hoverItem=this._firstItem(f)}else{this._instance.hoverItem=this._lastItem(f)}if(!this._instance.hoverItem.length){this._instance.hoverItem=f;this._instance.isContainer=true}},_firstItem:function(f){return f.children(this._instance.options.item).not(this._instance.options.placeholderSelector).first()},_lastItem:function(f){return f.children(this._instance.options.item).not(this._instance.options.placeholderSelector).last()},_closestFrom:function(j){var i=null;var h=d(j.target);if(this._instance.options.vertical){var f=d(c).scrollTop();var g=h.height();h.find(this._instance.options.item).not(this._instance.options.placeholderSelector).each(function(){var k=this.getBoundingClientRect();var l=c.Math.abs(f+k.top+(k.bottom-k.top)/2-j.pageY);if(l');d(c.document.body).append(g);this._instance.item=g;this._instance.placeholder.detach();this._instance.helper.detach();this._end();g.remove();h._start()}},hasItem:function(f){return this._instance.jQuery.has(f).length>0},sortableFrom:function(f){if(this._instance.jQuery.has(f).length){return this._instance.jQuery}if(this._instance.options.connectDrop){return d(f).closest(this._instance.options.connectDrop)}return d()},itemFrom:function(f){return d(f).closest(this._instance.options.item)},containerFrom:function(f){return d(f).closest(this._instance.options.container)},hasChildrens:function(f){return f.children(this._instance.options.container).children(this._instance.options.item).not(this._instance.options.placeholderSelector).length>0},hasContainer:function(f){return f.children(this._instance.options.container).length>0},isEmpty:function(f){return !f.children(this._instance.options.item).not(this._instance.options.placeholderSelector).length},_delayStart:function(h){var g=this.itemFrom(h.target);if(this._call("before",{item:g})){this._instance.item=g;this._instance.pointStart={x:h.pageX,y:h.pageY};if(this._instance.options.relative){var j=d(c).scrollTop();var i=d(c).scrollLeft();var f=this._instance.item.get(0).getBoundingClientRect();this._instance.relative={x:f.left+i-h.pageX,y:f.top+j-h.pageY}}else{this._instance.relative={x:0,y:0}}this._drag(h)}else{d(c.document.body).css("cursor","no-drop")}},_start:function(){this._instance.sorting=true;if(!this._instance.placeholder){this._instance.placeholder=d(this._instance.options.placeholder)}if(!this._instance.helper){this._instance.helper=d(this._instance.options.helper)}this._call("start",{item:this._instance.item,placeholder:this._instance.placeholder,helper:this._instance.helper});if(this._instance.options.gluedPlaceholder){this._instance.item.after(this._instance.placeholder)}d(c.document.body).append(this._instance.helper);d(c.document.body).css("cursor","move")},_minDistance:function(){return(c.Math.abs(this._instance.pointStart.x-this._instance.pointNow.x)>this._instance.options.distance)||(c.Math.abs(this._instance.pointStart.y-this._instance.pointNow.y)>this._instance.options.distance)},_drag:function(f){this._instance.pointNow={x:f.pageX,y:f.pageY};if(this._instance.sorting){this._helper();this._placeholder()}else{if(this._instance.item){if(this._minDistance()){this._start()}}}},_onDrag:function(f){this._call("drag",{item:this._instance.item,placeholder:this._instance.placeholder,isValid:f,helper:this._instance.helper})},_isValid:function(g,f){if(!this._instance.options.draggable&&this.hasItem(this._instance.item)&&(this._instance.isContainer||(this.containerFrom(this._instance.item).get(0)!=this.containerFrom(this._instance.hoverItem).get(0)))){return false}if(this._call("valid",{item:this._instance.item,hover:this._instance.hoverItem,before:f?null:((g===null)?false:g),isContainer:f?true:this._instance.isContainer,placeholder:this._instance.placeholder,helper:this._instance.helper})){d(c.document.body).css("cursor","move");return true}return false},_onCreate:function(){this._onRemove();if(this._instance.hoverItem.is(this._instance.options.exclude)){return false}if(this._isSimple()){return false}if(this._call("create",{item:this._instance.item,hover:this._instance.hoverItem})){this._instance.childItem=this._instance.hoverItem;this._instance.hoverItem=this._instance.hoverItem.children(this._instance.options.childHolderSelector);this._instance.isContainer=true;this._placeholder();return true}return false},_onRemove:function(f){if(this._instance.childItem&&(!f||(f.get(0)!=this._instance.childItem.get(0)))){if(this._instance.placeholder){this._instance.placeholder.detach()}if(!this.hasChildrens(this._instance.childItem)){this._call("remove",{item:this._instance.item,hover:this._instance.childItem})}this._instance.childItem=null}},_wasValid:function(j,h,g){if(this._instance.lastCheck){var i=g?this._instance.lastCheck.check:this._instance.lastCheck.normal;var f=i&&(i.hoverItem.get(0)==this._instance.hoverItem.get(0))&&(i.before===j)&&(i.create===h)&&(i.isContainer==this._instance.isContainer)}this._instance.lastCheck[g?"check":"normal"]={hoverItem:this._instance.hoverItem,before:j,create:h,isContainer:this._instance.isContainer};return f},_isSimple:function(){return this._instance.options.simpleDrop&&this._instance.hoverItem&&this._instance.hoverItem.is(this._instance.options.simpleDrop)},_placeholder:function(){this._instance.pointStart=this._instance.pointNow;if(this._instance.hoverItem){if(this._instance.hoverItem.is(this._instance.options.placeholderSelector)){return}if(this._instance.isContainer){if(this._wasValid(null,false)){return}if(this._isValid(null)){this._instance.hoverItem.append(this._instance.placeholder);this._onDrag(true);return}}else{if(this._instance.hoverItem.get(0)!=this._instance.item.get(0)){var m=false,j=false;var k=this._instance.hoverItem.get(0).getBoundingClientRect();var i=this._instance.hoverItem.children(this._instance.options.container);if(this._instance.options.vertical){var n=d(c).scrollTop();var g=k.bottom-((i.length&&i.is(":visible"))?i.outerHeight(true):0);if(this._instance.options.child&&(this._instance.options.draggable||!this.hasItem(this._instance.item))&&!this.hasChildrens(this._instance.hoverItem)){var h=(g-k.top)*(0.5-this._instance.options.child/200);if((this._instance.pointNow.y>n+k.top+h)&&(this._instance.pointNow.yn+k.left+h)||(this._instance.pointNow.xq)&&(this._instance.pointNow.x>k+o.left)&&(this._instance.pointNow.x0){var f=p+o.top+l-this._instance.pointNow.y;g.scrollTop(c.Math.max(h-this._amount(l,f),0));n=true}}else{if(this._instance.pointNow.y>p+o.bottom-l){if(h+qi)&&(this._instance.pointNow.y>p+o.top)&&(this._instance.pointNow.y0){var f=k+o.left+l-this._instance.pointNow.x;g.scrollLeft(c.Math.max(h-this._amount(l,f),0));n=true}}else{if(this._instance.pointNow.x>k+o.right-l){if(h+i= v1.7.1 http://jquery.com + * + aciPlugin >= v1.4.0 https://github.com/dragosu/jquery-aciPlugin + */ + +(function(d,c,e){var b={container:"ul",item:"li",distance:4,handle:"*",disable:"a,input,textarea,select,option,button",child:null,childHolder:'
      ',childHolderSelector:".aciSortableChild",exclude:null,vertical:true,placeholder:'
    • ',placeholderSelector:".aciSortablePlaceholder",helper:'
      ',helperSelector:".aciSortableHelper",relative:false,draggable:true,gluedPlaceholder:false,connectDrop:null,dropPosition:null,simpleDrop:null,scroll:80,scrollParent:"window",before:function(g){if(this._instance.options.exclude){var f=this.containerFrom(g);return !f.is(this._instance.options.exclude)&&!g.is(this._instance.options.exclude)}return true},start:function(g,h,f){var i=g.clone();i.children(this._instance.options.container).remove();f.html(i.text())},valid:function(j,h,k,g,l,i){if(this._instance.options.exclude){if(g){return !h.is(this._instance.options.exclude)}else{var f=this.containerFrom(h);return !f.is(this._instance.options.exclude)}}return true},drag:function(g,i,h,f){},create:function(g,f){f.append(this._instance.options.childHolder);return true},remove:function(g,f){f.children(this._instance.options.childHolderSelector).remove()},end:function(h,f,i,g){if(i.parent().length){i.after(h).detach()}g.detach()}};var a={__extend:function(){d.extend(this._instance,{sorting:false,item:null,hoverItem:null,isContainer:false,pointStart:null,pointNow:null,placeholder:null,helper:null,relative:null,children:null,scroll:false,lastCheck:{}})},init:function(){if(this.wasInit()){return}this._instance.jQuery.on("mousedown"+this._instance.nameSpace,this._instance.options.item,this.proxy(function(f){var g=d(f.target);if(!g.is(this._instance.options.handle)||g.is(this._instance.options.disable)){return}if(!g.is(this._instance.options.disable)){f.preventDefault()}if(g.is(this._instance.options.container)){d(c.document.body).css("cursor","no-drop")}else{this._delayStart(f)}})).on("mousemove"+this._instance.nameSpace,this._instance.options.item,this.proxy(function(h){if(this._instance.sorting){h.stopPropagation();this._instance.isContainer=false;var g=this.itemFrom(h.target);if(this._instance.item.has(g).length){this._instance.hoverItem=null}else{if(this._instance.options.dropPosition===null){this._instance.hoverItem=g}else{var f=this.containerFrom(h.target);this._dropPosition(f)}}}this._drag(h)})).on("mousemove"+this._instance.nameSpace,this._instance.options.container,this.proxy(function(g){if(this._instance.sorting){g.stopPropagation();var f=this.containerFrom(g.target);if(!this._instance.item.has(f).length){if(this.isEmpty(f)){this._instance.hoverItem=f;this._instance.isContainer=true}else{this._instance.isContainer=false;if(this._instance.options.dropPosition===null){this._instance.hoverItem=this._closestFrom(g)}else{this._dropPosition(f)}}}}this._drag(g)}));this._initConnect();this._initSimple();d(c.document).bind("mousemove"+this._instance.nameSpace+this._instance.index,this.proxy(function(f){if(this._instance.sorting){this._instance.hoverItem=null;this._drag(f)}})).on("mousemove"+this._instance.nameSpace+this._instance.index,this._instance.options.helperSelector,this.proxy(function(g){if(this._instance.sorting){var f=this._fromCursor(g);if(f){this._instance.jQuery.trigger(d.Event("mousemove",{target:f,pageX:g.pageX,pageY:g.pageY}));g.stopPropagation()}}})).bind("selectstart"+this._instance.nameSpace+this._instance.index,this.proxy(function(f){if(this._instance.sorting){f.preventDefault()}})).bind("mouseup"+this._instance.nameSpace+this._instance.index,this.proxy(function(){if(this._instance.sorting){this._end()}else{this._instance.item=null;d(c.document.body).css("cursor","default")}}));this._super()},_dropPosition:function(f){if(this._instance.options.dropPosition==-1){this._instance.hoverItem=this._firstItem(f)}else{this._instance.hoverItem=this._lastItem(f)}if(!this._instance.hoverItem.length){this._instance.hoverItem=f;this._instance.isContainer=true}},_firstItem:function(f){return f.children(this._instance.options.item).not(this._instance.options.placeholderSelector).first()},_lastItem:function(f){return f.children(this._instance.options.item).not(this._instance.options.placeholderSelector).last()},_closestFrom:function(j){var i=null;var h=d(j.target);if(this._instance.options.vertical){var f=d(c).scrollTop();var g=h.height();h.find(this._instance.options.item).not(this._instance.options.placeholderSelector).each(function(){var k=this.getBoundingClientRect();var l=c.Math.abs(f+k.top+(k.bottom-k.top)/2-j.pageY);if(l');d(c.document.body).append(g);this._instance.item=g;this._instance.placeholder.detach();this._instance.helper.detach();this._end();g.remove();h._start()}},hasItem:function(f){return this._instance.jQuery.has(f).length>0},sortableFrom:function(f){if(this._instance.jQuery.has(f).length){return this._instance.jQuery}if(this._instance.options.connectDrop){return d(f).closest(this._instance.options.connectDrop)}return d()},itemFrom:function(f){return d(f).closest(this._instance.options.item)},containerFrom:function(f){return d(f).closest(this._instance.options.container)},hasChildrens:function(f){return f.children(this._instance.options.container).children(this._instance.options.item).not(this._instance.options.placeholderSelector).length>0},hasContainer:function(f){return f.children(this._instance.options.container).length>0},isEmpty:function(f){return !f.children(this._instance.options.item).not(this._instance.options.placeholderSelector).length},_delayStart:function(h){var g=this.itemFrom(h.target);if(this._call("before",{item:g})){this._instance.item=g;this._instance.pointStart={x:h.pageX,y:h.pageY};if(this._instance.options.relative){var j=d(c).scrollTop();var i=d(c).scrollLeft();var f=this._instance.item.get(0).getBoundingClientRect();this._instance.relative={x:f.left+i-h.pageX,y:f.top+j-h.pageY}}else{this._instance.relative={x:0,y:0}}this._drag(h)}else{d(c.document.body).css("cursor","no-drop")}},_start:function(){this._instance.sorting=true;if(!this._instance.placeholder){this._instance.placeholder=d(this._instance.options.placeholder)}if(!this._instance.helper){this._instance.helper=d(this._instance.options.helper)}this._call("start",{item:this._instance.item,placeholder:this._instance.placeholder,helper:this._instance.helper});if(this._instance.options.gluedPlaceholder){this._instance.item.after(this._instance.placeholder)}d(c.document.body).append(this._instance.helper);d(c.document.body).css("cursor","move")},_minDistance:function(){return(c.Math.abs(this._instance.pointStart.x-this._instance.pointNow.x)>this._instance.options.distance)||(c.Math.abs(this._instance.pointStart.y-this._instance.pointNow.y)>this._instance.options.distance)},_drag:function(f){this._instance.pointNow={x:f.pageX,y:f.pageY};if(this._instance.sorting){this._helper();this._placeholder()}else{if(this._instance.item){if(this._minDistance()){this._start()}}}},_onDrag:function(f){this._call("drag",{item:this._instance.item,placeholder:this._instance.placeholder,isValid:f,helper:this._instance.helper})},_isValid:function(g,f){if(!this._instance.options.draggable&&this.hasItem(this._instance.item)&&(this._instance.isContainer||(this.containerFrom(this._instance.item).get(0)!=this.containerFrom(this._instance.hoverItem).get(0)))){return false}if(this._call("valid",{item:this._instance.item,hover:this._instance.hoverItem,before:f?null:((g===null)?false:g),isContainer:f?true:this._instance.isContainer,placeholder:this._instance.placeholder,helper:this._instance.helper})){d(c.document.body).css("cursor","move");return true}return false},_onCreate:function(){this._onRemove();if(this._instance.hoverItem.is(this._instance.options.exclude)){return false}if(this._isSimple()){return false}if(this._call("create",{item:this._instance.item,hover:this._instance.hoverItem})){this._instance.childItem=this._instance.hoverItem;this._instance.hoverItem=this._instance.hoverItem.children(this._instance.options.childHolderSelector);this._instance.isContainer=true;this._placeholder();return true}return false},_onRemove:function(f){if(this._instance.childItem&&(!f||(f.get(0)!=this._instance.childItem.get(0)))){if(this._instance.placeholder){this._instance.placeholder.detach()}if(!this.hasChildrens(this._instance.childItem)){this._call("remove",{item:this._instance.item,hover:this._instance.childItem})}this._instance.childItem=null}},_wasValid:function(j,h,g){if(this._instance.lastCheck){var i=g?this._instance.lastCheck.check:this._instance.lastCheck.normal;var f=i&&(i.hoverItem.get(0)==this._instance.hoverItem.get(0))&&(i.before===j)&&(i.create===h)&&(i.isContainer==this._instance.isContainer)}this._instance.lastCheck[g?"check":"normal"]={hoverItem:this._instance.hoverItem,before:j,create:h,isContainer:this._instance.isContainer};return f},_isSimple:function(){return this._instance.options.simpleDrop&&this._instance.hoverItem&&this._instance.hoverItem.is(this._instance.options.simpleDrop)},_placeholder:function(){this._instance.pointStart=this._instance.pointNow;if(this._instance.hoverItem){if(this._instance.hoverItem.is(this._instance.options.placeholderSelector)){return}if(this._instance.isContainer){if(this._wasValid(null,false)){return}if(this._isValid(null)){this._instance.hoverItem.append(this._instance.placeholder);this._onDrag(true);return}}else{if(this._instance.hoverItem.get(0)!=this._instance.item.get(0)){var m=false,j=false;var k=this._instance.hoverItem.get(0).getBoundingClientRect();var i=this._instance.hoverItem.children(this._instance.options.container);if(this._instance.options.vertical){var n=d(c).scrollTop();var g=k.bottom-((i.length&&i.is(":visible"))?i.outerHeight(true):0);if(this._instance.options.child&&(this._instance.options.draggable||!this.hasItem(this._instance.item))&&!this.hasChildrens(this._instance.hoverItem)){var h=(g-k.top)*(0.5-this._instance.options.child/200);if((this._instance.pointNow.y>n+k.top+h)&&(this._instance.pointNow.yn+k.left+h)||(this._instance.pointNow.xq)&&(this._instance.pointNow.x>k+o.left)&&(this._instance.pointNow.x0){var f=p+o.top+l-this._instance.pointNow.y;g.scrollTop(c.Math.max(h-this._amount(l,f),0));n=true}}else{if(this._instance.pointNow.y>p+o.bottom-l){if(h+qi)&&(this._instance.pointNow.y>p+o.top)&&(this._instance.pointNow.y0){var f=k+o.left+l-this._instance.pointNow.x;g.scrollLeft(c.Math.max(h-this._amount(l,f),0));n=true}}else{if(this._instance.pointNow.x>k+o.right-l){if(h+i= v1.9.0 http://jquery.com - * + aciPlugin >= v1.5.1 https://github.com/dragosu/jquery-aciPlugin - */ - -/* - * The aciTree core. - * - * A few words about how item data looks like: - * - * for a leaf node (a node that does not have any children): - * - * { - * id: 'some_file_ID', // should be unique item ID - * label: 'This is a File Item', // the item label (text value) - * inode: false, // FALSE means is a leaf node (can be omitted) - * icon: 'fileIcon', // CSS class name for the icon (if any), can also be an Array ['CSS class name', background-position-x, background-position-y] - * disabled: false, // TRUE means the item is disabled (can be omitted) - * random_prop: 'random 1' // sample user defined property (you can have any number defined) - * } - * - * for a inner node (a node that have at least a children under it): - * - * { - * id: 'some_folder_ID', // should be unique item ID - * label: 'This is a Folder Item', // the item label (text value) - * inode: true, // can also be NULL to find at runtime if its an inode (on load will be transformed in a leaf node if there aren't any children) - * open: false, // if TRUE then the node will be opened when the tree is loaded (can be omitted) - * icon: 'folderIcon', // CSS class name for the icon (if any), can also be an Array ['CSS class name', background-position-x, background-position-y] - * disabled: false, // TRUE means the item is disabled (can be omitted) - * source: 'myDataSource', // the data source name (if any) to read the children from, by default `aciTree.options.ajax` is used - * branch: [ // a list of children - * { ... item data ... }, - * { ... item data ... }, - * ... - * ], - * random_prop: 'random 2' // sample user defined property (you can have any number defined) - * } - * - * The `branch` array can be empty, in this case the children will be loaded when the node will be opened for the first time. - * - * Please note that the item data should be valid (in the expected format). No checking is done and errors can appear on invalid data. - * - * One note about a item: a item is always the LI element with the class 'aciTreeLi'. - * The children of a node are all added under a UL element with the class 'aciTreeUl'. - * - * Almost all API functions expect only one item. If you need to process more at once then you'll need to loop between all of them yourself. - * - * The `options` parameter for all API methods (when there is one) is a object with the properties (not all are required or used): - * - * { - * uid: string -> operation UID (defaults to `ui`) - * success: function (item, options) -> callback to be called on success (you can access plugin API with `this` keyword inside the callback) - * fail: function (item, options) -> callback to be called on fail (you can access plugin API with `this` keyword inside the callback) - * notify: function (item, options) -> notify callback (internal use for when already in the requested state, will call `success` by default) - * expand: true/false -> propagate on open/toggle - * collapse: true/false -> propagate on close/toggle - * unique: true/false -> should other branches be closed (on open/toggle) ? - * unanimated: true/false -> if it's TRUE then no animations are to be run (used on open/close/toggle) - * itemData: object[item data]/array[item data] -> used when adding/updating items - * } - * - * Note: when using the API methods that support the `options` parameter, you will need to use the success/fail callbacks if you need to do - * any processing after the API call. This because there can be async operations that will complete at a later time and the API methods will - * exit before the job is actually completed. This will happen when items are loaded with AJAX, on animations and other delayed operations (see _queue). - * - */ - -(function($, window, undefined) { - - // default options - - var options = { - // the AJAX options (see jQuery.ajax) where the `success` and `error` are overridden by aciTree - ajax: { - url: null, // URL from where to take the data, something like `path/script?nodeId=` (the node ID value will be added for each request) - dataType: 'json' - }, - dataSource: null, // a list of data sources to be used (each entry in `aciTree.options.ajax` format) - rootData: null, // initial ROOT data for the Tree (if NULL then one initial AJAX request is made on init) - queue: { - async: 4, // the number of simultaneous async (AJAX) tasks - interval: 50, // interval [ms] after which to insert a `delay` - delay: 20 // how many [ms] delay between tasks (after `interval` expiration) - }, - loaderDelay: 500, // how many msec to wait before showing the main loader ? (on lengthy operations) - expand: false, // if TRUE then all children of a node are expanded when the node is opened - collapse: false, // if TRUE then all children of a node are collapsed when the node is closed - unique: false, // if TRUE then a single tree branch will stay open, the oters are closed when a node is opened - empty: false, // if TRUE then all children of a node are removed when the node is closed - show: {// show node/ROOT animation (default is slideDown) - props: { - 'height': 'show' - }, - duration: 'medium', - easing: 'linear' - }, - animateRoot: true, // if the ROOT should be animated on init - hide: {// hide node animation (default is slideUp) - props: { - 'height': 'hide' - }, - duration: 'medium', - easing: 'linear' - }, - view: {// scroll item into view animation - duration: 'medium', - easing: 'linear' - }, - // called for each AJAX request when a node needs to be loaded - // `item` is the item who will be loaded - // `settings` is the `aciTree.options.ajax` object or an entry from `aciTree.options.dataSource` - ajaxHook: function(item, settings) { - // the default implementation changes the URL by adding the item ID at the end - settings.url += (item ? this.getId(item) : ''); - }, - // called after each item is created but before is inserted into the DOM - // `parent` is the parent item (can be empty) - // `item` is the new created item - // `itemData` is the object used to create the item - // `level` is the #0 based item level - itemHook: function(parent, item, itemData, level) { - // there is no default implementation - }, - // called for each item to serialize its value - // `item` is the tree item to be serialized - // `what` is the option telling what is being serialized - // `value` is the current serialized value (from the `item`, value type depending of `what`) - serialize: function(item, what, value) { - if (typeof what == 'object') { - return value; - } else { - // the default implementation uses a `|` (pipe) character to separate values - return '|' + value; - } - } - }; - - // aciTree plugin core - - var aciTree_core = { - // add extra data - __extend: function() { - $.extend(this._instance, { - queue: new this._queue(this, this._instance.options.queue) // the global tree queue - }); - $.extend(this._private, { - locked: false, // to tell the tree state - itemClone: {// keep a clone of the LI for faster tree item creation - }, - // timeouts for the loader - loaderHide: null, - loaderInterval: null, - // busy delay counter - delayBusy: 0 - }); - }, - // init the treeview - init: function(options) { - options = this._options(options); - // check if was init already - if (this.wasInit()) { - this._trigger(null, 'wasinit', options); - this._fail(null, options); - return; - } - // check if is locked - if (this.isLocked()) { - this._trigger(null, 'locked', options); - this._fail(null, options); - return; - } - // a way to cancel the operation - if (!this._trigger(null, 'beforeinit', options)) { - this._trigger(null, 'initfail', options); - this._fail(null, options); - return; - } - this._private.locked = true; - this._instance.jQuery.addClass('aciTree' + this._instance.index).attr('role', 'tree').on('click' + this._instance.nameSpace, '.aciTreeButton', this.proxy(function(e) { - // process click on button - var item = this.itemFrom(e.target); - // skip when busy - if (!this.isBusy(item)) { - // tree button pressed - this.toggle(item, { - collapse: this._instance.options.collapse, - expand: this._instance.options.expand, - unique: this._instance.options.unique - }); - } - })).on('mouseenter' + this._instance.nameSpace + ' mouseleave' + this._instance.nameSpace, '.aciTreePush', function(e) { - // handle the aciTreeHover class - var element = e.target; - if (!domApi.hasClass(element, 'aciTreePush')) { - element = domApi.parentByClass(element, 'aciTreePush'); - } - domApi.toggleClass(element, 'aciTreeHover', e.type == 'mouseenter'); - }).on('mouseenter' + this._instance.nameSpace + ' mouseleave' + this._instance.nameSpace, '.aciTreeLine', function(e) { - // handle the aciTreeHover class - var element = e.target; - if (!domApi.hasClass(element, 'aciTreeLine')) { - element = domApi.parentByClass(element, 'aciTreeLine'); - } - domApi.toggleClass(element, 'aciTreeHover', e.type == 'mouseenter'); - }); - this._initHook(); - // call on success - var success = this.proxy(function() { - // call the parent - this._super(); - this._private.locked = false; - this._trigger(null, 'init', options); - this._success(null, options); - }); - // call on fail - var fail = this.proxy(function() { - // call the parent - this._super(); - this._private.locked = false; - this._trigger(null, 'initfail', options); - this._fail(null, options); - }); - if (this._instance.options.rootData) { - // the rootData was set, use it to init the tree - this.loadFrom(null, this._inner(options, { - success: success, - fail: fail, - itemData: this._instance.options.rootData - })); - } else if (this._instance.options.ajax.url) { - // the AJAX url was set, init with AJAX - this.ajaxLoad(null, this._inner(options, { - success: success, - fail: fail - })); - } else { - success.apply(this); - } - }, - _initHook: function() { - // override this to do extra init - }, - // check locked state - isLocked: function() { - return this._private.locked; - }, - // get a formatted message - // `raw` is the raw message text (can contain %NUMBER sequences, replaced with values from `params`) - // `params` is a list of values to be replaced into the message (by #0 based index) - _format: function(raw, params) { - if (!(params instanceof Array)) { - return raw; - } - var parts = raw.split(/(%[0-9]+)/gm); - var compile = '', part, index, last = false, len; - var test = new window.RegExp('^%[0-9]+$'); - for (var i = 0; i < parts.length; i++) { - part = parts[i]; - len = part.length; - if (len) { - if (!last && test.test(part)) { - index = window.parseInt(part.substr(1)) - 1; - if ((index >= 0) && (index < params.length)) { - compile += params[index]; - continue; - } - } else { - last = false; - if (part.substr(len - 1) == '%') { - if (part.substr(len - 2) != '%%') { - last = true; - } - part = part.substr(0, len - 1); - } - } - compile += part; - } - } - return compile; - }, - // low level DOM functions - _coreDOM: { - // set as leaf node - leaf: function(items) { - domApi.addRemoveListClass(items.toArray(), 'aciTreeLeaf', ['aciTreeInode', 'aciTreeInodeMaybe', 'aciTreeOpen'], function(node) { - node.firstChild.removeAttribute('aria-expanded'); - }); - }, - // set as inner node - inode: function(items, branch) { - domApi.addRemoveListClass(items.toArray(), branch ? 'aciTreeInode' : 'aciTreeInodeMaybe', 'aciTreeLeaf', function(node) { - node.firstChild.setAttribute('aria-expanded', false); - }); - }, - // set as open/closed - toggle: function(items, state) { - domApi.toggleListClass(items.toArray(), 'aciTreeOpen', state, function(node) { - node.firstChild.setAttribute('aria-expanded', state); - }); - }, - // set odd/even classes - oddEven: function(items, odd) { - var list = items.toArray(); - for (var i = 0; i < list.length; i++) { - domApi.addRemoveClass(list[i], odd ? 'aciTreeOdd' : 'aciTreeEven', odd ? 'aciTreeEven' : 'aciTreeOdd'); - odd = !odd; - } - } - }, - // a small queue implementation - // `context` the context to be used with `callback.call` - // `options` are the queue options - _queue: function(context, options) { - var locked = false; - var fifo = [], fifoAsync = []; - var load = 0, loadAsync = 0, schedule = 0, stack = 0; - // run the queue - var run = function() { - if (locked) { - stack--; - return; - } - var now = new window.Date().getTime(); - if (schedule > now) { - stack--; - return; - } - var callback, async = false; - if (load < options.async * 2) { - // get the next synchronous callback - callback = fifo.shift(); - } - if (!callback && (loadAsync < options.async)) { - // get the next async callback - callback = fifoAsync.shift(); - async = true; - } - if (callback) { - // run the callback - if (async) { - loadAsync++; - callback.call(context, function() { - loadAsync--; - }); - if (stack < 40) { - stack++; - run(); - } - } else { - load++; - callback.call(context, function() { - if (now - schedule > options.interval) { - schedule = now + options.delay; - } - load--; - if (stack < 40) { - stack++; - run(); - } - }); - } - } - stack--; - }; - var interval = []; - // start the queue - var start = function() { - for (var i = 0; i < 4; i++) { - interval[i] = window.setInterval(function() { - if (stack < 20) { - stack++; - run(); - } - }, 10); - } - }; - // stop the queue - var stop = function() { - for (var i = 0; i < interval.length; i++) { - window.clearInterval(interval[i]); - } - }; - start(); - // init the queue - this.init = function() { - this.destroy(); - start(); - return this; - }; - // push `callback` function (complete) for later call - // `async` tells if is async callback - this.push = function(callback, async) { - if (!locked) { - if (async) { - fifoAsync.push(callback); - } else { - fifo.push(callback); - } - } - return this; - }; - // test if busy - this.busy = function() { - return (load != 0) || (loadAsync != 0) || (fifo.length != 0) || (fifoAsync.length != 0); - }; - // destroy queue - this.destroy = function() { - locked = true; - stop(); - fifo = []; - fifoAsync = []; - load = 0; - loadAsync = 0; - schedule = 0; - stack = 0; - locked = false; - return this; - }; - }, - // used with a `queue` to execute something at the end - // `endCallback` function (complete) is the callback called at the end - _task: function(queue, endCallback) { - var counter = 0, finish = false; - // push a `callback` function (complete) for later call - this.push = function(callback, async) { - counter++; - queue.push(function(complete) { - var context = this; - callback.call(this, function() { - counter--; - if ((counter < 1) && !finish) { - finish = true; - endCallback.call(context, complete); - } else { - complete(); - } - }); - }, async); - }; - }, - // helper function to extend the `options` object - // `object` the initial options object - // _success, _fail, _notify are callbacks or string (the event name to be triggered) - // `item` is the item to trigger events for - _options: function(object, _success, _fail, _notify, item) { - // options object (need to be in this form for all API functions - // that have the `options` parameter, not all properties are required) - var options = $.extend({ - uid: 'ui', - success: null, // success callback - fail: null, // fail callback - notify: null, // notify callback (internal use for when already in the requested state) - expand: this._instance.options.expand, // propagate (on open) - collapse: this._instance.options.collapse, // propagate (on close) - unique: this._instance.options.unique, // keep a single branch open (on open) - unanimated: false, // unanimated (open/close/toggle) - itemData: { - } // items data (object) or a list (array) of them (used when creating branches) - }, - object); - var success = _success ? ((typeof _success == 'string') ? function() { - this._trigger(item, _success, options); - } : _success) : null; - var fail = _fail ? ((typeof _fail == 'string') ? function() { - this._trigger(item, _fail, options); - } : _fail) : null; - var notify = _notify ? ((typeof _notify == 'string') ? function() { - this._trigger(item, _notify, options); - } : _notify) : null; - if (success) { - // success callback - if (object && object.success) { - options.success = function() { - success.apply(this, arguments); - object.success.apply(this, arguments); - }; - } else { - options.success = success; - } - } - if (fail) { - // fail callback - if (object && object.fail) { - options.fail = function() { - fail.apply(this, arguments); - object.fail.apply(this, arguments); - }; - } else { - options.fail = fail; - } - } - if (notify) { - // notify callback - if (object && object.notify) { - options.notify = function() { - notify.apply(this, arguments); - object.notify.apply(this, arguments); - }; - } else if (!options.notify && object && object.success) { - options.notify = function() { - notify.apply(this, arguments); - object.success.apply(this, arguments); - }; - } else { - options.notify = notify; - } - } else if (!options.notify && object && object.success) { - // by default, run success callback - options.notify = object.success; - } - return options; - }, - // helper for passing `options` object to inner methods - // the callbacks are removed and `override` can be used to update properties - _inner: function(options, override) { - // removing success/fail/notify from options - return $.extend({ - }, options, { - success: null, - fail: null, - notify: null - }, - override); - }, - // trigger the aciTree events on the tree container - _trigger: function(item, eventName, options) { - var event = $.Event('acitree'); - if (!options) { - options = this._options(); - } - this._instance.jQuery.trigger(event, [this, item, eventName, options]); - return !event.isDefaultPrevented(); - }, - // call on success - _success: function(item, options) { - if (options && options.success) { - options.success.call(this, item, options); - } - }, - // call on fail - _fail: function(item, options) { - if (options && options.fail) { - options.fail.call(this, item, options); - } - }, - // call on notify (should be same as `success` but called when already in the requested state) - _notify: function(item, options) { - if (options && options.notify) { - options.notify.call(this, item, options); - } - }, - // delay callback on busy item - _delayBusy: function(item, callback) { - if ((this._private.delayBusy < 10) && this.isBusy(item)) { - this._private.delayBusy++; - window.setTimeout(this.proxy(function() { - this._delayBusy.call(this, item, callback); - this._private.delayBusy--; - }), 10); - return; - } - callback.apply(this); - }, - // return the data source for item - // defaults to `aciTree.options.ajax` if not set on the item/his parents - _dataSource: function(item) { - var dataSource = this._instance.options.dataSource; - if (dataSource) { - var data = this.itemData(item); - if (data && data.source && dataSource[data.source]) { - return dataSource[data.source]; - } - var parent; - do { - parent = this.parent(item); - data = this.itemData(parent); - if (data && data.source && dataSource[data.source]) { - return dataSource[data.source]; - } - } while (parent.length); - } - return this._instance.options.ajax; - }, - // process item loading with AJAX - // `item` can be NULL to load the ROOT - // loaded data need to be array of item objects - // each item can have children (defined as `itemData.branch` - array of item data objects) - ajaxLoad: function(item, options) { - if (item && this.isBusy(item)) { - // delay the load if busy - this._delayBusy(item, function() { - this.ajaxLoad(item, options); - }); - return; - } - options = this._options(options, function() { - this._loading(item); - this._trigger(item, 'loaded', options); - }, function() { - this._loading(item); - this._trigger(item, 'loadfail', options); - }, function() { - this._loading(item); - this._trigger(item, 'wasloaded', options); - }); - if (!item || this.isInode(item)) { - // add the task to the queue - this._instance.queue.push(function(complete) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeload', options)) { - this._fail(item, options); - complete(); - return; - } - this._loading(item, true); - if (this.wasLoad(item)) { - // was load already - this._notify(item, options); - complete(); - return; - } - // ensure we work on a copy of the dataSource object - var settings = $.extend({ - }, this._dataSource(item)); - // call the `aciTree.options.ajaxHook` - this._instance.options.ajaxHook.call(this, item, settings); - // loaded data need to be array of item objects - settings.success = this.proxy(function(itemList) { - if (itemList && (itemList instanceof Array) && itemList.length) { - // the AJAX returned some items - var process = function() { - if (this.wasLoad(item)) { - this._notify(item, options); - complete(); - } else { - // create a branch from `itemList` - this._createBranch(item, this._inner(options, { - success: function() { - this._success(item, options); - complete(); - }, - fail: function() { - this._fail(item, options); - complete(); - }, - itemData: itemList - })); - } - }; - if (!item || this.isInode(item)) { - process.apply(this); - } else { - // change the item to inode, then load - this.setInode(item, this._inner(options, { - success: process, - fail: options.fail - })); - } - } else { - // the AJAX response was not just right (or not a inode) - var process = function() { - this._fail(item, options); - complete(); - }; - if (!item || this.isLeaf(item)) { - process.apply(this); - } else { - // change the item to leaf - this.setLeaf(item, this._inner(options, { - success: process, - fail: process - })); - } - } - }); - settings.error = this.proxy(function() { - // AJAX failed - this._fail(item, options); - complete(); - }); - $.ajax(settings); - }, true); - } else { - this._fail(item, options); - } - }, - // process item loading - // `item` can be NULL to load the ROOT - // `options.itemData` need to be array of item objects - // each item can have children (defined as `itemData.branch` - array of item data objects) - loadFrom: function(item, options) { - if (item && this.isBusy(item)) { - // delay the load if busy - this._delayBusy(item, function() { - this.loadFrom(item, options); - }); - return; - } - options = this._options(options, function() { - this._loading(item); - this._trigger(item, 'loaded', options); - }, function() { - this._loading(item); - this._trigger(item, 'loadfail', options); - }, function() { - this._loading(item); - this._trigger(item, 'wasloaded', options); - }); - if (!item || this.isInode(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeload', options)) { - this._fail(item, options); - return; - } - this._loading(item, true); - if (this.wasLoad(item)) { - // was load already - this._notify(item, options); - return; - } - // data need to be array of item objects - if (options.itemData && (options.itemData instanceof Array) && options.itemData.length) { - // create the branch from `options.itemData` - var process = function() { - if (this.wasLoad(item)) { - this._notify(item, options); - } else { - this._createBranch(item, options); - } - }; - if (!item || this.isInode(item)) { - process.apply(this); - } else { - // change the item to inode, then create children - this.setInode(item, this._inner(options, { - success: process, - fail: options.fail - })); - } - } else { - // this is not a inode - if (!item || this.isLeaf(item)) { - this._fail(item, options); - } else { - // change the item to leaf - this.setLeaf(item, this._inner(options, { - success: options.fail, - fail: options.fail - })); - } - } - } else { - this._fail(item, options); - } - }, - // unload item - // `item` can be NULL to unload the entire tree - unload: function(item, options) { - options = this._options(options, function() { - this._loading(item); - this._trigger(item, 'unloaded', options); - }, function() { - this._loading(item); - this._trigger(item, 'unloadfail', options); - }, function() { - this._loading(item); - this._trigger(item, 'notloaded', options); - }); - if (!item || this.isInode(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeunload', options)) { - this._fail(item, options); - return; - } - this._loading(item, true); - if (!this.wasLoad(item)) { - // if was not loaded - this._notify(item, options); - return; - } - // first check each children - var cancel = false; - var children = this.children(item, true, true); - children.each(this.proxy(function(element) { - var item = $(element); - if (this.isInode(item)) { - if (this.isOpen(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeclose', options)) { - cancel = true; - return false; - } - } - if (this.wasLoad(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeunload', options)) { - cancel = true; - return false; - } - } - } - // a way to cancel the operation - if (!this._trigger(item, 'beforeremove', options)) { - cancel = true; - return false; - } - }, true)); - if (cancel) { - // it was canceled - this._fail(item, options); - return; - } - var process = function() { - children.each(this.proxy(function(element) { - // trigger the events before DOM changes - var item = $(element); - if (this.isInode(item)) { - if (this.isOpen(item)) { - this._trigger(item, 'closed', options); - } - if (this.wasLoad(item)) { - this._trigger(item, 'unloaded', options); - } - } - this._trigger(item, 'removed', options); - }, true)); - }; - // process the child remove - if (item) { - if (this.isOpen(item)) { - // first close the item, then remove children - this.close(item, this._inner(options, { - success: function() { - process.call(this); - this._removeContainer(item); - this._success(item, options); - }, - fail: options.fail - })); - } else { - process.call(this); - this._removeContainer(item); - this._success(item, options); - } - } else { - // unload the ROOT - this._animate(item, false, !this._instance.options.animateRoot || options.unanimated, function() { - process.call(this); - this._removeContainer(); - this._success(item, options); - }); - } - } else { - this._fail(item, options); - } - }, - // remove item - remove: function(item, options) { - if (this.isItem(item)) { - if (this.hasSiblings(item, true)) { - options = this._options(options, function() { - if (this.isOpenPath(item)) { - // if the parents are opened (visible) update the item states - domApi.removeClass(item[0], 'aciTreeVisible'); - this._setOddEven(item); - } - this._trigger(item, 'removed', options); - }, 'removefail', null, item); - // a way to cancel the operation - if (!this._trigger(item, 'beforeremove', options)) { - this._fail(item, options); - return; - } - if (this.wasLoad(item)) { - // unload the inode then remove - this.unload(item, this._inner(options, { - success: function() { - this._success(item, options); - this._removeItem(item); - }, - fail: options.fail - })); - } else { - // just remove the item - this._success(item, options); - this._removeItem(item); - } - } else { - var parent = this.parent(item); - if (parent.length) { - this.setLeaf(parent, options); - } else { - this.unload(null, options); - } - } - } else { - this._trigger(item, 'removefail', options) - this._fail(item, options); - } - }, - // open item children - _openChildren: function(item, options) { - if (options.expand) { - var queue = this._instance.queue; - // process the children inodes - this.inodes(this.children(item)).each(function() { - var item = $(this); - // queue node opening - queue.push(function(complete) { - this.open(item, this._inner(options)); - complete(); - }); - }); - queue.push(function(complete) { - this._success(item, options); - complete(); - }); - } else { - this._success(item, options); - } - }, - // process item open - _openItem: function(item, options) { - if (!options.unanimated && !this.isVisible(item)) { - options.unanimated = true; - } - if (options.unique) { - // close other opened nodes - this.closeOthers(item); - options.unique = false; - } - // open the node - this._coreDOM.toggle(item, true); - // (temporarily) update children states - this._setOddEvenChildren(item); - this._animate(item, true, options.unanimated, function() { - this._openChildren(item, options); - }); - }, - // open item and his children if requested - open: function(item, options) { - options = this._options(options, function() { - if (this.isOpenPath(item)) { - // if all parents are open, update the items after - this._updateVisible(item); - this._setOddEven(item); - } - this._trigger(item, 'opened', options); - }, 'openfail', 'wasopened', item); - if (this.isInode(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeopen', options)) { - this._fail(item, options); - return; - } - if (this.isOpen(item)) { - options.success = options.notify; - // propagate/open children (if required) - this._openChildren(item, options); - } else { - if (this.wasLoad(item)) { - this._openItem(item, options); - } else { - // try to load the node, then open - this.ajaxLoad(item, this._inner(options, { - success: function() { - this._openItem(item, options); - }, - fail: options.fail - })); - } - } - } else { - this._fail(item, options); - } - }, - // close item children - _closeChildren: function(item, options) { - if (this._instance.options.empty) { - // unload on close - options.unanimated = true; - this.unload(item, options); - } else if (options.collapse) { - var queue = this._instance.queue; - // process the children inodes - this.inodes(this.children(item)).each(function() { - var item = $(this); - // queue node close - queue.push(function(complete) { - this.close(item, this._inner(options, { - unanimated: true - })); - complete(); - }); - }); - queue.push(function(complete) { - this._success(item, options); - complete(); - }); - } else { - this._success(item, options); - } - }, - // process item close - _closeItem: function(item, options) { - if (!options.unanimated && !this.isVisible(item)) { - options.unanimated = true; - } - // close the item - this._coreDOM.toggle(item, false); - this._animate(item, false, options.unanimated, function() { - this._closeChildren(item, options); - }); - }, - // close item and his children if requested - close: function(item, options) { - options = this._options(options, function() { - if (this.isOpenPath(item)) { - // if all parents are open, update the items after - this._updateVisible(item); - this._setOddEven(item); - } - this._trigger(item, 'closed', options); - }, 'closefail', 'wasclosed', item); - if (this.isInode(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeclose', options)) { - this._fail(item, options); - return; - } - if (this.isOpen(item)) { - this._closeItem(item, options); - } else if (this.wasLoad(item)) { - options.success = options.notify; - // propagate/close/empty children (if required) - this._closeChildren(item, options); - } else { - this._notify(item, options); - } - } else { - this._fail(item, options); - } - }, - // update visible state - _updateVisible: function(item) { - if (this.isOpenPath(item)) { - if (!this.isHidden(item)) { - // if open parents and not hidden - domApi.addClass(item[0], 'aciTreeVisible'); - if (this.isOpen(item)) { - // process children - domApi.children(item[0], false, this.proxy(function(node) { - if (!domApi.hasClass(node, 'aciTreeVisible')) { - this._updateVisible($(node)); - } - })); - } else { - // children are not visible - domApi.children(item[0], true, function(node) { - return domApi.removeClass(node, 'aciTreeVisible') ? true : null; - }); - } - } - } else if (domApi.removeClass(item[0], 'aciTreeVisible')) { - domApi.children(item[0], true, function(node) { - return domApi.removeClass(node, 'aciTreeVisible') ? true : null; - }); - } - }, - // keep just one branch open - closeOthers: function(item, options) { - options = this._options(options); - if (this.isItem(item)) { - var queue = this._instance.queue; - // exclude the item and his parents - var exclude = item.add(this.path(item)).add(this.children(item, true)); - // close all other open nodes - this.inodes(this.children(null, true, true), true).not(exclude).each(function() { - var item = $(this); - // add node to close queue - queue.push(function(complete) { - this.close(item, this._inner(options)); - complete(); - }); - }); - queue.push(function(complete) { - this._success(item, options); - complete(); - }); - } else { - this._fail(item, options); - } - }, - // toggle item - toggle: function(item, options) { - options = this._options(options, 'toggled', 'togglefail', null, item); - if (this.isInode(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforetoggle', options)) { - this._fail(item, options); - return; - } - if (this.isOpen(item)) { - this.close(item, options); - } else { - this.open(item, options); - } - } else { - this._fail(item, options); - } - }, - // get item path starting from the top parent (ROOT) - // when `reverse` is TRUE returns the path in reverse order - path: function(item, reverse) { - if (item) { - var parent = item[0], list = []; - while (parent = domApi.parent(parent)) { - list.push(parent); - } - return reverse ? $(list) : $(list.reverse()); - } - return $([]); - }, - // test if item is in view - // when `center` is TRUE will test if is centered in view - isVisible: function(item, center) { - if (item && domApi.hasClass(item[0], 'aciTreeVisible')) { - // the item path need to be open - var rect = this._instance.jQuery[0].getBoundingClientRect(); - var size = item[0].firstChild; - var test = size.getBoundingClientRect(); - var height = size.offsetHeight; - var offset = center ? (rect.bottom - rect.top) / 2 : 0; - if ((test.bottom - height < rect.top + offset) || (test.top + height > rect.bottom - offset)) { - // is out of view - return false; - } - return true; - } - return false; - }, - // open path to item - openPath: function(item, options) { - options = this._options(options); - if (this.isItem(item)) { - var queue = this._instance.queue; - // process closed inodes - this.inodes(this.path(item), false).each(function() { - var item = $(this); - // add node to open queue - queue.push(function(complete) { - this.open(item, this._inner(options)); - complete(); - }); - }); - queue.push(function(complete) { - this._success(item, options); - complete(); - }); - } else { - this._fail(item, options); - } - }, - // test if path to item is open - isOpenPath: function(item) { - var parent = this.parent(item); - return parent[0] ? this.isOpen(parent) && domApi.hasClass(parent[0], 'aciTreeVisible') : true; - }, - // get animation speed vs. offset size - // `speed` is the raw speed - // `totalSize` is the available size - // `required` is the offset used for calculations - _speedFraction: function(speed, totalSize, required) { - if ((required < totalSize) && totalSize) { - var numeric = parseInt(speed); - if (isNaN(numeric)) { - // predefined string values - switch (speed) { - case 'slow': - numeric = 600; - break; - case 'medium': - numeric = 400; - break; - case 'fast': - numeric = 200; - break; - default: - return speed; - } - } - return numeric * required / totalSize; - } - return speed; - }, - // bring item in view - // `options.center` says if should be centered in view - setVisible: function(item, options) { - options = this._options(options, 'visible', 'visiblefail', 'wasvisible', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforevisible', options)) { - this._fail(item, options); - return; - } - if (this.isVisible(item)) { - // is visible already - this._notify(item, options); - return; - } - var process = function() { - // compute position with getBoundingClientRect - var rect = this._instance.jQuery[0].getBoundingClientRect(); - var size = item[0].firstChild; - var test = size.getBoundingClientRect(); - var height = size.offsetHeight; - var offset = options.center ? (rect.bottom - rect.top) / 2 : 0; - if (test.bottom - height < rect.top + offset) { - // item somewhere before the first visible - var diff = rect.top + offset - test.bottom + height; - if (!options.unanimated && this._instance.options.view) { - this._instance.jQuery.stop(true).animate({ - scrollTop: this._instance.jQuery.scrollTop() - diff - }, - { - duration: this._speedFraction(this._instance.options.view.duration, rect.bottom - rect.top, diff), - easing: this._instance.options.view.easing, - complete: this.proxy(function() { - this._success(item, options); - }) - }); - } else { - this._instance.jQuery.stop(true)[0].scrollTop = this._instance.jQuery.scrollTop() - diff; - this._success(item, options); - } - } else if (test.top + height > rect.bottom - offset) { - // item somewhere after the last visible - var diff = test.top - rect.bottom + offset + height; - if (!options.unanimated && this._instance.options.view) { - this._instance.jQuery.stop(true).animate({ - scrollTop: this._instance.jQuery.scrollTop() + diff - }, - { - duration: this._speedFraction(this._instance.options.view.duration, rect.bottom - rect.top, diff), - easing: this._instance.options.view.easing, - complete: this.proxy(function() { - this._success(item, options); - }) - }); - } else { - this._instance.jQuery.stop(true)[0].scrollTop = this._instance.jQuery.scrollTop() + diff; - this._success(item, options); - } - } else { - this._success(item, options); - } - }; - if (this.hasParent(item)) { - // first we need to open the path to item - this.openPath(item, this._inner(options, { - success: process, - fail: options.fail - })); - } else { - process.apply(this); - } - } else { - this._fail(item, options); - } - }, - // test if item has parent - hasParent: function(item) { - return this.parent(item).length > 0; - }, - // get item parent - parent: function(item) { - return item ? $(domApi.parent(item[0])) : $([]); - }, - // get item top (ROOT) parent - topParent: function(item) { - return this.path(item).eq(0); - }, - // create tree branch - // `options.itemData` need to be in the same format as for .append - _createBranch: function(item, options) { - var total = 0; - var count = function(itemList) { - var itemData; - for (var i = 0; i < itemList.length; i++) { - itemData = itemList[i]; - if (itemData.branch && (itemData.branch instanceof Array) && itemData.branch.length) { - count(itemData.branch); - } - } - total++; - }; - count(options.itemData); - var index = 0; - var complete = this.proxy(function() { - index++; - if (index >= total) { - this._success(item, options); - } - }); - var process = this.proxy(function(node, itemList) { - if (node) { - // set it as a inode - domApi.addRemoveClass(node[0], 'aciTreeInode', 'aciTreeInodeMaybe'); - } - // use .append to add new items - this.append(node, this._inner(options, { - success: function(item, options) { - var itemData; - for (var i = 0; i < options.itemData.length; i++) { - itemData = options.itemData[i]; - // children need to be array of item objects - if (itemData.branch && (itemData.branch instanceof Array) && itemData.branch.length) { - process(options.items.eq(i), itemData.branch); - } - if (itemData.open) { - // open the item is requuested - this.open(options.items.eq(i), this._inner(options, { - itemData: null, - items: null - })); - } - } - complete(); - }, - fail: options.fail, - itemData: itemList - })); - }); - process(item, options.itemData); - }, - // get first/last items - _getFirstLast: function(parent) { - if (!parent) { - parent = this._instance.jQuery; - } - return $(domApi.withAnyClass(domApi.children(parent[0]), ['aciTreeFirst', 'aciTreeLast'])); - }, - // update first/last items - _setFirstLast: function(parent, clear) { - if (clear) { - domApi.removeListClass(clear.toArray(), ['aciTreeFirst', 'aciTreeLast']); - } - var first = this.first(parent); - if (first[0]) { - domApi.addClass(first[0], 'aciTreeFirst'); - domApi.addClass(this.last(parent)[0], 'aciTreeLast'); - } - }, - // update odd/even state - _setOddEven: function(items) { - // consider only visible items - var visible; - if (this._instance.jQuery[0].getElementsByClassName) { - visible = this._instance.jQuery[0].getElementsByClassName('aciTreeVisible'); - visible = visible ? window.Array.prototype.slice.call(visible) : []; - } else { - visible = $(domApi.children(this._instance.jQuery[0], true, function(node) { - return this.hasClass(node, 'aciTreeVisible') ? true : null; - })); - } - var odd = true; - if (visible.length) { - var index = 0; - if (items) { - // search the item to start with (by index) - items.each(function() { - if (visible.indexOf) { - var found = visible.indexOf(this); - if (found != -1) { - index = window.Math.min(found, index); - } - } else { - for (var i = 0; i < visible.length; i++) { - if (visible[i] === this) { - index = window.Math.min(i, index); - break; - } - } - } - }); - index = window.Math.max(index - 1, 0); - } - if (index > 0) { - // determine with what to start with (odd/even) - var first = visible[index]; - if (domApi.hasClass(first, 'aciTreOdd')) { - odd = false; - } - // process only after index - visible = visible.slice(index + 1); - } - } - this._coreDOM.oddEven($(visible), odd); - }, - // update odd/even state for direct children - _setOddEvenChildren: function(item) { - var odd = domApi.hasClass(item[0], 'aciTreeOdd'); - var children = this.children(item); - this._coreDOM.oddEven(children, !odd); - }, - // process item before inserting into the DOM - _itemHook: function(parent, item, itemData, level) { - if (this._instance.options.itemHook) { - this._instance.options.itemHook.apply(this, arguments); - } - }, - // create item by `itemData` - // `level` is the #0 based item level - _createItem: function(itemData, level) { - if (this._private.itemClone[level]) { - var li = this._private.itemClone[level].cloneNode(true); - var line = li.firstChild; - var icon = line; - for (var i = 0; i < level; i++) { - icon = icon.firstChild; - } - icon = icon.firstChild.lastChild.firstChild; - var text = icon.nextSibling; - } else { - var li = window.document.createElement('LI'); - li.setAttribute('role', 'presentation'); - var line = window.document.createElement('DIV'); - li.appendChild(line); - line.setAttribute('tabindex', -1); - line.setAttribute('role', 'treeitem'); - line.setAttribute('aria-selected', false); - line.className = 'aciTreeLine'; - var last = line, branch; - for (var i = 0; i < level; i++) { - branch = window.document.createElement('DIV'); - last.appendChild(branch); - branch.className = 'aciTreeBranch aciTreeLevel' + i; - last = branch; - } - var entry = window.document.createElement('DIV'); - last.appendChild(entry); - entry.className = 'aciTreeEntry'; - var button = window.document.createElement('SPAN'); - entry.appendChild(button); - button.className = 'aciTreeButton'; - var push = window.document.createElement('SPAN'); - button.appendChild(push); - push.className = 'aciTreePush'; - push.appendChild(window.document.createElement('SPAN')); - var item = window.document.createElement('SPAN'); - entry.appendChild(item); - item.className = 'aciTreeItem'; - var icon = window.document.createElement('SPAN'); - item.appendChild(icon); - var text = window.document.createElement('SPAN'); - item.appendChild(text); - text.className = 'aciTreeText'; - this._private.itemClone[level] = li.cloneNode(true); - } - li.className = 'aciTreeLi' + (itemData.inode || (itemData.inode === null) ? (itemData.inode || (itemData.branch && itemData.branch.length) ? ' aciTreeInode' : ' aciTreeInodeMaybe') : ' aciTreeLeaf') + ' aciTreeLevel' + level + (itemData.disabled ? ' aciTreeDisabled' : ''); - line.setAttribute('aria-level', level + 1); - if (itemData.inode || (itemData.inode === null)) { - line.setAttribute('aria-expanded', false); - } - if (itemData.icon) { - if (itemData.icon instanceof Array) { - icon.className = 'aciTreeIcon ' + itemData.icon[0]; - icon.style.backgroundPosition = itemData.icon[1] + 'px ' + itemData.icon[2] + 'px'; - } else { - icon.className = 'aciTreeIcon ' + itemData.icon; - } - } else { - icon.parentNode.removeChild(icon); - } - text.innerHTML = itemData.label; - var $li = $(li); - $li.data('itemData' + this._instance.nameSpace, $.extend({ - }, itemData, { - branch: itemData.branch && itemData.branch.length - })); - return $li; - }, - // remove item - _removeItem: function(item) { - var parent = this.parent(item); - item.remove(); - // update sibling state - this._setFirstLast(parent.length ? parent : null); - }, - // create & add one or more items - // `ul`, `before` and `after` are set depending on the caller - // `itemData` need to be array of objects or just an object (one item) - // `level` is the #0 based level - // `callback` function (items) is called at the end of the operation - _createItems: function(ul, before, after, itemData, level, callback) { - var items = [], fragment = window.document.createDocumentFragment(); - var task = new this._task(this._instance.queue, function(complete) { - items = $(items); - if (items.length) { - // add the new items - if (ul) { - ul[0].appendChild(fragment); - } else if (before) { - before[0].parentNode.insertBefore(fragment, before[0]); - } else if (after) { - after[0].parentNode.insertBefore(fragment, after[0].nextSibling); - } - } - callback.call(this, items); - complete(); - }); - if (itemData) { - this._loader(true); - var parent; - if (ul) { - parent = this.itemFrom(ul); - } else if (before) { - parent = this.parent(before); - } else if (after) { - parent = this.parent(after); - } - if (itemData instanceof Array) { - // this is a list of items - for (var i = 0; i < itemData.length; i++) { - (function(itemData) { - task.push(function(complete) { - var item = this._createItem(itemData, level); - this._itemHook(parent, item, itemData, level); - fragment.appendChild(item[0]); - items.push(item[0]); - complete(); - }); - })(itemData[i]); - } - } else { - task.push(function(complete) { - // only one item - var item = this._createItem(itemData, level); - this._itemHook(parent, item, itemData, level); - fragment.appendChild(item[0]); - items.push(item[0]); - complete(); - }); - } - } - // run at least once - task.push(function(complete) { - complete(); - }); - }, - // create children container - _createContainer: function(item) { - if (!item) { - item = this._instance.jQuery; - } - // ensure we have a UL in place - var ul = domApi.container(item[0]); - if (!ul) { - var ul = window.document.createElement('UL'); - ul.setAttribute('role', 'group'); - ul.className = 'aciTreeUl'; - ul.style.display = 'none'; - item[0].appendChild(ul); - } - return $(ul); - }, - // remove children container - _removeContainer: function(item) { - if (!item) { - item = this._instance.jQuery; - } - var ul = domApi.container(item[0]); - ul.parentNode.removeChild(ul); - }, - // append one or more items to item - // `options.itemData` can be a item object or array of item objects - // `options.items` will keep a list of added items - append: function(item, options) { - options = this._options(options, 'appended', 'appendfail', null, item); - if (item) { - if (this.isInode(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeappend', options)) { - this._fail(item, options); - return; - } - var container = this._createContainer(item); - var last = this.last(item); - this._createItems(container, null, null, options.itemData, this.level(item) + 1, function(list) { - if (list.length) { - // some items created, update states - domApi.addRemoveClass(item[0], 'aciTreeInode', 'aciTreeInodeMaybe'); - this._setFirstLast(item, last); - if (this.isHidden(item)) { - domApi.addListClass(list.toArray(), 'aciTreeHidden'); - } else if (this.isOpenPath(item) && this.isOpen(item)) { - domApi.addListClass(list.toArray(), 'aciTreeVisible'); - this._setOddEven(list.first()); - } - // trigger `added` for each item - list.each(this.proxy(function(element) { - this._trigger($(element), 'added', options); - }, true)); - } else if (!this.hasChildren(item, true)) { - container.remove(); - } - options.items = list; - this._success(item, options); - }); - } else { - this._fail(item, options); - } - } else { - // a way to cancel the operation - if (!this._trigger(item, 'beforeappend', options)) { - this._fail(item, options); - return; - } - var container = this._createContainer(); - var last = this.last(); - this._createItems(container, null, null, options.itemData, 0, function(list) { - if (list.length) { - // some items created, update states - this._setFirstLast(null, last); - domApi.addListClass(list.toArray(), 'aciTreeVisible'); - this._setOddEven(); - // trigger `added` for each item - list.each(this.proxy(function(element) { - this._trigger($(element), 'added', options); - }, true)); - this._animate(null, true, !this._instance.options.animateRoot || options.unanimated); - } else if (!this.hasChildren(null, true)) { - // remove the children container - container.remove(); - } - options.items = list; - this._success(item, options); - }); - } - }, - // insert one or more items before item - // `options.itemData` can be a item object or array of item objects - // `options.items` will keep a list of added items - before: function(item, options) { - options = this._options(options, 'before', 'beforefail', null, item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforebefore', options)) { - this._fail(item, options); - return; - } - var prev = this.prev(item); - this._createItems(null, item, null, options.itemData, this.level(item), function(list) { - if (list.length) { - // some items created, update states - if (!prev.length) { - domApi.removeClass(item[0], 'aciTreeFirst'); - domApi.addClass(list.first()[0], 'aciTreeFirst'); - } - var parent = this.parent(item); - if (parent.length && this.isHidden(parent)) { - domApi.addListClass(list.toArray(), 'aciTreeHidden'); - } else if (this.isOpenPath(item)) { - domApi.addListClass(list.toArray(), 'aciTreeVisible'); - this._setOddEven(list.first()); - } - // trigger `added` for each item - list.each(this.proxy(function(element) { - this._trigger($(element), 'added', options); - }, true)); - } - options.items = list; - this._success(item, options); - }); - } else { - this._fail(item, options); - } - }, - // insert one or more items after item - // `options.itemData` can be a item object or array of item objects - // `options.items` will keep a list of added items - after: function(item, options) { - options = this._options(options, 'after', 'afterfail', null, item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeafter', options)) { - this._fail(item, options); - return; - } - var next = this.next(item); - this._createItems(null, null, item, options.itemData, this.level(item), function(list) { - if (list.length) { - // some items created, update states - if (!next.length) { - domApi.removeClass(item[0], 'aciTreeLast'); - domApi.addClass(list.last()[0], 'aciTreeLast'); - } - var parent = this.parent(item); - if (parent.length && this.isHidden(parent)) { - domApi.addListClass(list.toArray(), 'aciTreeHidden'); - } else if (this.isOpenPath(item)) { - domApi.addListClass(list.toArray(), 'aciTreeVisible'); - this._setOddEven(list.first()); - } - // trigger `added` for each item - list.each(this.proxy(function(element) { - this._trigger($(element), 'added', options); - }, true)); - } - options.items = list; - this._success(item, options); - }); - } else { - this._fail(item, options); - } - }, - // get item having the element - itemFrom: function(element) { - if (element) { - var item = $(element); - if (item[0] === this._instance.jQuery[0]) { - return $([]); - } else { - return $(domApi.parentFrom(item[0])); - } - } - return $([]); - }, - // get item children - // if `branch` is TRUE then all children are returned - // if `hidden` is TRUE then the hidden items will be considered too - children: function(item, branch, hidden) { - return $(domApi.children(item && item[0] ? item[0] : this._instance.jQuery[0], branch, hidden ? null : function(node) { - return this.hasClass(node, 'aciTreeHidden') ? null : true; - })); - }, - // filter only the visible items (items with all parents opened) - // if `view` is TRUE then only the items in view are returned - visible: function(items, view) { - var list = domApi.withClass(items.toArray(), 'aciTreeVisible'); - if (view) { - var filter = []; - for (var i = 0; i < list.length; i++) { - if (this.isVisible($(list[i]))) { - filter.push(list[i]); - } - } - return $(filter); - } - return $(list); - }, - // filter only inner nodes from items - // if `state` is set then filter only open/closed ones - inodes: function(items, state) { - if (state !== undefined) { - if (state) { - return $(domApi.withClass(items.toArray(), 'aciTreeOpen')); - } else { - return $(domApi.withAnyClass(items.toArray(), ['aciTreeInode', 'aciTreeInodeMaybe'], 'aciTreeOpen')); - } - } - return $(domApi.withAnyClass(items.toArray(), ['aciTreeInode', 'aciTreeInodeMaybe'])); - }, - // filter only leaf nodes from items - leaves: function(items) { - return $(domApi.withClass(items.toArray(), 'aciTreeLeaf')); - }, - // test if is a inner node - isInode: function(item) { - return item && domApi.hasAnyClass(item[0], ['aciTreeInode', 'aciTreeInodeMaybe']); - }, - // test if is a leaf node - isLeaf: function(item) { - return item && domApi.hasClass(item[0], 'aciTreeLeaf'); - }, - // test if item was loaded - wasLoad: function(item) { - if (item) { - return domApi.container(item[0]) !== null; - } - return domApi.container(this._instance.jQuery[0]) !== null; - }, - // set item as inner node - setInode: function(item, options) { - options = this._options(options, 'inodeset', 'inodefail', 'wasinode', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeinode', options)) { - this._fail(item, options); - return; - } - if (this.isLeaf(item)) { - this._coreDOM.inode(item, true); - this._success(item, options); - } else { - this._notify(item, options); - } - } else { - this._fail(item, options); - } - }, - // set item as leaf node - setLeaf: function(item, options) { - options = this._options(options, 'leafset', 'leaffail', 'wasleaf', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeleaf', options)) { - this._fail(item, options); - return; - } - if (this.isInode(item)) { - var process = function() { - this._coreDOM.leaf(item); - this._success(item, options); - }; - if (this.wasLoad(item)) { - // first unload the node - this.unload(item, this._inner(options, { - success: process, - fail: options.fail - })); - } else { - process.apply(this); - } - } else { - this._notify(item, options); - } - } else { - this._fail(item, options); - } - }, - // add/update item icon - // `options.icon` can be the CSS class name or array['CSS class name', background-position-x, background-position-y] - // `options.oldIcon` will keep the old icon - addIcon: function(item, options) { - options = this._options(options, 'iconadded', 'addiconfail', 'wasicon', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeaddicon', options)) { - this._fail(item, options); - return; - } - var data = this.itemData(item); - // keep the old one - options.oldIcon = data.icon; - var parent = domApi.childrenByClass(item[0].firstChild, 'aciTreeItem'); - var found = domApi.childrenByClass(parent, 'aciTreeIcon'); - if (found && data.icon && (options.icon.toString() == data.icon.toString())) { - this._notify(item, options); - } else { - if (!found) { - found = window.document.createElement('DIV'); - parent.insertBefore(found, parent.firstChild); - } - if (options.icon instanceof Array) { - // icon with background-position - found.className = 'aciTreeIcon ' + options.icon[0]; - found.style.backgroundPosition = options.icon[1] + 'px ' + options.icon[2] + 'px'; - } else { - // only the CSS class name - found.className = 'aciTreeIcon ' + options.icon; - } - // remember this one - data.icon = options.icon; - this._success(item, options); - } - } else { - this._fail(item, options); - } - }, - // remove item icon - // options.oldIcon will keep the old icon - removeIcon: function(item, options) { - options = this._options(options, 'iconremoved', 'removeiconfail', 'noticon', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeremoveicon', options)) { - this._fail(item, options); - return; - } - var data = this.itemData(item); - // keep the old one - options.oldIcon = data.icon; - var parent = domApi.childrenByClass(item[0].firstChild, 'aciTreeItem'); - var found = domApi.childrenByClass(parent, 'aciTreeIcon'); - if (found) { - parent.removeChild(found); - // remember was removed - data.icon = null; - this._success(item, options); - } else { - this._notify(item, options); - } - } else { - this._fail(item, options); - } - }, - // test if item has icon - hasIcon: function(item) { - return !!this.getIcon(item); - }, - // get item icon - getIcon: function(item) { - var data = this.itemData(item); - return data ? data.icon : null; - }, - // set item label - // `options.label` is the new label - // `options.oldLabel` will keep the old label - setLabel: function(item, options) { - options = this._options(options, 'labelset', 'labelfail', 'waslabel', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforelabel', options)) { - this._fail(item, options); - return; - } - var data = this.itemData(item); - // keep the old one - options.oldLabel = data.label; - if (options.label == options.oldLabel) { - this._notify(item, options); - } else { - // set the label - domApi.childrenByClass(item[0].firstChild, 'aciTreeText').innerHTML = options.label; - // remember this one - data.label = options.label; - this._success(item, options); - } - } else { - this._fail(item, options); - } - }, - // disable item - disable: function(item, options) { - options = this._options(options, 'disabled', 'disablefail', 'wasdisabled', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforedisable', options)) { - this._fail(item, options); - return; - } - if (this.isDisabled(item)) { - this._notify(item, options); - } else { - domApi.addClass(item[0], 'aciTreeDisabled'); - this._success(item, options); - } - } else { - this._fail(item, options); - } - }, - // test if item is disabled - isDisabled: function(item) { - return item && domApi.hasClass(item[0], 'aciTreeDisabled'); - }, - // test if any of parents are disabled - isDisabledPath: function(item) { - return domApi.withClass(this.path(item).toArray(), 'aciTreeDisabled').length > 0; - }, - // filter only the disabled items - disabled: function(items) { - return $(domApi.withClass(items.toArray(), 'aciTreeDisabled')); - }, - // enable item - enable: function(item, options) { - options = this._options(options, 'enabled', 'enablefail', 'wasenabled', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeenable', options)) { - this._fail(item, options); - return; - } - if (this.isDisabled(item)) { - domApi.removeClass(item[0], 'aciTreeDisabled'); - this._success(item, options); - } else { - this._notify(item, options); - } - } else { - this._fail(item, options); - } - }, - // test if item is enabled - isEnabled: function(item) { - return item && !domApi.hasClass(item[0], 'aciTreeDisabled'); - }, - // test if all parents are enabled - isEnabledPath: function(item) { - return domApi.withClass(this.path(item).toArray(), 'aciTreeDisabled').length == 0; - }, - // filter only the enabled items - enabled: function(items) { - return $(domApi.withClass(items.toArray(), null, 'aciTreeDisabled')); - }, - // set item as hidden - hide: function(item, options) { - options = this._options(options, 'hidden', 'hidefail', 'washidden', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforehide', options)) { - this._fail(item, options); - return; - } - if (this.isHidden(item)) { - this._notify(item, options); - } else { - domApi.addRemoveClass(item[0], 'aciTreeHidden', 'aciTreeVisible'); - // process children - domApi.addRemoveClass(this.children(item, true).toArray(), 'aciTreeHidden', 'aciTreeVisible'); - // update item states - var parent = this.parent(item); - this._setFirstLast(parent.length ? parent : null, item); - this._setOddEven(item); - this._success(item, options); - } - } else { - this._fail(item, options); - } - }, - // test if item is hidden - isHidden: function(item) { - return item && domApi.hasClass(item[0], 'aciTreeHidden'); - }, - // test if any of parents are hidden - isHiddenPath: function(item) { - var parent = this.parent(item); - return parent[0] && domApi.hasClass(parent[0], 'aciTreeHidden'); - }, - // update hidden state - _updateHidden: function(item) { - if (this.isHiddenPath(item)) { - if (!this.isHidden(item)) { - domApi.addClass(item[0], 'aciTreeHidden'); - this._updateVisible(item); - } - } else { - this._updateVisible(item); - } - }, - // filter only the hidden items - hidden: function(items) { - return $(domApi.withClass(items.toArray(), 'aciTreeHidden')); - }, - // show hidden item - _showHidden: function(item) { - var parent = null; - this.path(item).add(item).each(this.proxy(function(element) { - var item = $(element); - if (this.isHidden(item)) { - domApi.removeClass(item[0], 'aciTreeHidden'); - if (this.isOpenPath(item) && (!parent || this.isOpen(parent))) { - domApi.addClass(item[0], 'aciTreeVisible'); - } - // update item states - this._setFirstLast(parent, this._getFirstLast(parent)); - } - parent = item; - }, true)); - }, - // show hidden item - show: function(item, options) { - options = this._options(options, 'shown', 'showfail', 'wasshown', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeshow', options)) { - this._fail(item, options); - return; - } - if (this.isHidden(item)) { - this._showHidden(item); - var parent = this.topParent(item); - // update item states - this._setOddEven(parent.length ? parent : item); - this._success(item, options); - } else { - this._notify(item, options); - } - } else { - this._fail(item, options); - } - }, - // test if item is open - isOpen: function(item) { - return item && domApi.hasClass(item[0], 'aciTreeOpen'); - }, - // test if item is closed - isClosed: function(item) { - return item && !domApi.hasClass(item[0], 'aciTreeOpen'); - }, - // test if item has children - // if `hidden` is TRUE then the hidden items will be considered too - hasChildren: function(item, hidden) { - return this.children(item, false, hidden).length > 0; - }, - // test if item has siblings - // if `hidden` is TRUE then the hidden items will be considered too - hasSiblings: function(item, hidden) { - return this.siblings(item, hidden).length > 0; - }, - // test if item has another before - // if `hidden` is TRUE then the hidden items will be considered too - hasPrev: function(item, hidden) { - return this.prev(item, hidden).length > 0; - }, - // test if item has another after - // if `hidden` is TRUE then the hidden items will be considered too - hasNext: function(item, hidden) { - return this.next(item, hidden).length > 0; - }, - // get item siblings - // if `hidden` is TRUE then the hidden items will be considered too - siblings: function(item, hidden) { - return item ? $(domApi.children(item[0].parentNode.parentNode, false, function(node) { - return (node != item[0]) && (hidden || !this.hasClass(node, 'aciTreeHidden')); - })) : $([]); - }, - // get previous item - // if `hidden` is TRUE then the hidden items will be considered too - prev: function(item, hidden) { - return item ? $(domApi.prev(item[0], hidden ? null : function(node) { - return !this.hasClass(node, 'aciTreeHidden'); - })) : $([]); - }, - // get next item - // if `hidden` is TRUE then the hidden items will be considered too - next: function(item, hidden) { - return item ? $(domApi.next(item[0], hidden ? null : function(node) { - return !this.hasClass(node, 'aciTreeHidden'); - })) : $([]); - }, - // get item level - starting from 0 - // return -1 for invalid items - level: function(item) { - var level = -1; - if (item) { - var node = item[0]; - while (domApi.hasClass(node, 'aciTreeLi')) { - node = node.parentNode.parentNode; - level++; - } - } - return level; - }, - // get item ID - getId: function(item) { - var data = this.itemData(item); - return data ? data.id : null; - }, - // get item data - itemData: function(item) { - return item ? item.data('itemData' + this._instance.nameSpace) : null; - }, - // set item ID - // `options.id` is the new item ID - // `options.oldId` will keep the old ID - setId: function(item, options) { - options = this._options(options, 'idset', 'idfail', 'wasid', item); - if (this.isItem(item)) { - // a way to cancel the operation - if (!this._trigger(item, 'beforeid', options)) { - this._fail(item, options); - return; - } - var data = this.itemData(item); - // keep the old one - options.oldId = data.id; - if (options.id == options.oldId) { - this._notify(item, options); - } else { - // remember this one - data.id = options.id; - this._success(item, options); - } - } else { - this._fail(item, options); - } - }, - // get item index - starting from #0 - getIndex: function(item) { - if (item && item[0]) { - if (window.Array.prototype.indexOf) { - return window.Array.prototype.indexOf.call(item[0].parentNode.childNodes, item[0]); - } else { - var children = item[0].parentNode.childNodes; - for (var i = 0; i < children.length; i++) { - if (children[i] == item[0]) { - return i; - } - } - } - } - return null; - }, - // set item index - #0 based - // `options.index` is the new index - // `options.oldIndex` will keep the old index - setIndex: function(item, options) { - options = this._options(options, 'indexset', 'indexfail', 'wasindex', item); - if (this.isItem(item)) { - var oldIndex = this.getIndex(item); - var siblings = this.siblings(item); - if ((options.index != oldIndex) && !siblings.length) { - this._fail(item, options); - return; - } - // a way to cancel the operation - if (!this._trigger(item, 'beforeindex', options)) { - this._fail(item, options); - return; - } - // keep the old one - options.oldIndex = oldIndex; - if (options.index == oldIndex) { - this._notify(item, options); - } else { - // set the new index - if (options.index < 1) { - siblings.first().before(item); - } else if (options.index >= siblings.length) { - siblings.last().after(item); - } else { - siblings.eq(options.index).before(item); - } - var parent = this.parent(item); - // update item states - this._setFirstLast(parent.length ? parent : null, item.add([siblings[0], siblings.get(-1)])); - this._setOddEven(parent); - this._success(item, options); - } - } else { - this._fail(item, options); - } - }, - // get item label - getLabel: function(item) { - var data = this.itemData(item); - return data ? data.label : null; - }, - // test if is valid item - isItem: function(item) { - return item && domApi.hasClass(item[0], 'aciTreeLi'); - }, - // item animation - // `state` if TRUE then show, FALSE then hide - // `unanimated` if TRUE then don't use animations - // `callback` function () to call at the end - _animate: function(item, state, unanimated, callback) { - if (!item) { - item = this._instance.jQuery; - } - if (!unanimated) { - // use the defined animation props - var setting = state ? this._instance.options.show : this._instance.options.hide; - if (setting) { - var ul = domApi.container(item[0]); - if (ul) { - // animate children container - $(ul).stop(true, true).animate(setting.props, { - duration: setting.duration, - easing: setting.easing, - complete: callback ? this.proxy(callback) : null - }); - } else if (callback) { - callback.apply(this); - } - return; - } - } - // use no animation - $(domApi.container(item[0])).stop(true, true).toggle(state); - if (callback) { - callback.apply(this); - } - }, - // get first children of item - // if `hidden` is TRUE then the hidden items will be considered too - first: function(item, hidden) { - if (!item) { - item = this._instance.jQuery; - } - return $(domApi.firstChild(item[0], hidden ? null : function(node) { - return !this.hasClass(node, 'aciTreeHidden'); - })); - }, - // test if item is the first one for his parent - // if `hidden` is TRUE then the hidden items will be considered too - isFirst: function(item, hidden) { - if (item) { - var parent = domApi.parent(item[0]); - return this.first(parent ? $(parent) : null, hidden)[0] == item[0]; - } - return false; - }, - // get last children of item - // if `hidden` is TRUE then the hidden items will be considered too - last: function(item, hidden) { - if (!item) { - item = this._instance.jQuery; - } - return $(domApi.lastChild(item[0], hidden ? null : function(node) { - return !this.hasClass(node, 'aciTreeHidden'); - })); - }, - // test if item is the last one for his parent - // if `hidden` is TRUE then the hidden items will be considered too - isLast: function(item, hidden) { - if (item) { - var parent = domApi.parent(item[0]); - return this.last(parent ? $(parent) : null, hidden)[0] == item[0]; - } - return false; - }, - // test if item is busy/loading - isBusy: function(item) { - if (item) { - return domApi.hasClass(item[0], 'aciTreeLoad'); - } else { - return this._instance.queue.busy(); - } - }, - // set loading state - _loading: function(item, state) { - if (item) { - domApi.toggleClass(item[0], 'aciTreeLoad', state); - if (state) { - item[0].firstChild.setAttribute('aria-busy', true); - } else { - item[0].firstChild.removeAttribute('aria-busy'); - } - } else if (state) { - this._loader(state); - } - }, - // show loader image - _loader: function(show) { - if (show || this.isBusy()) { - if (!this._private.loaderInterval) { - this._private.loaderInterval = window.setInterval(this.proxy(function() { - this._loader(); - }), this._instance.options.loaderDelay); - } - domApi.addClass(this._instance.jQuery[0], 'aciTreeLoad'); - window.clearTimeout(this._private.loaderHide); - this._private.loaderHide = window.setTimeout(this.proxy(function() { - domApi.removeClass(this._instance.jQuery[0], 'aciTreeLoad'); - }), this._instance.options.loaderDelay * 2); - } - }, - // test if parent has children - isChildren: function(parent, children) { - if (!parent) { - parent = this._instance.jQuery; - } - return children && (parent.has(children).length > 0); - }, - // test if parent has immediate children - isImmediateChildren: function(parent, children) { - if (!parent) { - parent = this._instance.jQuery; - } - return children && parent.children('.aciTreeUl').children('.aciTreeLi').is(children); - }, - // test if items share the same parent - sameParent: function(item1, item2) { - if (item1 && item2) { - var parent1 = this.parent(item1); - var parent2 = this.parent(item2); - return (!parent1.length && !parent2.length) || (parent1[0] == parent2[0]); - } - return false; - }, - // test if items share the same top parent - sameTopParent: function(item1, item2) { - if (item1 && item2) { - var parent1 = this.topParent(item1); - var parent2 = this.topParent(item2); - return (!parent1.length && !parent2.length) || (parent1[0] == parent2[0]); - } - return false; - }, - // return the updated item data - // `callback` function (item) called for each item - _serialize: function(item, callback) { - var data = this.itemData(item); - if (this.isInode(item)) { - data.inode = true; - if (this.wasLoad(item)) { - if (data.hasOwnProperty('open')) { - data.open = this.isOpen(item); - } else if (this.isOpen(item)) { - data.open = true; - } - data.branch = []; - this.children(item, false, true).each(this.proxy(function(element) { - var entry = this._serialize($(element), callback); - if (callback) { - entry = callback.call(this, $(element), { - }, entry); - } else { - entry = this._instance.options.serialize.call(this, $(element), { - }, entry); - } - if (entry) { - data.branch.push(entry); - } - }, true)); - if (!data.branch.length) { - data.branch = null; - } - } else { - if (data.hasOwnProperty('open')) { - data.open = false; - } - if (data.hasOwnProperty('branch')) { - data.branch = null; - } - } - } else { - if (data.hasOwnProperty('inode')) { - data.inode = false; - } - if (data.hasOwnProperty('open')) { - data.open = null; - } - if (data.hasOwnProperty('branch')) { - data.branch = null; - } - } - if (data.hasOwnProperty('disabled')) { - data.disabled = this.isDisabled(item); - } else if (this.isDisabled(item)) { - data.disabled = true; - } - return data; - }, - // return serialized data - // `callback` function (item, what, value) - see `aciTree.options.serialize` - serialize: function(item, what, callback) { - // override this to provide serialized data - if (typeof what == 'object') { - if (item) { - var data = this._serialize(item, callback); - if (callback) { - data = callback.call(this, item, { - }, data); - } else { - data = this._instance.options.serialize.call(this, item, { - }, data); - } - return data; - } else { - var list = []; - this.children(null, false, true).each(this.proxy(function(element) { - var data = this._serialize($(element), callback); - if (callback) { - data = callback.call(this, $(element), { - }, data); - } else { - data = this._instance.options.serialize.call(this, $(element), { - }, data); - } - if (data) { - list.push(data); - } - }, true)); - return list; - } - } - return ''; - }, - // destroy the control - destroy: function(options) { - options = this._options(options); - // check if was init - if (!this.wasInit()) { - this._trigger(null, 'notinit', options); - this._fail(null, options); - return; - } - // check if is locked - if (this.isLocked()) { - this._trigger(null, 'locked', options); - this._fail(null, options); - return; - } - // a way to cancel the operation - if (!this._trigger(null, 'beforedestroy', options)) { - this._trigger(null, 'destroyfail', options); - this._fail(null, options); - return; - } - this._private.locked = true; - this._instance.jQuery.addClass('aciTreeLoad').attr('aria-busy', true); - this._instance.queue.destroy(); - this._destroyHook(false); - // unload the entire treeview - this.unload(null, this._inner(options, { - success: this.proxy(function() { - window.clearTimeout(this._private.loaderHide); - window.clearInterval(this._private.loaderInterval); - this._private.itemClone = { - }; - this._destroyHook(true); - this._instance.jQuery.unbind(this._instance.nameSpace).off(this._instance.nameSpace, '.aciTreeButton').off(this._instance.nameSpace, '.aciTreeLine'); - this._instance.jQuery.removeClass('aciTree' + this._instance.index + ' aciTreeLoad').removeAttr('role aria-busy'); - this._private.locked = false; - // call the parent - this._super(); - this._trigger(null, 'destroyed', options); - this._success(null, options); - }), - fail: function() { - this._instance.jQuery.removeClass('aciTreeLoad'); - this._private.locked = false; - this._trigger(null, 'destroyfail', options); - this._fail(null, options); - } - })); - }, - _destroyHook: function(unloaded) { - // override this to do extra destroy before/after unload - } - - }; - - // extend the base aciPluginUi class and store into aciPluginClass.plugins - aciPluginClass.plugins.aciTree = aciPluginClass.aciPluginUi.extend(aciTree_core, 'aciTreeCore'); - - // publish the plugin & the default options - aciPluginClass.publish('aciTree', options); - - // for internal access - var domApi = aciPluginClass.plugins.aciTree_dom; - -})(jQuery, this); + +/* + * aciTree jQuery Plugin v4.5.0-rc.7 + * http://acoderinsights.ro + * + * Copyright (c) 2014 Dragos Ursu + * Dual licensed under the MIT or GPL Version 2 licenses. + * + * Require jQuery Library >= v1.9.0 http://jquery.com + * + aciPlugin >= v1.5.1 https://github.com/dragosu/jquery-aciPlugin + */ + +/* + * The aciTree core. + * + * A few words about how item data looks like: + * + * for a leaf node (a node that does not have any children): + * + * { + * id: 'some_file_ID', // should be unique item ID + * label: 'This is a File Item', // the item label (text value) + * inode: false, // FALSE means is a leaf node (can be omitted) + * icon: 'fileIcon', // CSS class name for the icon (if any), can also be an Array ['CSS class name', background-position-x, background-position-y] + * disabled: false, // TRUE means the item is disabled (can be omitted) + * random_prop: 'random 1' // sample user defined property (you can have any number defined) + * } + * + * for a inner node (a node that have at least a children under it): + * + * { + * id: 'some_folder_ID', // should be unique item ID + * label: 'This is a Folder Item', // the item label (text value) + * inode: true, // can also be NULL to find at runtime if its an inode (on load will be transformed in a leaf node if there aren't any children) + * open: false, // if TRUE then the node will be opened when the tree is loaded (can be omitted) + * icon: 'folderIcon', // CSS class name for the icon (if any), can also be an Array ['CSS class name', background-position-x, background-position-y] + * disabled: false, // TRUE means the item is disabled (can be omitted) + * source: 'myDataSource', // the data source name (if any) to read the children from, by default `aciTree.options.ajax` is used + * branch: [ // a list of children + * { ... item data ... }, + * { ... item data ... }, + * ... + * ], + * random_prop: 'random 2' // sample user defined property (you can have any number defined) + * } + * + * The `branch` array can be empty, in this case the children will be loaded when the node will be opened for the first time. + * + * Please note that the item data should be valid (in the expected format). No checking is done and errors can appear on invalid data. + * + * One note about a item: a item is always the LI element with the class 'aciTreeLi'. + * The children of a node are all added under a UL element with the class 'aciTreeUl'. + * + * Almost all API functions expect only one item. If you need to process more at once then you'll need to loop between all of them yourself. + * + * The `options` parameter for all API methods (when there is one) is a object with the properties (not all are required or used): + * + * { + * uid: string -> operation UID (defaults to `ui`) + * success: function (item, options) -> callback to be called on success (you can access plugin API with `this` keyword inside the callback) + * fail: function (item, options) -> callback to be called on fail (you can access plugin API with `this` keyword inside the callback) + * notify: function (item, options) -> notify callback (internal use for when already in the requested state, will call `success` by default) + * expand: true/false -> propagate on open/toggle + * collapse: true/false -> propagate on close/toggle + * unique: true/false -> should other branches be closed (on open/toggle) ? + * unanimated: true/false -> if it's TRUE then no animations are to be run (used on open/close/toggle) + * itemData: object[item data]/array[item data] -> used when adding/updating items + * } + * + * Note: when using the API methods that support the `options` parameter, you will need to use the success/fail callbacks if you need to do + * any processing after the API call. This because there can be async operations that will complete at a later time and the API methods will + * exit before the job is actually completed. This will happen when items are loaded with AJAX, on animations and other delayed operations (see _queue). + * + */ + +(function($, window, undefined) { + + // default options + + var options = { + // the AJAX options (see jQuery.ajax) where the `success` and `error` are overridden by aciTree + ajax: { + url: null, // URL from where to take the data, something like `path/script?nodeId=` (the node ID value will be added for each request) + dataType: 'json' + }, + dataSource: null, // a list of data sources to be used (each entry in `aciTree.options.ajax` format) + rootData: null, // initial ROOT data for the Tree (if NULL then one initial AJAX request is made on init) + queue: { + async: 4, // the number of simultaneous async (AJAX) tasks + interval: 50, // interval [ms] after which to insert a `delay` + delay: 20 // how many [ms] delay between tasks (after `interval` expiration) + }, + loaderDelay: 500, // how many msec to wait before showing the main loader ? (on lengthy operations) + expand: false, // if TRUE then all children of a node are expanded when the node is opened + collapse: false, // if TRUE then all children of a node are collapsed when the node is closed + unique: false, // if TRUE then a single tree branch will stay open, the oters are closed when a node is opened + empty: false, // if TRUE then all children of a node are removed when the node is closed + show: {// show node/ROOT animation (default is slideDown) + props: { + 'height': 'show' + }, + duration: 'medium', + easing: 'linear' + }, + animateRoot: true, // if the ROOT should be animated on init + hide: {// hide node animation (default is slideUp) + props: { + 'height': 'hide' + }, + duration: 'medium', + easing: 'linear' + }, + view: {// scroll item into view animation + duration: 'medium', + easing: 'linear' + }, + // called for each AJAX request when a node needs to be loaded + // `item` is the item who will be loaded + // `settings` is the `aciTree.options.ajax` object or an entry from `aciTree.options.dataSource` + ajaxHook: function(item, settings) { + // the default implementation changes the URL by adding the item ID at the end + settings.url += (item ? this.getId(item) : ''); + }, + // called after each item is created but before is inserted into the DOM + // `parent` is the parent item (can be empty) + // `item` is the new created item + // `itemData` is the object used to create the item + // `level` is the #0 based item level + itemHook: function(parent, item, itemData, level) { + // there is no default implementation + }, + // called for each item to serialize its value + // `item` is the tree item to be serialized + // `what` is the option telling what is being serialized + // `value` is the current serialized value (from the `item`, value type depending of `what`) + serialize: function(item, what, value) { + if (typeof what == 'object') { + return value; + } else { + // the default implementation uses a `|` (pipe) character to separate values + return '|' + value; + } + } + }; + + // aciTree plugin core + + var aciTree_core = { + // add extra data + __extend: function() { + $.extend(this._instance, { + queue: new this._queue(this, this._instance.options.queue) // the global tree queue + }); + $.extend(this._private, { + locked: false, // to tell the tree state + itemClone: {// keep a clone of the LI for faster tree item creation + }, + // timeouts for the loader + loaderHide: null, + loaderInterval: null, + // busy delay counter + delayBusy: 0 + }); + }, + // init the treeview + init: function(options) { + options = this._options(options); + // check if was init already + if (this.wasInit()) { + this._trigger(null, 'wasinit', options); + this._fail(null, options); + return; + } + // check if is locked + if (this.isLocked()) { + this._trigger(null, 'locked', options); + this._fail(null, options); + return; + } + // a way to cancel the operation + if (!this._trigger(null, 'beforeinit', options)) { + this._trigger(null, 'initfail', options); + this._fail(null, options); + return; + } + this._private.locked = true; + this._instance.jQuery.addClass('aciTree' + this._instance.index).attr('role', 'tree').on('click' + this._instance.nameSpace, '.aciTreeButton', this.proxy(function(e) { + // process click on button + var item = this.itemFrom(e.target); + // skip when busy + if (!this.isBusy(item)) { + // tree button pressed + this.toggle(item, { + collapse: this._instance.options.collapse, + expand: this._instance.options.expand, + unique: this._instance.options.unique + }); + } + })).on('mouseenter' + this._instance.nameSpace + ' mouseleave' + this._instance.nameSpace, '.aciTreePush', function(e) { + // handle the aciTreeHover class + var element = e.target; + if (!domApi.hasClass(element, 'aciTreePush')) { + element = domApi.parentByClass(element, 'aciTreePush'); + } + domApi.toggleClass(element, 'aciTreeHover', e.type == 'mouseenter'); + }).on('mouseenter' + this._instance.nameSpace + ' mouseleave' + this._instance.nameSpace, '.aciTreeLine', function(e) { + // handle the aciTreeHover class + var element = e.target; + if (!domApi.hasClass(element, 'aciTreeLine')) { + element = domApi.parentByClass(element, 'aciTreeLine'); + } + domApi.toggleClass(element, 'aciTreeHover', e.type == 'mouseenter'); + }); + this._initHook(); + // call on success + var success = this.proxy(function() { + // call the parent + this._super(); + this._private.locked = false; + this._trigger(null, 'init', options); + this._success(null, options); + }); + // call on fail + var fail = this.proxy(function() { + // call the parent + this._super(); + this._private.locked = false; + this._trigger(null, 'initfail', options); + this._fail(null, options); + }); + if (this._instance.options.rootData) { + // the rootData was set, use it to init the tree + this.loadFrom(null, this._inner(options, { + success: success, + fail: fail, + itemData: this._instance.options.rootData + })); + } else if (this._instance.options.ajax.url) { + // the AJAX url was set, init with AJAX + this.ajaxLoad(null, this._inner(options, { + success: success, + fail: fail + })); + } else { + success.apply(this); + } + }, + _initHook: function() { + // override this to do extra init + }, + // check locked state + isLocked: function() { + return this._private.locked; + }, + // get a formatted message + // `raw` is the raw message text (can contain %NUMBER sequences, replaced with values from `params`) + // `params` is a list of values to be replaced into the message (by #0 based index) + _format: function(raw, params) { + if (!(params instanceof Array)) { + return raw; + } + var parts = raw.split(/(%[0-9]+)/gm); + var compile = '', part, index, last = false, len; + var test = new window.RegExp('^%[0-9]+$'); + for (var i = 0; i < parts.length; i++) { + part = parts[i]; + len = part.length; + if (len) { + if (!last && test.test(part)) { + index = window.parseInt(part.substr(1)) - 1; + if ((index >= 0) && (index < params.length)) { + compile += params[index]; + continue; + } + } else { + last = false; + if (part.substr(len - 1) == '%') { + if (part.substr(len - 2) != '%%') { + last = true; + } + part = part.substr(0, len - 1); + } + } + compile += part; + } + } + return compile; + }, + // low level DOM functions + _coreDOM: { + // set as leaf node + leaf: function(items) { + domApi.addRemoveListClass(items.toArray(), 'aciTreeLeaf', ['aciTreeInode', 'aciTreeInodeMaybe', 'aciTreeOpen'], function(node) { + node.firstChild.removeAttribute('aria-expanded'); + }); + }, + // set as inner node + inode: function(items, branch) { + domApi.addRemoveListClass(items.toArray(), branch ? 'aciTreeInode' : 'aciTreeInodeMaybe', 'aciTreeLeaf', function(node) { + node.firstChild.setAttribute('aria-expanded', false); + }); + }, + // set as open/closed + toggle: function(items, state) { + domApi.toggleListClass(items.toArray(), 'aciTreeOpen', state, function(node) { + node.firstChild.setAttribute('aria-expanded', state); + }); + }, + // set odd/even classes + oddEven: function(items, odd) { + var list = items.toArray(); + for (var i = 0; i < list.length; i++) { + domApi.addRemoveClass(list[i], odd ? 'aciTreeOdd' : 'aciTreeEven', odd ? 'aciTreeEven' : 'aciTreeOdd'); + odd = !odd; + } + } + }, + // a small queue implementation + // `context` the context to be used with `callback.call` + // `options` are the queue options + _queue: function(context, options) { + var locked = false; + var fifo = [], fifoAsync = []; + var load = 0, loadAsync = 0, schedule = 0, stack = 0; + // run the queue + var run = function() { + if (locked) { + stack--; + return; + } + var now = new window.Date().getTime(); + if (schedule > now) { + stack--; + return; + } + var callback, async = false; + if (load < options.async * 2) { + // get the next synchronous callback + callback = fifo.shift(); + } + if (!callback && (loadAsync < options.async)) { + // get the next async callback + callback = fifoAsync.shift(); + async = true; + } + if (callback) { + // run the callback + if (async) { + loadAsync++; + callback.call(context, function() { + loadAsync--; + }); + if (stack < 40) { + stack++; + run(); + } + } else { + load++; + callback.call(context, function() { + if (now - schedule > options.interval) { + schedule = now + options.delay; + } + load--; + if (stack < 40) { + stack++; + run(); + } + }); + } + } + stack--; + }; + var interval = []; + // start the queue + var start = function() { + for (var i = 0; i < 4; i++) { + interval[i] = window.setInterval(function() { + if (stack < 20) { + stack++; + run(); + } + }, 10); + } + }; + // stop the queue + var stop = function() { + for (var i = 0; i < interval.length; i++) { + window.clearInterval(interval[i]); + } + }; + start(); + // init the queue + this.init = function() { + this.destroy(); + start(); + return this; + }; + // push `callback` function (complete) for later call + // `async` tells if is async callback + this.push = function(callback, async) { + if (!locked) { + if (async) { + fifoAsync.push(callback); + } else { + fifo.push(callback); + } + } + return this; + }; + // test if busy + this.busy = function() { + return (load != 0) || (loadAsync != 0) || (fifo.length != 0) || (fifoAsync.length != 0); + }; + // destroy queue + this.destroy = function() { + locked = true; + stop(); + fifo = []; + fifoAsync = []; + load = 0; + loadAsync = 0; + schedule = 0; + stack = 0; + locked = false; + return this; + }; + }, + // used with a `queue` to execute something at the end + // `endCallback` function (complete) is the callback called at the end + _task: function(queue, endCallback) { + var counter = 0, finish = false; + // push a `callback` function (complete) for later call + this.push = function(callback, async) { + counter++; + queue.push(function(complete) { + var context = this; + callback.call(this, function() { + counter--; + if ((counter < 1) && !finish) { + finish = true; + endCallback.call(context, complete); + } else { + complete(); + } + }); + }, async); + }; + }, + // helper function to extend the `options` object + // `object` the initial options object + // _success, _fail, _notify are callbacks or string (the event name to be triggered) + // `item` is the item to trigger events for + _options: function(object, _success, _fail, _notify, item) { + // options object (need to be in this form for all API functions + // that have the `options` parameter, not all properties are required) + var options = $.extend({ + uid: 'ui', + success: null, // success callback + fail: null, // fail callback + notify: null, // notify callback (internal use for when already in the requested state) + expand: this._instance.options.expand, // propagate (on open) + collapse: this._instance.options.collapse, // propagate (on close) + unique: this._instance.options.unique, // keep a single branch open (on open) + unanimated: false, // unanimated (open/close/toggle) + itemData: { + } // items data (object) or a list (array) of them (used when creating branches) + }, + object); + var success = _success ? ((typeof _success == 'string') ? function() { + this._trigger(item, _success, options); + } : _success) : null; + var fail = _fail ? ((typeof _fail == 'string') ? function() { + this._trigger(item, _fail, options); + } : _fail) : null; + var notify = _notify ? ((typeof _notify == 'string') ? function() { + this._trigger(item, _notify, options); + } : _notify) : null; + if (success) { + // success callback + if (object && object.success) { + options.success = function() { + success.apply(this, arguments); + object.success.apply(this, arguments); + }; + } else { + options.success = success; + } + } + if (fail) { + // fail callback + if (object && object.fail) { + options.fail = function() { + fail.apply(this, arguments); + object.fail.apply(this, arguments); + }; + } else { + options.fail = fail; + } + } + if (notify) { + // notify callback + if (object && object.notify) { + options.notify = function() { + notify.apply(this, arguments); + object.notify.apply(this, arguments); + }; + } else if (!options.notify && object && object.success) { + options.notify = function() { + notify.apply(this, arguments); + object.success.apply(this, arguments); + }; + } else { + options.notify = notify; + } + } else if (!options.notify && object && object.success) { + // by default, run success callback + options.notify = object.success; + } + return options; + }, + // helper for passing `options` object to inner methods + // the callbacks are removed and `override` can be used to update properties + _inner: function(options, override) { + // removing success/fail/notify from options + return $.extend({ + }, options, { + success: null, + fail: null, + notify: null + }, + override); + }, + // trigger the aciTree events on the tree container + _trigger: function(item, eventName, options) { + var event = $.Event('acitree'); + if (!options) { + options = this._options(); + } + this._instance.jQuery.trigger(event, [this, item, eventName, options]); + return !event.isDefaultPrevented(); + }, + // call on success + _success: function(item, options) { + if (options && options.success) { + options.success.call(this, item, options); + } + }, + // call on fail + _fail: function(item, options) { + if (options && options.fail) { + options.fail.call(this, item, options); + } + }, + // call on notify (should be same as `success` but called when already in the requested state) + _notify: function(item, options) { + if (options && options.notify) { + options.notify.call(this, item, options); + } + }, + // delay callback on busy item + _delayBusy: function(item, callback) { + if ((this._private.delayBusy < 10) && this.isBusy(item)) { + this._private.delayBusy++; + window.setTimeout(this.proxy(function() { + this._delayBusy.call(this, item, callback); + this._private.delayBusy--; + }), 10); + return; + } + callback.apply(this); + }, + // return the data source for item + // defaults to `aciTree.options.ajax` if not set on the item/his parents + _dataSource: function(item) { + var dataSource = this._instance.options.dataSource; + if (dataSource) { + var data = this.itemData(item); + if (data && data.source && dataSource[data.source]) { + return dataSource[data.source]; + } + var parent; + do { + parent = this.parent(item); + data = this.itemData(parent); + if (data && data.source && dataSource[data.source]) { + return dataSource[data.source]; + } + } while (parent.length); + } + return this._instance.options.ajax; + }, + // process item loading with AJAX + // `item` can be NULL to load the ROOT + // loaded data need to be array of item objects + // each item can have children (defined as `itemData.branch` - array of item data objects) + ajaxLoad: function(item, options) { + if (item && this.isBusy(item)) { + // delay the load if busy + this._delayBusy(item, function() { + this.ajaxLoad(item, options); + }); + return; + } + options = this._options(options, function() { + this._loading(item); + this._trigger(item, 'loaded', options); + }, function() { + this._loading(item); + this._trigger(item, 'loadfail', options); + }, function() { + this._loading(item); + this._trigger(item, 'wasloaded', options); + }); + if (!item || this.isInode(item)) { + // add the task to the queue + this._instance.queue.push(function(complete) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeload', options)) { + this._fail(item, options); + complete(); + return; + } + this._loading(item, true); + if (this.wasLoad(item)) { + // was load already + this._notify(item, options); + complete(); + return; + } + // ensure we work on a copy of the dataSource object + var settings = $.extend({ + }, this._dataSource(item)); + // call the `aciTree.options.ajaxHook` + this._instance.options.ajaxHook.call(this, item, settings); + // loaded data need to be array of item objects + settings.success = this.proxy(function(itemList) { + if (itemList && (itemList instanceof Array) && itemList.length) { + // the AJAX returned some items + var process = function() { + if (this.wasLoad(item)) { + this._notify(item, options); + complete(); + } else { + // create a branch from `itemList` + this._createBranch(item, this._inner(options, { + success: function() { + this._success(item, options); + complete(); + }, + fail: function() { + this._fail(item, options); + complete(); + }, + itemData: itemList + })); + } + }; + if (!item || this.isInode(item)) { + process.apply(this); + } else { + // change the item to inode, then load + this.setInode(item, this._inner(options, { + success: process, + fail: options.fail + })); + } + } else { + // the AJAX response was not just right (or not a inode) + var process = function() { + this._fail(item, options); + complete(); + }; + if (!item || this.isLeaf(item)) { + process.apply(this); + } else { + // change the item to leaf + this.setLeaf(item, this._inner(options, { + success: process, + fail: process + })); + } + } + }); + settings.error = this.proxy(function() { + // AJAX failed + this._fail(item, options); + complete(); + }); + $.ajax(settings); + }, true); + } else { + this._fail(item, options); + } + }, + // process item loading + // `item` can be NULL to load the ROOT + // `options.itemData` need to be array of item objects + // each item can have children (defined as `itemData.branch` - array of item data objects) + loadFrom: function(item, options) { + if (item && this.isBusy(item)) { + // delay the load if busy + this._delayBusy(item, function() { + this.loadFrom(item, options); + }); + return; + } + options = this._options(options, function() { + this._loading(item); + this._trigger(item, 'loaded', options); + }, function() { + this._loading(item); + this._trigger(item, 'loadfail', options); + }, function() { + this._loading(item); + this._trigger(item, 'wasloaded', options); + }); + if (!item || this.isInode(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeload', options)) { + this._fail(item, options); + return; + } + this._loading(item, true); + if (this.wasLoad(item)) { + // was load already + this._notify(item, options); + return; + } + // data need to be array of item objects + if (options.itemData && (options.itemData instanceof Array) && options.itemData.length) { + // create the branch from `options.itemData` + var process = function() { + if (this.wasLoad(item)) { + this._notify(item, options); + } else { + this._createBranch(item, options); + } + }; + if (!item || this.isInode(item)) { + process.apply(this); + } else { + // change the item to inode, then create children + this.setInode(item, this._inner(options, { + success: process, + fail: options.fail + })); + } + } else { + // this is not a inode + if (!item || this.isLeaf(item)) { + this._fail(item, options); + } else { + // change the item to leaf + this.setLeaf(item, this._inner(options, { + success: options.fail, + fail: options.fail + })); + } + } + } else { + this._fail(item, options); + } + }, + // unload item + // `item` can be NULL to unload the entire tree + unload: function(item, options) { + options = this._options(options, function() { + this._loading(item); + this._trigger(item, 'unloaded', options); + }, function() { + this._loading(item); + this._trigger(item, 'unloadfail', options); + }, function() { + this._loading(item); + this._trigger(item, 'notloaded', options); + }); + if (!item || this.isInode(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeunload', options)) { + this._fail(item, options); + return; + } + this._loading(item, true); + if (!this.wasLoad(item)) { + // if was not loaded + this._notify(item, options); + return; + } + // first check each children + var cancel = false; + var children = this.children(item, true, true); + children.each(this.proxy(function(element) { + var item = $(element); + if (this.isInode(item)) { + if (this.isOpen(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeclose', options)) { + cancel = true; + return false; + } + } + if (this.wasLoad(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeunload', options)) { + cancel = true; + return false; + } + } + } + // a way to cancel the operation + if (!this._trigger(item, 'beforeremove', options)) { + cancel = true; + return false; + } + }, true)); + if (cancel) { + // it was canceled + this._fail(item, options); + return; + } + var process = function() { + children.each(this.proxy(function(element) { + // trigger the events before DOM changes + var item = $(element); + if (this.isInode(item)) { + if (this.isOpen(item)) { + this._trigger(item, 'closed', options); + } + if (this.wasLoad(item)) { + this._trigger(item, 'unloaded', options); + } + } + this._trigger(item, 'removed', options); + }, true)); + }; + // process the child remove + if (item) { + if (this.isOpen(item)) { + // first close the item, then remove children + this.close(item, this._inner(options, { + success: function() { + process.call(this); + this._removeContainer(item); + this._success(item, options); + }, + fail: options.fail + })); + } else { + process.call(this); + this._removeContainer(item); + this._success(item, options); + } + } else { + // unload the ROOT + this._animate(item, false, !this._instance.options.animateRoot || options.unanimated, function() { + process.call(this); + this._removeContainer(); + this._success(item, options); + }); + } + } else { + this._fail(item, options); + } + }, + // remove item + remove: function(item, options) { + if (this.isItem(item)) { + if (this.hasSiblings(item, true)) { + options = this._options(options, function() { + if (this.isOpenPath(item)) { + // if the parents are opened (visible) update the item states + domApi.removeClass(item[0], 'aciTreeVisible'); + this._setOddEven(item); + } + this._trigger(item, 'removed', options); + }, 'removefail', null, item); + // a way to cancel the operation + if (!this._trigger(item, 'beforeremove', options)) { + this._fail(item, options); + return; + } + if (this.wasLoad(item)) { + // unload the inode then remove + this.unload(item, this._inner(options, { + success: function() { + this._success(item, options); + this._removeItem(item); + }, + fail: options.fail + })); + } else { + // just remove the item + this._success(item, options); + this._removeItem(item); + } + } else { + var parent = this.parent(item); + if (parent.length) { + this.setLeaf(parent, options); + } else { + this.unload(null, options); + } + } + } else { + this._trigger(item, 'removefail', options) + this._fail(item, options); + } + }, + // open item children + _openChildren: function(item, options) { + if (options.expand) { + var queue = this._instance.queue; + // process the children inodes + this.inodes(this.children(item)).each(function() { + var item = $(this); + // queue node opening + queue.push(function(complete) { + this.open(item, this._inner(options)); + complete(); + }); + }); + queue.push(function(complete) { + this._success(item, options); + complete(); + }); + } else { + this._success(item, options); + } + }, + // process item open + _openItem: function(item, options) { + if (!options.unanimated && !this.isVisible(item)) { + options.unanimated = true; + } + if (options.unique) { + // close other opened nodes + this.closeOthers(item); + options.unique = false; + } + // open the node + this._coreDOM.toggle(item, true); + // (temporarily) update children states + this._setOddEvenChildren(item); + this._animate(item, true, options.unanimated, function() { + this._openChildren(item, options); + }); + }, + // open item and his children if requested + open: function(item, options) { + options = this._options(options, function() { + if (this.isOpenPath(item)) { + // if all parents are open, update the items after + this._updateVisible(item); + this._setOddEven(item); + } + this._trigger(item, 'opened', options); + }, 'openfail', 'wasopened', item); + if (this.isInode(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeopen', options)) { + this._fail(item, options); + return; + } + if (this.isOpen(item)) { + options.success = options.notify; + // propagate/open children (if required) + this._openChildren(item, options); + } else { + if (this.wasLoad(item)) { + this._openItem(item, options); + } else { + // try to load the node, then open + this.ajaxLoad(item, this._inner(options, { + success: function() { + this._openItem(item, options); + }, + fail: options.fail + })); + } + } + } else { + this._fail(item, options); + } + }, + // close item children + _closeChildren: function(item, options) { + if (this._instance.options.empty) { + // unload on close + options.unanimated = true; + this.unload(item, options); + } else if (options.collapse) { + var queue = this._instance.queue; + // process the children inodes + this.inodes(this.children(item)).each(function() { + var item = $(this); + // queue node close + queue.push(function(complete) { + this.close(item, this._inner(options, { + unanimated: true + })); + complete(); + }); + }); + queue.push(function(complete) { + this._success(item, options); + complete(); + }); + } else { + this._success(item, options); + } + }, + // process item close + _closeItem: function(item, options) { + if (!options.unanimated && !this.isVisible(item)) { + options.unanimated = true; + } + // close the item + this._coreDOM.toggle(item, false); + this._animate(item, false, options.unanimated, function() { + this._closeChildren(item, options); + }); + }, + // close item and his children if requested + close: function(item, options) { + options = this._options(options, function() { + if (this.isOpenPath(item)) { + // if all parents are open, update the items after + this._updateVisible(item); + this._setOddEven(item); + } + this._trigger(item, 'closed', options); + }, 'closefail', 'wasclosed', item); + if (this.isInode(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeclose', options)) { + this._fail(item, options); + return; + } + if (this.isOpen(item)) { + this._closeItem(item, options); + } else if (this.wasLoad(item)) { + options.success = options.notify; + // propagate/close/empty children (if required) + this._closeChildren(item, options); + } else { + this._notify(item, options); + } + } else { + this._fail(item, options); + } + }, + // update visible state + _updateVisible: function(item) { + if (this.isOpenPath(item)) { + if (!this.isHidden(item)) { + // if open parents and not hidden + domApi.addClass(item[0], 'aciTreeVisible'); + if (this.isOpen(item)) { + // process children + domApi.children(item[0], false, this.proxy(function(node) { + if (!domApi.hasClass(node, 'aciTreeVisible')) { + this._updateVisible($(node)); + } + })); + } else { + // children are not visible + domApi.children(item[0], true, function(node) { + return domApi.removeClass(node, 'aciTreeVisible') ? true : null; + }); + } + } + } else if (domApi.removeClass(item[0], 'aciTreeVisible')) { + domApi.children(item[0], true, function(node) { + return domApi.removeClass(node, 'aciTreeVisible') ? true : null; + }); + } + }, + // keep just one branch open + closeOthers: function(item, options) { + options = this._options(options); + if (this.isItem(item)) { + var queue = this._instance.queue; + // exclude the item and his parents + var exclude = item.add(this.path(item)).add(this.children(item, true)); + // close all other open nodes + this.inodes(this.children(null, true, true), true).not(exclude).each(function() { + var item = $(this); + // add node to close queue + queue.push(function(complete) { + this.close(item, this._inner(options)); + complete(); + }); + }); + queue.push(function(complete) { + this._success(item, options); + complete(); + }); + } else { + this._fail(item, options); + } + }, + // toggle item + toggle: function(item, options) { + options = this._options(options, 'toggled', 'togglefail', null, item); + if (this.isInode(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforetoggle', options)) { + this._fail(item, options); + return; + } + if (this.isOpen(item)) { + this.close(item, options); + } else { + this.open(item, options); + } + } else { + this._fail(item, options); + } + }, + // get item path starting from the top parent (ROOT) + // when `reverse` is TRUE returns the path in reverse order + path: function(item, reverse) { + if (item) { + var parent = item[0], list = []; + while (parent = domApi.parent(parent)) { + list.push(parent); + } + return reverse ? $(list) : $(list.reverse()); + } + return $([]); + }, + // test if item is in view + // when `center` is TRUE will test if is centered in view + isVisible: function(item, center) { + if (item && domApi.hasClass(item[0], 'aciTreeVisible')) { + // the item path need to be open + var rect = this._instance.jQuery[0].getBoundingClientRect(); + var size = item[0].firstChild; + var test = size.getBoundingClientRect(); + var height = size.offsetHeight; + var offset = center ? (rect.bottom - rect.top) / 2 : 0; + if ((test.bottom - height < rect.top + offset) || (test.top + height > rect.bottom - offset)) { + // is out of view + return false; + } + return true; + } + return false; + }, + // open path to item + openPath: function(item, options) { + options = this._options(options); + if (this.isItem(item)) { + var queue = this._instance.queue; + // process closed inodes + this.inodes(this.path(item), false).each(function() { + var item = $(this); + // add node to open queue + queue.push(function(complete) { + this.open(item, this._inner(options)); + complete(); + }); + }); + queue.push(function(complete) { + this._success(item, options); + complete(); + }); + } else { + this._fail(item, options); + } + }, + // test if path to item is open + isOpenPath: function(item) { + var parent = this.parent(item); + return parent[0] ? this.isOpen(parent) && domApi.hasClass(parent[0], 'aciTreeVisible') : true; + }, + // get animation speed vs. offset size + // `speed` is the raw speed + // `totalSize` is the available size + // `required` is the offset used for calculations + _speedFraction: function(speed, totalSize, required) { + if ((required < totalSize) && totalSize) { + var numeric = parseInt(speed); + if (isNaN(numeric)) { + // predefined string values + switch (speed) { + case 'slow': + numeric = 600; + break; + case 'medium': + numeric = 400; + break; + case 'fast': + numeric = 200; + break; + default: + return speed; + } + } + return numeric * required / totalSize; + } + return speed; + }, + // bring item in view + // `options.center` says if should be centered in view + setVisible: function(item, options) { + options = this._options(options, 'visible', 'visiblefail', 'wasvisible', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforevisible', options)) { + this._fail(item, options); + return; + } + if (this.isVisible(item)) { + // is visible already + this._notify(item, options); + return; + } + var process = function() { + // compute position with getBoundingClientRect + var rect = this._instance.jQuery[0].getBoundingClientRect(); + var size = item[0].firstChild; + var test = size.getBoundingClientRect(); + var height = size.offsetHeight; + var offset = options.center ? (rect.bottom - rect.top) / 2 : 0; + if (test.bottom - height < rect.top + offset) { + // item somewhere before the first visible + var diff = rect.top + offset - test.bottom + height; + if (!options.unanimated && this._instance.options.view) { + this._instance.jQuery.stop(true).animate({ + scrollTop: this._instance.jQuery.scrollTop() - diff + }, + { + duration: this._speedFraction(this._instance.options.view.duration, rect.bottom - rect.top, diff), + easing: this._instance.options.view.easing, + complete: this.proxy(function() { + this._success(item, options); + }) + }); + } else { + this._instance.jQuery.stop(true)[0].scrollTop = this._instance.jQuery.scrollTop() - diff; + this._success(item, options); + } + } else if (test.top + height > rect.bottom - offset) { + // item somewhere after the last visible + var diff = test.top - rect.bottom + offset + height; + if (!options.unanimated && this._instance.options.view) { + this._instance.jQuery.stop(true).animate({ + scrollTop: this._instance.jQuery.scrollTop() + diff + }, + { + duration: this._speedFraction(this._instance.options.view.duration, rect.bottom - rect.top, diff), + easing: this._instance.options.view.easing, + complete: this.proxy(function() { + this._success(item, options); + }) + }); + } else { + this._instance.jQuery.stop(true)[0].scrollTop = this._instance.jQuery.scrollTop() + diff; + this._success(item, options); + } + } else { + this._success(item, options); + } + }; + if (this.hasParent(item)) { + // first we need to open the path to item + this.openPath(item, this._inner(options, { + success: process, + fail: options.fail + })); + } else { + process.apply(this); + } + } else { + this._fail(item, options); + } + }, + // test if item has parent + hasParent: function(item) { + return this.parent(item).length > 0; + }, + // get item parent + parent: function(item) { + return item ? $(domApi.parent(item[0])) : $([]); + }, + // get item top (ROOT) parent + topParent: function(item) { + return this.path(item).eq(0); + }, + // create tree branch + // `options.itemData` need to be in the same format as for .append + _createBranch: function(item, options) { + var total = 0; + var count = function(itemList) { + var itemData; + for (var i = 0; i < itemList.length; i++) { + itemData = itemList[i]; + if (itemData.branch && (itemData.branch instanceof Array) && itemData.branch.length) { + count(itemData.branch); + } + } + total++; + }; + count(options.itemData); + var index = 0; + var complete = this.proxy(function() { + index++; + if (index >= total) { + this._success(item, options); + } + }); + var process = this.proxy(function(node, itemList) { + if (node) { + // set it as a inode + domApi.addRemoveClass(node[0], 'aciTreeInode', 'aciTreeInodeMaybe'); + } + // use .append to add new items + this.append(node, this._inner(options, { + success: function(item, options) { + var itemData; + for (var i = 0; i < options.itemData.length; i++) { + itemData = options.itemData[i]; + // children need to be array of item objects + if (itemData.branch && (itemData.branch instanceof Array) && itemData.branch.length) { + process(options.items.eq(i), itemData.branch); + } + if (itemData.open) { + // open the item is requuested + this.open(options.items.eq(i), this._inner(options, { + itemData: null, + items: null + })); + } + } + complete(); + }, + fail: options.fail, + itemData: itemList + })); + }); + process(item, options.itemData); + }, + // get first/last items + _getFirstLast: function(parent) { + if (!parent) { + parent = this._instance.jQuery; + } + return $(domApi.withAnyClass(domApi.children(parent[0]), ['aciTreeFirst', 'aciTreeLast'])); + }, + // update first/last items + _setFirstLast: function(parent, clear) { + if (clear) { + domApi.removeListClass(clear.toArray(), ['aciTreeFirst', 'aciTreeLast']); + } + var first = this.first(parent); + if (first[0]) { + domApi.addClass(first[0], 'aciTreeFirst'); + domApi.addClass(this.last(parent)[0], 'aciTreeLast'); + } + }, + // update odd/even state + _setOddEven: function(items) { + // consider only visible items + var visible; + if (this._instance.jQuery[0].getElementsByClassName) { + visible = this._instance.jQuery[0].getElementsByClassName('aciTreeVisible'); + visible = visible ? window.Array.prototype.slice.call(visible) : []; + } else { + visible = $(domApi.children(this._instance.jQuery[0], true, function(node) { + return this.hasClass(node, 'aciTreeVisible') ? true : null; + })); + } + var odd = true; + if (visible.length) { + var index = 0; + if (items) { + // search the item to start with (by index) + items.each(function() { + if (visible.indexOf) { + var found = visible.indexOf(this); + if (found != -1) { + index = window.Math.min(found, index); + } + } else { + for (var i = 0; i < visible.length; i++) { + if (visible[i] === this) { + index = window.Math.min(i, index); + break; + } + } + } + }); + index = window.Math.max(index - 1, 0); + } + if (index > 0) { + // determine with what to start with (odd/even) + var first = visible[index]; + if (domApi.hasClass(first, 'aciTreOdd')) { + odd = false; + } + // process only after index + visible = visible.slice(index + 1); + } + } + this._coreDOM.oddEven($(visible), odd); + }, + // update odd/even state for direct children + _setOddEvenChildren: function(item) { + var odd = domApi.hasClass(item[0], 'aciTreeOdd'); + var children = this.children(item); + this._coreDOM.oddEven(children, !odd); + }, + // process item before inserting into the DOM + _itemHook: function(parent, item, itemData, level) { + if (this._instance.options.itemHook) { + this._instance.options.itemHook.apply(this, arguments); + } + }, + // create item by `itemData` + // `level` is the #0 based item level + _createItem: function(itemData, level) { + if (this._private.itemClone[level]) { + var li = this._private.itemClone[level].cloneNode(true); + var line = li.firstChild; + var icon = line; + for (var i = 0; i < level; i++) { + icon = icon.firstChild; + } + icon = icon.firstChild.lastChild.firstChild; + var text = icon.nextSibling; + } else { + var li = window.document.createElement('LI'); + li.setAttribute('role', 'presentation'); + var line = window.document.createElement('DIV'); + li.appendChild(line); + line.setAttribute('tabindex', -1); + line.setAttribute('role', 'treeitem'); + line.setAttribute('aria-selected', false); + line.className = 'aciTreeLine'; + var last = line, branch; + for (var i = 0; i < level; i++) { + branch = window.document.createElement('DIV'); + last.appendChild(branch); + branch.className = 'aciTreeBranch aciTreeLevel' + i; + last = branch; + } + var entry = window.document.createElement('DIV'); + last.appendChild(entry); + entry.className = 'aciTreeEntry'; + var button = window.document.createElement('SPAN'); + entry.appendChild(button); + button.className = 'aciTreeButton'; + var push = window.document.createElement('SPAN'); + button.appendChild(push); + push.className = 'aciTreePush'; + push.appendChild(window.document.createElement('SPAN')); + var item = window.document.createElement('SPAN'); + entry.appendChild(item); + item.className = 'aciTreeItem'; + var icon = window.document.createElement('SPAN'); + item.appendChild(icon); + var text = window.document.createElement('SPAN'); + item.appendChild(text); + text.className = 'aciTreeText'; + this._private.itemClone[level] = li.cloneNode(true); + } + li.className = 'aciTreeLi' + (itemData.inode || (itemData.inode === null) ? (itemData.inode || (itemData.branch && itemData.branch.length) ? ' aciTreeInode' : ' aciTreeInodeMaybe') : ' aciTreeLeaf') + ' aciTreeLevel' + level + (itemData.disabled ? ' aciTreeDisabled' : ''); + line.setAttribute('aria-level', level + 1); + if (itemData.inode || (itemData.inode === null)) { + line.setAttribute('aria-expanded', false); + } + if (itemData.icon) { + if (itemData.icon instanceof Array) { + icon.className = 'aciTreeIcon ' + itemData.icon[0]; + icon.style.backgroundPosition = itemData.icon[1] + 'px ' + itemData.icon[2] + 'px'; + } else { + icon.className = 'aciTreeIcon ' + itemData.icon; + } + } else { + icon.parentNode.removeChild(icon); + } + text.innerHTML = itemData.label; + var $li = $(li); + $li.data('itemData' + this._instance.nameSpace, $.extend({ + }, itemData, { + branch: itemData.branch && itemData.branch.length + })); + return $li; + }, + // remove item + _removeItem: function(item) { + var parent = this.parent(item); + item.remove(); + // update sibling state + this._setFirstLast(parent.length ? parent : null); + }, + // create & add one or more items + // `ul`, `before` and `after` are set depending on the caller + // `itemData` need to be array of objects or just an object (one item) + // `level` is the #0 based level + // `callback` function (items) is called at the end of the operation + _createItems: function(ul, before, after, itemData, level, callback) { + var items = [], fragment = window.document.createDocumentFragment(); + var task = new this._task(this._instance.queue, function(complete) { + items = $(items); + if (items.length) { + // add the new items + if (ul) { + ul[0].appendChild(fragment); + } else if (before) { + before[0].parentNode.insertBefore(fragment, before[0]); + } else if (after) { + after[0].parentNode.insertBefore(fragment, after[0].nextSibling); + } + } + callback.call(this, items); + complete(); + }); + if (itemData) { + this._loader(true); + var parent; + if (ul) { + parent = this.itemFrom(ul); + } else if (before) { + parent = this.parent(before); + } else if (after) { + parent = this.parent(after); + } + if (itemData instanceof Array) { + // this is a list of items + for (var i = 0; i < itemData.length; i++) { + (function(itemData) { + task.push(function(complete) { + var item = this._createItem(itemData, level); + this._itemHook(parent, item, itemData, level); + fragment.appendChild(item[0]); + items.push(item[0]); + complete(); + }); + })(itemData[i]); + } + } else { + task.push(function(complete) { + // only one item + var item = this._createItem(itemData, level); + this._itemHook(parent, item, itemData, level); + fragment.appendChild(item[0]); + items.push(item[0]); + complete(); + }); + } + } + // run at least once + task.push(function(complete) { + complete(); + }); + }, + // create children container + _createContainer: function(item) { + if (!item) { + item = this._instance.jQuery; + } + // ensure we have a UL in place + var ul = domApi.container(item[0]); + if (!ul) { + var ul = window.document.createElement('UL'); + ul.setAttribute('role', 'group'); + ul.className = 'aciTreeUl'; + ul.style.display = 'none'; + item[0].appendChild(ul); + } + return $(ul); + }, + // remove children container + _removeContainer: function(item) { + if (!item) { + item = this._instance.jQuery; + } + var ul = domApi.container(item[0]); + ul.parentNode.removeChild(ul); + }, + // append one or more items to item + // `options.itemData` can be a item object or array of item objects + // `options.items` will keep a list of added items + append: function(item, options) { + options = this._options(options, 'appended', 'appendfail', null, item); + if (item) { + if (this.isInode(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeappend', options)) { + this._fail(item, options); + return; + } + var container = this._createContainer(item); + var last = this.last(item); + this._createItems(container, null, null, options.itemData, this.level(item) + 1, function(list) { + if (list.length) { + // some items created, update states + domApi.addRemoveClass(item[0], 'aciTreeInode', 'aciTreeInodeMaybe'); + this._setFirstLast(item, last); + if (this.isHidden(item)) { + domApi.addListClass(list.toArray(), 'aciTreeHidden'); + } else if (this.isOpenPath(item) && this.isOpen(item)) { + domApi.addListClass(list.toArray(), 'aciTreeVisible'); + this._setOddEven(list.first()); + } + // trigger `added` for each item + list.each(this.proxy(function(element) { + this._trigger($(element), 'added', options); + }, true)); + } else if (!this.hasChildren(item, true)) { + container.remove(); + } + options.items = list; + this._success(item, options); + }); + } else { + this._fail(item, options); + } + } else { + // a way to cancel the operation + if (!this._trigger(item, 'beforeappend', options)) { + this._fail(item, options); + return; + } + var container = this._createContainer(); + var last = this.last(); + this._createItems(container, null, null, options.itemData, 0, function(list) { + if (list.length) { + // some items created, update states + this._setFirstLast(null, last); + domApi.addListClass(list.toArray(), 'aciTreeVisible'); + this._setOddEven(); + // trigger `added` for each item + list.each(this.proxy(function(element) { + this._trigger($(element), 'added', options); + }, true)); + this._animate(null, true, !this._instance.options.animateRoot || options.unanimated); + } else if (!this.hasChildren(null, true)) { + // remove the children container + container.remove(); + } + options.items = list; + this._success(item, options); + }); + } + }, + // insert one or more items before item + // `options.itemData` can be a item object or array of item objects + // `options.items` will keep a list of added items + before: function(item, options) { + options = this._options(options, 'before', 'beforefail', null, item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforebefore', options)) { + this._fail(item, options); + return; + } + var prev = this.prev(item); + this._createItems(null, item, null, options.itemData, this.level(item), function(list) { + if (list.length) { + // some items created, update states + if (!prev.length) { + domApi.removeClass(item[0], 'aciTreeFirst'); + domApi.addClass(list.first()[0], 'aciTreeFirst'); + } + var parent = this.parent(item); + if (parent.length && this.isHidden(parent)) { + domApi.addListClass(list.toArray(), 'aciTreeHidden'); + } else if (this.isOpenPath(item)) { + domApi.addListClass(list.toArray(), 'aciTreeVisible'); + this._setOddEven(list.first()); + } + // trigger `added` for each item + list.each(this.proxy(function(element) { + this._trigger($(element), 'added', options); + }, true)); + } + options.items = list; + this._success(item, options); + }); + } else { + this._fail(item, options); + } + }, + // insert one or more items after item + // `options.itemData` can be a item object or array of item objects + // `options.items` will keep a list of added items + after: function(item, options) { + options = this._options(options, 'after', 'afterfail', null, item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeafter', options)) { + this._fail(item, options); + return; + } + var next = this.next(item); + this._createItems(null, null, item, options.itemData, this.level(item), function(list) { + if (list.length) { + // some items created, update states + if (!next.length) { + domApi.removeClass(item[0], 'aciTreeLast'); + domApi.addClass(list.last()[0], 'aciTreeLast'); + } + var parent = this.parent(item); + if (parent.length && this.isHidden(parent)) { + domApi.addListClass(list.toArray(), 'aciTreeHidden'); + } else if (this.isOpenPath(item)) { + domApi.addListClass(list.toArray(), 'aciTreeVisible'); + this._setOddEven(list.first()); + } + // trigger `added` for each item + list.each(this.proxy(function(element) { + this._trigger($(element), 'added', options); + }, true)); + } + options.items = list; + this._success(item, options); + }); + } else { + this._fail(item, options); + } + }, + // get item having the element + itemFrom: function(element) { + if (element) { + var item = $(element); + if (item[0] === this._instance.jQuery[0]) { + return $([]); + } else { + return $(domApi.parentFrom(item[0])); + } + } + return $([]); + }, + // get item children + // if `branch` is TRUE then all children are returned + // if `hidden` is TRUE then the hidden items will be considered too + children: function(item, branch, hidden) { + return $(domApi.children(item && item[0] ? item[0] : this._instance.jQuery[0], branch, hidden ? null : function(node) { + return this.hasClass(node, 'aciTreeHidden') ? null : true; + })); + }, + // filter only the visible items (items with all parents opened) + // if `view` is TRUE then only the items in view are returned + visible: function(items, view) { + var list = domApi.withClass(items.toArray(), 'aciTreeVisible'); + if (view) { + var filter = []; + for (var i = 0; i < list.length; i++) { + if (this.isVisible($(list[i]))) { + filter.push(list[i]); + } + } + return $(filter); + } + return $(list); + }, + // filter only inner nodes from items + // if `state` is set then filter only open/closed ones + inodes: function(items, state) { + if (state !== undefined) { + if (state) { + return $(domApi.withClass(items.toArray(), 'aciTreeOpen')); + } else { + return $(domApi.withAnyClass(items.toArray(), ['aciTreeInode', 'aciTreeInodeMaybe'], 'aciTreeOpen')); + } + } + return $(domApi.withAnyClass(items.toArray(), ['aciTreeInode', 'aciTreeInodeMaybe'])); + }, + // filter only leaf nodes from items + leaves: function(items) { + return $(domApi.withClass(items.toArray(), 'aciTreeLeaf')); + }, + // test if is a inner node + isInode: function(item) { + return item && domApi.hasAnyClass(item[0], ['aciTreeInode', 'aciTreeInodeMaybe']); + }, + // test if is a leaf node + isLeaf: function(item) { + return item && domApi.hasClass(item[0], 'aciTreeLeaf'); + }, + // test if item was loaded + wasLoad: function(item) { + if (item) { + return domApi.container(item[0]) !== null; + } + return domApi.container(this._instance.jQuery[0]) !== null; + }, + // set item as inner node + setInode: function(item, options) { + options = this._options(options, 'inodeset', 'inodefail', 'wasinode', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeinode', options)) { + this._fail(item, options); + return; + } + if (this.isLeaf(item)) { + this._coreDOM.inode(item, true); + this._success(item, options); + } else { + this._notify(item, options); + } + } else { + this._fail(item, options); + } + }, + // set item as leaf node + setLeaf: function(item, options) { + options = this._options(options, 'leafset', 'leaffail', 'wasleaf', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeleaf', options)) { + this._fail(item, options); + return; + } + if (this.isInode(item)) { + var process = function() { + this._coreDOM.leaf(item); + this._success(item, options); + }; + if (this.wasLoad(item)) { + // first unload the node + this.unload(item, this._inner(options, { + success: process, + fail: options.fail + })); + } else { + process.apply(this); + } + } else { + this._notify(item, options); + } + } else { + this._fail(item, options); + } + }, + // add/update item icon + // `options.icon` can be the CSS class name or array['CSS class name', background-position-x, background-position-y] + // `options.oldIcon` will keep the old icon + addIcon: function(item, options) { + options = this._options(options, 'iconadded', 'addiconfail', 'wasicon', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeaddicon', options)) { + this._fail(item, options); + return; + } + var data = this.itemData(item); + // keep the old one + options.oldIcon = data.icon; + var parent = domApi.childrenByClass(item[0].firstChild, 'aciTreeItem'); + var found = domApi.childrenByClass(parent, 'aciTreeIcon'); + if (found && data.icon && (options.icon.toString() == data.icon.toString())) { + this._notify(item, options); + } else { + if (!found) { + found = window.document.createElement('DIV'); + parent.insertBefore(found, parent.firstChild); + } + if (options.icon instanceof Array) { + // icon with background-position + found.className = 'aciTreeIcon ' + options.icon[0]; + found.style.backgroundPosition = options.icon[1] + 'px ' + options.icon[2] + 'px'; + } else { + // only the CSS class name + found.className = 'aciTreeIcon ' + options.icon; + } + // remember this one + data.icon = options.icon; + this._success(item, options); + } + } else { + this._fail(item, options); + } + }, + // remove item icon + // options.oldIcon will keep the old icon + removeIcon: function(item, options) { + options = this._options(options, 'iconremoved', 'removeiconfail', 'noticon', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeremoveicon', options)) { + this._fail(item, options); + return; + } + var data = this.itemData(item); + // keep the old one + options.oldIcon = data.icon; + var parent = domApi.childrenByClass(item[0].firstChild, 'aciTreeItem'); + var found = domApi.childrenByClass(parent, 'aciTreeIcon'); + if (found) { + parent.removeChild(found); + // remember was removed + data.icon = null; + this._success(item, options); + } else { + this._notify(item, options); + } + } else { + this._fail(item, options); + } + }, + // test if item has icon + hasIcon: function(item) { + return !!this.getIcon(item); + }, + // get item icon + getIcon: function(item) { + var data = this.itemData(item); + return data ? data.icon : null; + }, + // set item label + // `options.label` is the new label + // `options.oldLabel` will keep the old label + setLabel: function(item, options) { + options = this._options(options, 'labelset', 'labelfail', 'waslabel', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforelabel', options)) { + this._fail(item, options); + return; + } + var data = this.itemData(item); + // keep the old one + options.oldLabel = data.label; + if (options.label == options.oldLabel) { + this._notify(item, options); + } else { + // set the label + domApi.childrenByClass(item[0].firstChild, 'aciTreeText').innerHTML = options.label; + // remember this one + data.label = options.label; + this._success(item, options); + } + } else { + this._fail(item, options); + } + }, + // disable item + disable: function(item, options) { + options = this._options(options, 'disabled', 'disablefail', 'wasdisabled', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforedisable', options)) { + this._fail(item, options); + return; + } + if (this.isDisabled(item)) { + this._notify(item, options); + } else { + domApi.addClass(item[0], 'aciTreeDisabled'); + this._success(item, options); + } + } else { + this._fail(item, options); + } + }, + // test if item is disabled + isDisabled: function(item) { + return item && domApi.hasClass(item[0], 'aciTreeDisabled'); + }, + // test if any of parents are disabled + isDisabledPath: function(item) { + return domApi.withClass(this.path(item).toArray(), 'aciTreeDisabled').length > 0; + }, + // filter only the disabled items + disabled: function(items) { + return $(domApi.withClass(items.toArray(), 'aciTreeDisabled')); + }, + // enable item + enable: function(item, options) { + options = this._options(options, 'enabled', 'enablefail', 'wasenabled', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeenable', options)) { + this._fail(item, options); + return; + } + if (this.isDisabled(item)) { + domApi.removeClass(item[0], 'aciTreeDisabled'); + this._success(item, options); + } else { + this._notify(item, options); + } + } else { + this._fail(item, options); + } + }, + // test if item is enabled + isEnabled: function(item) { + return item && !domApi.hasClass(item[0], 'aciTreeDisabled'); + }, + // test if all parents are enabled + isEnabledPath: function(item) { + return domApi.withClass(this.path(item).toArray(), 'aciTreeDisabled').length == 0; + }, + // filter only the enabled items + enabled: function(items) { + return $(domApi.withClass(items.toArray(), null, 'aciTreeDisabled')); + }, + // set item as hidden + hide: function(item, options) { + options = this._options(options, 'hidden', 'hidefail', 'washidden', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforehide', options)) { + this._fail(item, options); + return; + } + if (this.isHidden(item)) { + this._notify(item, options); + } else { + domApi.addRemoveClass(item[0], 'aciTreeHidden', 'aciTreeVisible'); + // process children + domApi.addRemoveClass(this.children(item, true).toArray(), 'aciTreeHidden', 'aciTreeVisible'); + // update item states + var parent = this.parent(item); + this._setFirstLast(parent.length ? parent : null, item); + this._setOddEven(item); + this._success(item, options); + } + } else { + this._fail(item, options); + } + }, + // test if item is hidden + isHidden: function(item) { + return item && domApi.hasClass(item[0], 'aciTreeHidden'); + }, + // test if any of parents are hidden + isHiddenPath: function(item) { + var parent = this.parent(item); + return parent[0] && domApi.hasClass(parent[0], 'aciTreeHidden'); + }, + // update hidden state + _updateHidden: function(item) { + if (this.isHiddenPath(item)) { + if (!this.isHidden(item)) { + domApi.addClass(item[0], 'aciTreeHidden'); + this._updateVisible(item); + } + } else { + this._updateVisible(item); + } + }, + // filter only the hidden items + hidden: function(items) { + return $(domApi.withClass(items.toArray(), 'aciTreeHidden')); + }, + // show hidden item + _showHidden: function(item) { + var parent = null; + this.path(item).add(item).each(this.proxy(function(element) { + var item = $(element); + if (this.isHidden(item)) { + domApi.removeClass(item[0], 'aciTreeHidden'); + if (this.isOpenPath(item) && (!parent || this.isOpen(parent))) { + domApi.addClass(item[0], 'aciTreeVisible'); + } + // update item states + this._setFirstLast(parent, this._getFirstLast(parent)); + } + parent = item; + }, true)); + }, + // show hidden item + show: function(item, options) { + options = this._options(options, 'shown', 'showfail', 'wasshown', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeshow', options)) { + this._fail(item, options); + return; + } + if (this.isHidden(item)) { + this._showHidden(item); + var parent = this.topParent(item); + // update item states + this._setOddEven(parent.length ? parent : item); + this._success(item, options); + } else { + this._notify(item, options); + } + } else { + this._fail(item, options); + } + }, + // test if item is open + isOpen: function(item) { + return item && domApi.hasClass(item[0], 'aciTreeOpen'); + }, + // test if item is closed + isClosed: function(item) { + return item && !domApi.hasClass(item[0], 'aciTreeOpen'); + }, + // test if item has children + // if `hidden` is TRUE then the hidden items will be considered too + hasChildren: function(item, hidden) { + return this.children(item, false, hidden).length > 0; + }, + // test if item has siblings + // if `hidden` is TRUE then the hidden items will be considered too + hasSiblings: function(item, hidden) { + return this.siblings(item, hidden).length > 0; + }, + // test if item has another before + // if `hidden` is TRUE then the hidden items will be considered too + hasPrev: function(item, hidden) { + return this.prev(item, hidden).length > 0; + }, + // test if item has another after + // if `hidden` is TRUE then the hidden items will be considered too + hasNext: function(item, hidden) { + return this.next(item, hidden).length > 0; + }, + // get item siblings + // if `hidden` is TRUE then the hidden items will be considered too + siblings: function(item, hidden) { + return item ? $(domApi.children(item[0].parentNode.parentNode, false, function(node) { + return (node != item[0]) && (hidden || !this.hasClass(node, 'aciTreeHidden')); + })) : $([]); + }, + // get previous item + // if `hidden` is TRUE then the hidden items will be considered too + prev: function(item, hidden) { + return item ? $(domApi.prev(item[0], hidden ? null : function(node) { + return !this.hasClass(node, 'aciTreeHidden'); + })) : $([]); + }, + // get next item + // if `hidden` is TRUE then the hidden items will be considered too + next: function(item, hidden) { + return item ? $(domApi.next(item[0], hidden ? null : function(node) { + return !this.hasClass(node, 'aciTreeHidden'); + })) : $([]); + }, + // get item level - starting from 0 + // return -1 for invalid items + level: function(item) { + var level = -1; + if (item) { + var node = item[0]; + while (domApi.hasClass(node, 'aciTreeLi')) { + node = node.parentNode.parentNode; + level++; + } + } + return level; + }, + // get item ID + getId: function(item) { + var data = this.itemData(item); + return data ? data.id : null; + }, + // get item data + itemData: function(item) { + return item ? item.data('itemData' + this._instance.nameSpace) : null; + }, + // set item ID + // `options.id` is the new item ID + // `options.oldId` will keep the old ID + setId: function(item, options) { + options = this._options(options, 'idset', 'idfail', 'wasid', item); + if (this.isItem(item)) { + // a way to cancel the operation + if (!this._trigger(item, 'beforeid', options)) { + this._fail(item, options); + return; + } + var data = this.itemData(item); + // keep the old one + options.oldId = data.id; + if (options.id == options.oldId) { + this._notify(item, options); + } else { + // remember this one + data.id = options.id; + this._success(item, options); + } + } else { + this._fail(item, options); + } + }, + // get item index - starting from #0 + getIndex: function(item) { + if (item && item[0]) { + if (window.Array.prototype.indexOf) { + return window.Array.prototype.indexOf.call(item[0].parentNode.childNodes, item[0]); + } else { + var children = item[0].parentNode.childNodes; + for (var i = 0; i < children.length; i++) { + if (children[i] == item[0]) { + return i; + } + } + } + } + return null; + }, + // set item index - #0 based + // `options.index` is the new index + // `options.oldIndex` will keep the old index + setIndex: function(item, options) { + options = this._options(options, 'indexset', 'indexfail', 'wasindex', item); + if (this.isItem(item)) { + var oldIndex = this.getIndex(item); + var siblings = this.siblings(item); + if ((options.index != oldIndex) && !siblings.length) { + this._fail(item, options); + return; + } + // a way to cancel the operation + if (!this._trigger(item, 'beforeindex', options)) { + this._fail(item, options); + return; + } + // keep the old one + options.oldIndex = oldIndex; + if (options.index == oldIndex) { + this._notify(item, options); + } else { + // set the new index + if (options.index < 1) { + siblings.first().before(item); + } else if (options.index >= siblings.length) { + siblings.last().after(item); + } else { + siblings.eq(options.index).before(item); + } + var parent = this.parent(item); + // update item states + this._setFirstLast(parent.length ? parent : null, item.add([siblings[0], siblings.get(-1)])); + this._setOddEven(parent); + this._success(item, options); + } + } else { + this._fail(item, options); + } + }, + // get item label + getLabel: function(item) { + var data = this.itemData(item); + return data ? data.label : null; + }, + // test if is valid item + isItem: function(item) { + return item && domApi.hasClass(item[0], 'aciTreeLi'); + }, + // item animation + // `state` if TRUE then show, FALSE then hide + // `unanimated` if TRUE then don't use animations + // `callback` function () to call at the end + _animate: function(item, state, unanimated, callback) { + if (!item) { + item = this._instance.jQuery; + } + if (!unanimated) { + // use the defined animation props + var setting = state ? this._instance.options.show : this._instance.options.hide; + if (setting) { + var ul = domApi.container(item[0]); + if (ul) { + // animate children container + $(ul).stop(true, true).animate(setting.props, { + duration: setting.duration, + easing: setting.easing, + complete: callback ? this.proxy(callback) : null + }); + } else if (callback) { + callback.apply(this); + } + return; + } + } + // use no animation + $(domApi.container(item[0])).stop(true, true).toggle(state); + if (callback) { + callback.apply(this); + } + }, + // get first children of item + // if `hidden` is TRUE then the hidden items will be considered too + first: function(item, hidden) { + if (!item) { + item = this._instance.jQuery; + } + return $(domApi.firstChild(item[0], hidden ? null : function(node) { + return !this.hasClass(node, 'aciTreeHidden'); + })); + }, + // test if item is the first one for his parent + // if `hidden` is TRUE then the hidden items will be considered too + isFirst: function(item, hidden) { + if (item) { + var parent = domApi.parent(item[0]); + return this.first(parent ? $(parent) : null, hidden)[0] == item[0]; + } + return false; + }, + // get last children of item + // if `hidden` is TRUE then the hidden items will be considered too + last: function(item, hidden) { + if (!item) { + item = this._instance.jQuery; + } + return $(domApi.lastChild(item[0], hidden ? null : function(node) { + return !this.hasClass(node, 'aciTreeHidden'); + })); + }, + // test if item is the last one for his parent + // if `hidden` is TRUE then the hidden items will be considered too + isLast: function(item, hidden) { + if (item) { + var parent = domApi.parent(item[0]); + return this.last(parent ? $(parent) : null, hidden)[0] == item[0]; + } + return false; + }, + // test if item is busy/loading + isBusy: function(item) { + if (item) { + return domApi.hasClass(item[0], 'aciTreeLoad'); + } else { + return this._instance.queue.busy(); + } + }, + // set loading state + _loading: function(item, state) { + if (item) { + domApi.toggleClass(item[0], 'aciTreeLoad', state); + if (state) { + item[0].firstChild.setAttribute('aria-busy', true); + } else { + item[0].firstChild.removeAttribute('aria-busy'); + } + } else if (state) { + this._loader(state); + } + }, + // show loader image + _loader: function(show) { + if (show || this.isBusy()) { + if (!this._private.loaderInterval) { + this._private.loaderInterval = window.setInterval(this.proxy(function() { + this._loader(); + }), this._instance.options.loaderDelay); + } + domApi.addClass(this._instance.jQuery[0], 'aciTreeLoad'); + window.clearTimeout(this._private.loaderHide); + this._private.loaderHide = window.setTimeout(this.proxy(function() { + domApi.removeClass(this._instance.jQuery[0], 'aciTreeLoad'); + }), this._instance.options.loaderDelay * 2); + } + }, + // test if parent has children + isChildren: function(parent, children) { + if (!parent) { + parent = this._instance.jQuery; + } + return children && (parent.has(children).length > 0); + }, + // test if parent has immediate children + isImmediateChildren: function(parent, children) { + if (!parent) { + parent = this._instance.jQuery; + } + return children && parent.children('.aciTreeUl').children('.aciTreeLi').is(children); + }, + // test if items share the same parent + sameParent: function(item1, item2) { + if (item1 && item2) { + var parent1 = this.parent(item1); + var parent2 = this.parent(item2); + return (!parent1.length && !parent2.length) || (parent1[0] == parent2[0]); + } + return false; + }, + // test if items share the same top parent + sameTopParent: function(item1, item2) { + if (item1 && item2) { + var parent1 = this.topParent(item1); + var parent2 = this.topParent(item2); + return (!parent1.length && !parent2.length) || (parent1[0] == parent2[0]); + } + return false; + }, + // return the updated item data + // `callback` function (item) called for each item + _serialize: function(item, callback) { + var data = this.itemData(item); + if (this.isInode(item)) { + data.inode = true; + if (this.wasLoad(item)) { + if (data.hasOwnProperty('open')) { + data.open = this.isOpen(item); + } else if (this.isOpen(item)) { + data.open = true; + } + data.branch = []; + this.children(item, false, true).each(this.proxy(function(element) { + var entry = this._serialize($(element), callback); + if (callback) { + entry = callback.call(this, $(element), { + }, entry); + } else { + entry = this._instance.options.serialize.call(this, $(element), { + }, entry); + } + if (entry) { + data.branch.push(entry); + } + }, true)); + if (!data.branch.length) { + data.branch = null; + } + } else { + if (data.hasOwnProperty('open')) { + data.open = false; + } + if (data.hasOwnProperty('branch')) { + data.branch = null; + } + } + } else { + if (data.hasOwnProperty('inode')) { + data.inode = false; + } + if (data.hasOwnProperty('open')) { + data.open = null; + } + if (data.hasOwnProperty('branch')) { + data.branch = null; + } + } + if (data.hasOwnProperty('disabled')) { + data.disabled = this.isDisabled(item); + } else if (this.isDisabled(item)) { + data.disabled = true; + } + return data; + }, + // return serialized data + // `callback` function (item, what, value) - see `aciTree.options.serialize` + serialize: function(item, what, callback) { + // override this to provide serialized data + if (typeof what == 'object') { + if (item) { + var data = this._serialize(item, callback); + if (callback) { + data = callback.call(this, item, { + }, data); + } else { + data = this._instance.options.serialize.call(this, item, { + }, data); + } + return data; + } else { + var list = []; + this.children(null, false, true).each(this.proxy(function(element) { + var data = this._serialize($(element), callback); + if (callback) { + data = callback.call(this, $(element), { + }, data); + } else { + data = this._instance.options.serialize.call(this, $(element), { + }, data); + } + if (data) { + list.push(data); + } + }, true)); + return list; + } + } + return ''; + }, + // destroy the control + destroy: function(options) { + options = this._options(options); + // check if was init + if (!this.wasInit()) { + this._trigger(null, 'notinit', options); + this._fail(null, options); + return; + } + // check if is locked + if (this.isLocked()) { + this._trigger(null, 'locked', options); + this._fail(null, options); + return; + } + // a way to cancel the operation + if (!this._trigger(null, 'beforedestroy', options)) { + this._trigger(null, 'destroyfail', options); + this._fail(null, options); + return; + } + this._private.locked = true; + this._instance.jQuery.addClass('aciTreeLoad').attr('aria-busy', true); + this._instance.queue.destroy(); + this._destroyHook(false); + // unload the entire treeview + this.unload(null, this._inner(options, { + success: this.proxy(function() { + window.clearTimeout(this._private.loaderHide); + window.clearInterval(this._private.loaderInterval); + this._private.itemClone = { + }; + this._destroyHook(true); + this._instance.jQuery.unbind(this._instance.nameSpace).off(this._instance.nameSpace, '.aciTreeButton').off(this._instance.nameSpace, '.aciTreeLine'); + this._instance.jQuery.removeClass('aciTree' + this._instance.index + ' aciTreeLoad').removeAttr('role aria-busy'); + this._private.locked = false; + // call the parent + this._super(); + this._trigger(null, 'destroyed', options); + this._success(null, options); + }), + fail: function() { + this._instance.jQuery.removeClass('aciTreeLoad'); + this._private.locked = false; + this._trigger(null, 'destroyfail', options); + this._fail(null, options); + } + })); + }, + _destroyHook: function(unloaded) { + // override this to do extra destroy before/after unload + } + + }; + + // extend the base aciPluginUi class and store into aciPluginClass.plugins + aciPluginClass.plugins.aciTree = aciPluginClass.aciPluginUi.extend(aciTree_core, 'aciTreeCore'); + + // publish the plugin & the default options + aciPluginClass.publish('aciTree', options); + + // for internal access + var domApi = aciPluginClass.plugins.aciTree_dom; + +})(jQuery, this); diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.debug.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.debug.js similarity index 100% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciTree.debug.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.debug.js diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.dom.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.dom.js similarity index 97% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciTree.dom.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.dom.js index ffafc7206..8eafa3627 100755 --- a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.dom.js +++ b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.dom.js @@ -1,660 +1,660 @@ - -/* - * aciTree jQuery Plugin v4.5.0-rc.7 - * http://acoderinsights.ro - * - * Copyright (c) 2014 Dragos Ursu - * Dual licensed under the MIT or GPL Version 2 licenses. - * - * Require jQuery Library >= v1.9.0 http://jquery.com - * + aciPlugin >= v1.5.1 https://github.com/dragosu/jquery-aciPlugin - */ - -/* - * The aciTree low-level DOM functions. - * - * A collection of functions optimised for aciTree DOM structure. - * - * Need to be included before the aciTree core and after aciPlugin. - */ - -aciPluginClass.plugins.aciTree_dom = { - // get the UL container from a LI - // `node` must be valid LI DOM node - // can return NULL - container: function(node) { - var container = node.lastChild; - if (container && (container.nodeName == 'UL')) { - return container; - } - return null; - }, - // get the first children from a LI (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node - // can return NULL - firstChild: function(node, callback) { - var container = this.container(node); - if (container) { - var firstChild = container.firstChild; - if (callback) { - while (firstChild && !callback.call(this, firstChild)) { - firstChild = firstChild.nextSibling; - } - } - return firstChild; - } - return null; - }, - // get the last children from a LI (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node - // can return NULL - lastChild: function(node, callback) { - var container = this.container(node); - if (container) { - var lastChild = container.lastChild; - if (callback) { - while (lastChild && !callback.call(this, lastChild)) { - lastChild = lastChild.previousSibling; - } - } - return lastChild; - } - return null; - }, - // get the previous LI sibling (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node - // can return NULL - prev: function(node, callback) { - var previous = node.previousSibling; - if (callback) { - while (previous && !callback.call(this, previous)) { - previous = previous.previousSibling; - } - } - return previous; - }, - // get the next LI sibling (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node - // can return NULL - next: function(node, callback) { - var next = node.nextSibling; - if (callback) { - while (next && !callback.call(this, next)) { - next = next.nextSibling; - } - } - return next; - }, - // get the previous LI in tree order (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node - // can return NULL - prevAll: function(node, callback) { - var previous, lastChild, drillDown, match, prev, parent; - while (true) { - previous = this.prev(node); - if (previous) { - if (callback) { - match = callback.call(this, previous); - if (match === null) { - node = previous; - continue; - } - } - lastChild = this.lastChild(previous); - if (lastChild) { - if (callback && (callback.call(this, lastChild) === null)) { - node = lastChild; - continue; - } - prev = false; - while (drillDown = this.lastChild(lastChild)) { - lastChild = drillDown; - if (callback) { - match = callback.call(this, lastChild); - if (match === null) { - node = lastChild; - prev = true; - break; - } - } - } - if (prev) { - continue; - } - if (callback) { - match = callback.call(this, lastChild); - if (match) { - return lastChild; - } else if (match !== null) { - node = lastChild; - continue; - } - } else { - return lastChild; - } - } else { - if (!callback || match) { - return previous; - } else { - node = previous; - continue; - } - } - } - parent = this.parent(node); - if (parent) { - if (callback) { - match = callback.call(this, parent); - if (match) { - return parent; - } else { - node = parent; - } - } else { - return parent; - } - } else { - return null; - } - } - return null; - }, - // get the next LI in tree order (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node - // can return NULL - nextAll: function(node, callback) { - var firstChild, match, next, parent, child; - while (true) { - firstChild = this.firstChild(node); - if (firstChild) { - if (callback) { - match = callback.call(this, firstChild); - if (match) { - return firstChild; - } else { - node = firstChild; - if (match !== null) { - continue; - } - } - } else { - return firstChild; - } - } - while (true) { - next = this.next(node); - if (next) { - if (callback) { - match = callback.call(this, next); - if (match) { - return next; - } else { - node = next; - if (match !== null) { - break; - } else { - continue; - } - } - } else { - return next; - } - } else { - parent = node; - child = null; - while (parent = this.parent(parent)) { - next = this.next(parent); - if (next) { - if (callback) { - match = callback.call(this, next); - if (match) { - return next; - } else { - node = next; - if (match !== null) { - child = true; - } else { - child = false; - } - break; - } - } else { - return next; - } - } - } - if (child !== null) { - if (child) { - break; - } else { - continue; - } - } - return null; - } - } - } - return null; - }, - // get the first LI in tree order (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node - // can return NULL - first: function(node, callback) { - var container = this.container(node); - if (container) { - var firstChild = container.firstChild; - if (firstChild) { - if (callback && !callback.call(this, firstChild)) { - return this.nextAll(firstChild, callback); - } - return firstChild; - } - } - return null; - }, - // get the last LI in tree order (with filtering) - // `node` must be valid LI DOM node - // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node - // can return NULL - last: function(node, callback) { - var container = this.container(node); - if (container) { - var lastChild = container.lastChild; - if (lastChild) { - if (callback && (callback.call(this, lastChild) === null)) { - return this.prevAll(lastChild, callback); - } else { - var drillDown; - while (drillDown = this.lastChild(lastChild)) { - lastChild = drillDown; - } - if (callback && !callback.call(this, lastChild)) { - return this.prevAll(lastChild, callback); - } - return lastChild; - } - } - } - return null; - }, - // get the children LI from the node - // `node` must be valid LI DOM node - // `drillDown` if TRUE all children are returned - // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node - children: function(node, drillDown, callback) { - var children = [], levels = [], match, next, skip; - var firstChild = this.firstChild(node); - if (firstChild) { - while (true) { - skip = false; - do { - if (callback) { - match = callback.call(this, firstChild); - if (match) { - children.push(firstChild); - } - if (drillDown && (match !== null)) { - next = this.firstChild(firstChild); - if (next) { - levels.push(firstChild); - firstChild = next; - skip = true; - break; - } - } - } else { - children.push(firstChild); - if (drillDown) { - next = this.firstChild(firstChild); - if (next) { - levels.push(firstChild); - firstChild = next; - skip = true; - break; - } - } - } - } while (firstChild = firstChild.nextSibling); - if (!skip) { - while (firstChild = levels.pop()) { - firstChild = firstChild.nextSibling; - if (firstChild) { - break; - } - } - if (!firstChild) { - break; - } - } - } - } - return children; - }, - // get a children from the node - // `node` must be valid DOM node - // `callback` can return FALSE to skip a node or NULL to stop the search - // can return NULL - childrenTill: function(node, callback) { - var levels = [], match, next, skip; - var firstChild = node.firstChild; - if (firstChild) { - while (true) { - skip = false; - do { - match = callback.call(this, firstChild); - if (match) { - return firstChild; - } else if (match === null) { - return null; - } - next = firstChild.firstChild; - if (next) { - levels.push(firstChild); - firstChild = next; - skip = true; - break; - } - } while (firstChild = firstChild.nextSibling); - if (!skip) { - while (firstChild = levels.pop()) { - firstChild = firstChild.nextSibling; - if (firstChild) { - break; - } - } - if (!firstChild) { - break; - } - } - } - } - return null; - }, - // get a children from the node having a class - // `node` must be valid DOM node - // `className` String or Array to check for - // can return NULL - childrenByClass: function(node, className) { - if (node.getElementsByClassName) { - var list = node.getElementsByClassName(className instanceof Array ? className.join(' ') : className); - return list ? list[0] : null; - } else { - return this.childrenTill(node, function(node) { - return this.hasClass(node, className); - }); - } - }, - // get the parent LI from the children LI - // `node` must be valid LI DOM node - // can return NULL - parent: function(node) { - var parent = node.parentNode.parentNode; - if (parent && (parent.nodeName == 'LI')) { - return parent; - } - return null; - }, - // get the parent LI from any children - // `node` must be valid children of a LI DOM node - // can return NULL - parentFrom: function(node) { - while (node.nodeName != 'LI') { - node = node.parentNode; - if (!node) { - return null; - } - } - return node; - }, - // get a parent from the node - // `node` must be valid DOM node - // `callback` can return FALSE to skip a node or NULL to stop the search - // can return NULL - parentTill: function(node, callback) { - var match; - while (node = node.parentNode) { - match = callback.call(this, node); - if (match) { - return node; - } else if (match === null) { - return null; - } - } - return null; - }, - // get a parent from the node having a class - // `node` must be valid DOM node - // `className` String or Array to check for - // can return NULL - parentByClass: function(node, className) { - return this.parentTill(node, function(node) { - return this.hasClass(node, className); - }); - }, - // test if node has class(es) - // `className` String or Array to check for - // `withOut` String or Array to exclude with - hasClass: function(node, className, withOut) { - var oldClass = ' ' + node.className + ' '; - if (withOut instanceof Array) { - for (var i = 0; i < withOut.length; i++) { - if (oldClass.indexOf(' ' + withOut[i] + ' ') != -1) { - return false; - } - } - } else { - if (withOut && oldClass.indexOf(' ' + withOut + ' ') != -1) { - return false; - } - } - if (className instanceof Array) { - for (var i = 0; i < className.length; i++) { - if (oldClass.indexOf(' ' + className[i] + ' ') == -1) { - return false; - } - } - } else { - if (className && oldClass.indexOf(' ' + className + ' ') == -1) { - return false; - } - } - return true; - }, - // filter nodes with class(es) - // `nodes` Array of DOM nodes - // @see `hasClass` - withClass: function(nodes, className, withOut) { - var filter = []; - for (var i = 0; i < nodes.length; i++) { - if (this.hasClass(nodes[i], className, withOut)) { - filter.push(nodes[i]); - } - } - return filter; - }, - // test if node has any class(es) - // `className` String or Array to check for (any class) - // `withOut` String or Array to exclude with - hasAnyClass: function(node, className, withOut) { - var oldClass = ' ' + node.className + ' '; - if (withOut instanceof Array) { - for (var i = 0; i < withOut.length; i++) { - if (oldClass.indexOf(' ' + withOut[i] + ' ') != -1) { - return false; - } - } - } else { - if (withOut && oldClass.indexOf(' ' + withOut + ' ') != -1) { - return false; - } - } - if (className instanceof Array) { - for (var i = 0; i < className.length; i++) { - if (oldClass.indexOf(' ' + className[i] + ' ') != -1) { - return true; - } - } - } else { - if (className && oldClass.indexOf(' ' + className + ' ') != -1) { - return true; - } - } - return false; - }, - // filter nodes with any class(es) - // `nodes` Array of DOM nodes - // @see `hasAnyClass` - withAnyClass: function(nodes, className, withOut) { - var filter = []; - for (var i = 0; i < nodes.length; i++) { - if (this.hasAnyClass(nodes[i], className, withOut)) { - filter.push(nodes[i]); - } - } - return filter; - }, - // add class(es) to node - // `node` must be valid DOM node - // `className` String or Array to add - // return TRUE if className changed - addClass: function(node, className) { - var oldClass = ' ' + node.className + ' ', append = ''; - if (className instanceof Array) { - for (var i = 0; i < className.length; i++) { - if (oldClass.indexOf(' ' + className[i] + ' ') == -1) { - append += ' ' + className[i]; - } - } - } else { - if (oldClass.indexOf(' ' + className + ' ') == -1) { - append += ' ' + className; - } - } - if (append) { - node.className = node.className + append; - return true; - } - return false; - }, - // add class(es) to nodes - // `nodes` Array of DOM nodes - // @see `addClass` - addListClass: function(nodes, className, callback) { - for (var i = 0; i < nodes.length; i++) { - this.addClass(nodes[i], className); - if (callback) { - callback.call(this, nodes[i]); - } - } - }, - // remove class(es) from node - // `node` must be valid DOM node - // `className` String or Array to remove - // return TRUE if className changed - removeClass: function(node, className) { - var oldClass = ' ' + node.className + ' '; - if (className instanceof Array) { - for (var i = 0; i < className.length; i++) { - oldClass = oldClass.replace(' ' + className[i] + ' ', ' '); - } - } else { - oldClass = oldClass.replace(' ' + className + ' ', ' '); - } - oldClass = oldClass.substr(1, oldClass.length - 2); - if (node.className != oldClass) { - node.className = oldClass; - return true; - } - return false; - }, - // remove class(es) from nodes - // `nodes` Array of DOM nodes - // @see `removeClass` - removeListClass: function(nodes, className, callback) { - for (var i = 0; i < nodes.length; i++) { - this.removeClass(nodes[i], className); - if (callback) { - callback.call(this, nodes[i]); - } - } - }, - // toggle node class(es) - // `node` must be valid DOM node - // `className` String or Array to toggle - // `add` TRUE to add them - // return TRUE if className changed - toggleClass: function(node, className, add) { - if (add) { - return this.addClass(node, className); - } else { - return this.removeClass(node, className); - } - }, - // toggle nodes class(es) - // `nodes` Array of DOM nodes - // @see `toggleClass` - toggleListClass: function(nodes, className, add, callback) { - for (var i = 0; i < nodes.length; i++) { - this.toggleClass(nodes[i], className, add); - if (callback) { - callback.call(this, nodes[i]); - } - } - }, - // add/remove and keep old class(es) - // `node` must be valid DOM node - // `addClass` String or Array to add - // `removeClass` String or Array to remove - // return TRUE if className changed - addRemoveClass: function(node, addClass, removeClass) { - var oldClass = ' ' + node.className + ' '; - if (removeClass) { - if (removeClass instanceof Array) { - for (var i = 0; i < removeClass.length; i++) { - oldClass = oldClass.replace(' ' + removeClass[i] + ' ', ' '); - } - } else { - oldClass = oldClass.replace(' ' + removeClass + ' ', ' '); - } - } - if (addClass) { - var append = ''; - if (addClass instanceof Array) { - for (var i = 0; i < addClass.length; i++) { - if (oldClass.indexOf(' ' + addClass[i] + ' ') == -1) { - append += addClass[i] + ' '; - } - } - } else { - if (oldClass.indexOf(' ' + addClass + ' ') == -1) { - append += addClass + ' '; - } - } - oldClass += append; - } - oldClass = oldClass.substr(1, oldClass.length - 2); - if (node.className != oldClass) { - node.className = oldClass; - return true; - } - return false; - }, - // add/remove and keep old class(es) - // `nodes` Array of DOM nodes - // @see `addRemoveClass` - addRemoveListClass: function(nodes, addClass, removeClass, callback) { - for (var i = 0; i < nodes.length; i++) { - this.addRemoveClass(nodes[i], addClass, removeClass); - if (callback) { - callback.call(this, nodes[i]); - } - } - } -}; + +/* + * aciTree jQuery Plugin v4.5.0-rc.7 + * http://acoderinsights.ro + * + * Copyright (c) 2014 Dragos Ursu + * Dual licensed under the MIT or GPL Version 2 licenses. + * + * Require jQuery Library >= v1.9.0 http://jquery.com + * + aciPlugin >= v1.5.1 https://github.com/dragosu/jquery-aciPlugin + */ + +/* + * The aciTree low-level DOM functions. + * + * A collection of functions optimised for aciTree DOM structure. + * + * Need to be included before the aciTree core and after aciPlugin. + */ + +aciPluginClass.plugins.aciTree_dom = { + // get the UL container from a LI + // `node` must be valid LI DOM node + // can return NULL + container: function(node) { + var container = node.lastChild; + if (container && (container.nodeName == 'UL')) { + return container; + } + return null; + }, + // get the first children from a LI (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node + // can return NULL + firstChild: function(node, callback) { + var container = this.container(node); + if (container) { + var firstChild = container.firstChild; + if (callback) { + while (firstChild && !callback.call(this, firstChild)) { + firstChild = firstChild.nextSibling; + } + } + return firstChild; + } + return null; + }, + // get the last children from a LI (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node + // can return NULL + lastChild: function(node, callback) { + var container = this.container(node); + if (container) { + var lastChild = container.lastChild; + if (callback) { + while (lastChild && !callback.call(this, lastChild)) { + lastChild = lastChild.previousSibling; + } + } + return lastChild; + } + return null; + }, + // get the previous LI sibling (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node + // can return NULL + prev: function(node, callback) { + var previous = node.previousSibling; + if (callback) { + while (previous && !callback.call(this, previous)) { + previous = previous.previousSibling; + } + } + return previous; + }, + // get the next LI sibling (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node + // can return NULL + next: function(node, callback) { + var next = node.nextSibling; + if (callback) { + while (next && !callback.call(this, next)) { + next = next.nextSibling; + } + } + return next; + }, + // get the previous LI in tree order (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node + // can return NULL + prevAll: function(node, callback) { + var previous, lastChild, drillDown, match, prev, parent; + while (true) { + previous = this.prev(node); + if (previous) { + if (callback) { + match = callback.call(this, previous); + if (match === null) { + node = previous; + continue; + } + } + lastChild = this.lastChild(previous); + if (lastChild) { + if (callback && (callback.call(this, lastChild) === null)) { + node = lastChild; + continue; + } + prev = false; + while (drillDown = this.lastChild(lastChild)) { + lastChild = drillDown; + if (callback) { + match = callback.call(this, lastChild); + if (match === null) { + node = lastChild; + prev = true; + break; + } + } + } + if (prev) { + continue; + } + if (callback) { + match = callback.call(this, lastChild); + if (match) { + return lastChild; + } else if (match !== null) { + node = lastChild; + continue; + } + } else { + return lastChild; + } + } else { + if (!callback || match) { + return previous; + } else { + node = previous; + continue; + } + } + } + parent = this.parent(node); + if (parent) { + if (callback) { + match = callback.call(this, parent); + if (match) { + return parent; + } else { + node = parent; + } + } else { + return parent; + } + } else { + return null; + } + } + return null; + }, + // get the next LI in tree order (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node + // can return NULL + nextAll: function(node, callback) { + var firstChild, match, next, parent, child; + while (true) { + firstChild = this.firstChild(node); + if (firstChild) { + if (callback) { + match = callback.call(this, firstChild); + if (match) { + return firstChild; + } else { + node = firstChild; + if (match !== null) { + continue; + } + } + } else { + return firstChild; + } + } + while (true) { + next = this.next(node); + if (next) { + if (callback) { + match = callback.call(this, next); + if (match) { + return next; + } else { + node = next; + if (match !== null) { + break; + } else { + continue; + } + } + } else { + return next; + } + } else { + parent = node; + child = null; + while (parent = this.parent(parent)) { + next = this.next(parent); + if (next) { + if (callback) { + match = callback.call(this, next); + if (match) { + return next; + } else { + node = next; + if (match !== null) { + child = true; + } else { + child = false; + } + break; + } + } else { + return next; + } + } + } + if (child !== null) { + if (child) { + break; + } else { + continue; + } + } + return null; + } + } + } + return null; + }, + // get the first LI in tree order (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node + // can return NULL + first: function(node, callback) { + var container = this.container(node); + if (container) { + var firstChild = container.firstChild; + if (firstChild) { + if (callback && !callback.call(this, firstChild)) { + return this.nextAll(firstChild, callback); + } + return firstChild; + } + } + return null; + }, + // get the last LI in tree order (with filtering) + // `node` must be valid LI DOM node + // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node + // can return NULL + last: function(node, callback) { + var container = this.container(node); + if (container) { + var lastChild = container.lastChild; + if (lastChild) { + if (callback && (callback.call(this, lastChild) === null)) { + return this.prevAll(lastChild, callback); + } else { + var drillDown; + while (drillDown = this.lastChild(lastChild)) { + lastChild = drillDown; + } + if (callback && !callback.call(this, lastChild)) { + return this.prevAll(lastChild, callback); + } + return lastChild; + } + } + } + return null; + }, + // get the children LI from the node + // `node` must be valid LI DOM node + // `drillDown` if TRUE all children are returned + // `callback` can return FALSE to skip a node or NULL to prevent drill down/skip the node + children: function(node, drillDown, callback) { + var children = [], levels = [], match, next, skip; + var firstChild = this.firstChild(node); + if (firstChild) { + while (true) { + skip = false; + do { + if (callback) { + match = callback.call(this, firstChild); + if (match) { + children.push(firstChild); + } + if (drillDown && (match !== null)) { + next = this.firstChild(firstChild); + if (next) { + levels.push(firstChild); + firstChild = next; + skip = true; + break; + } + } + } else { + children.push(firstChild); + if (drillDown) { + next = this.firstChild(firstChild); + if (next) { + levels.push(firstChild); + firstChild = next; + skip = true; + break; + } + } + } + } while (firstChild = firstChild.nextSibling); + if (!skip) { + while (firstChild = levels.pop()) { + firstChild = firstChild.nextSibling; + if (firstChild) { + break; + } + } + if (!firstChild) { + break; + } + } + } + } + return children; + }, + // get a children from the node + // `node` must be valid DOM node + // `callback` can return FALSE to skip a node or NULL to stop the search + // can return NULL + childrenTill: function(node, callback) { + var levels = [], match, next, skip; + var firstChild = node.firstChild; + if (firstChild) { + while (true) { + skip = false; + do { + match = callback.call(this, firstChild); + if (match) { + return firstChild; + } else if (match === null) { + return null; + } + next = firstChild.firstChild; + if (next) { + levels.push(firstChild); + firstChild = next; + skip = true; + break; + } + } while (firstChild = firstChild.nextSibling); + if (!skip) { + while (firstChild = levels.pop()) { + firstChild = firstChild.nextSibling; + if (firstChild) { + break; + } + } + if (!firstChild) { + break; + } + } + } + } + return null; + }, + // get a children from the node having a class + // `node` must be valid DOM node + // `className` String or Array to check for + // can return NULL + childrenByClass: function(node, className) { + if (node.getElementsByClassName) { + var list = node.getElementsByClassName(className instanceof Array ? className.join(' ') : className); + return list ? list[0] : null; + } else { + return this.childrenTill(node, function(node) { + return this.hasClass(node, className); + }); + } + }, + // get the parent LI from the children LI + // `node` must be valid LI DOM node + // can return NULL + parent: function(node) { + var parent = node.parentNode.parentNode; + if (parent && (parent.nodeName == 'LI')) { + return parent; + } + return null; + }, + // get the parent LI from any children + // `node` must be valid children of a LI DOM node + // can return NULL + parentFrom: function(node) { + while (node.nodeName != 'LI') { + node = node.parentNode; + if (!node) { + return null; + } + } + return node; + }, + // get a parent from the node + // `node` must be valid DOM node + // `callback` can return FALSE to skip a node or NULL to stop the search + // can return NULL + parentTill: function(node, callback) { + var match; + while (node = node.parentNode) { + match = callback.call(this, node); + if (match) { + return node; + } else if (match === null) { + return null; + } + } + return null; + }, + // get a parent from the node having a class + // `node` must be valid DOM node + // `className` String or Array to check for + // can return NULL + parentByClass: function(node, className) { + return this.parentTill(node, function(node) { + return this.hasClass(node, className); + }); + }, + // test if node has class(es) + // `className` String or Array to check for + // `withOut` String or Array to exclude with + hasClass: function(node, className, withOut) { + var oldClass = ' ' + node.className + ' '; + if (withOut instanceof Array) { + for (var i = 0; i < withOut.length; i++) { + if (oldClass.indexOf(' ' + withOut[i] + ' ') != -1) { + return false; + } + } + } else { + if (withOut && oldClass.indexOf(' ' + withOut + ' ') != -1) { + return false; + } + } + if (className instanceof Array) { + for (var i = 0; i < className.length; i++) { + if (oldClass.indexOf(' ' + className[i] + ' ') == -1) { + return false; + } + } + } else { + if (className && oldClass.indexOf(' ' + className + ' ') == -1) { + return false; + } + } + return true; + }, + // filter nodes with class(es) + // `nodes` Array of DOM nodes + // @see `hasClass` + withClass: function(nodes, className, withOut) { + var filter = []; + for (var i = 0; i < nodes.length; i++) { + if (this.hasClass(nodes[i], className, withOut)) { + filter.push(nodes[i]); + } + } + return filter; + }, + // test if node has any class(es) + // `className` String or Array to check for (any class) + // `withOut` String or Array to exclude with + hasAnyClass: function(node, className, withOut) { + var oldClass = ' ' + node.className + ' '; + if (withOut instanceof Array) { + for (var i = 0; i < withOut.length; i++) { + if (oldClass.indexOf(' ' + withOut[i] + ' ') != -1) { + return false; + } + } + } else { + if (withOut && oldClass.indexOf(' ' + withOut + ' ') != -1) { + return false; + } + } + if (className instanceof Array) { + for (var i = 0; i < className.length; i++) { + if (oldClass.indexOf(' ' + className[i] + ' ') != -1) { + return true; + } + } + } else { + if (className && oldClass.indexOf(' ' + className + ' ') != -1) { + return true; + } + } + return false; + }, + // filter nodes with any class(es) + // `nodes` Array of DOM nodes + // @see `hasAnyClass` + withAnyClass: function(nodes, className, withOut) { + var filter = []; + for (var i = 0; i < nodes.length; i++) { + if (this.hasAnyClass(nodes[i], className, withOut)) { + filter.push(nodes[i]); + } + } + return filter; + }, + // add class(es) to node + // `node` must be valid DOM node + // `className` String or Array to add + // return TRUE if className changed + addClass: function(node, className) { + var oldClass = ' ' + node.className + ' ', append = ''; + if (className instanceof Array) { + for (var i = 0; i < className.length; i++) { + if (oldClass.indexOf(' ' + className[i] + ' ') == -1) { + append += ' ' + className[i]; + } + } + } else { + if (oldClass.indexOf(' ' + className + ' ') == -1) { + append += ' ' + className; + } + } + if (append) { + node.className = node.className + append; + return true; + } + return false; + }, + // add class(es) to nodes + // `nodes` Array of DOM nodes + // @see `addClass` + addListClass: function(nodes, className, callback) { + for (var i = 0; i < nodes.length; i++) { + this.addClass(nodes[i], className); + if (callback) { + callback.call(this, nodes[i]); + } + } + }, + // remove class(es) from node + // `node` must be valid DOM node + // `className` String or Array to remove + // return TRUE if className changed + removeClass: function(node, className) { + var oldClass = ' ' + node.className + ' '; + if (className instanceof Array) { + for (var i = 0; i < className.length; i++) { + oldClass = oldClass.replace(' ' + className[i] + ' ', ' '); + } + } else { + oldClass = oldClass.replace(' ' + className + ' ', ' '); + } + oldClass = oldClass.substr(1, oldClass.length - 2); + if (node.className != oldClass) { + node.className = oldClass; + return true; + } + return false; + }, + // remove class(es) from nodes + // `nodes` Array of DOM nodes + // @see `removeClass` + removeListClass: function(nodes, className, callback) { + for (var i = 0; i < nodes.length; i++) { + this.removeClass(nodes[i], className); + if (callback) { + callback.call(this, nodes[i]); + } + } + }, + // toggle node class(es) + // `node` must be valid DOM node + // `className` String or Array to toggle + // `add` TRUE to add them + // return TRUE if className changed + toggleClass: function(node, className, add) { + if (add) { + return this.addClass(node, className); + } else { + return this.removeClass(node, className); + } + }, + // toggle nodes class(es) + // `nodes` Array of DOM nodes + // @see `toggleClass` + toggleListClass: function(nodes, className, add, callback) { + for (var i = 0; i < nodes.length; i++) { + this.toggleClass(nodes[i], className, add); + if (callback) { + callback.call(this, nodes[i]); + } + } + }, + // add/remove and keep old class(es) + // `node` must be valid DOM node + // `addClass` String or Array to add + // `removeClass` String or Array to remove + // return TRUE if className changed + addRemoveClass: function(node, addClass, removeClass) { + var oldClass = ' ' + node.className + ' '; + if (removeClass) { + if (removeClass instanceof Array) { + for (var i = 0; i < removeClass.length; i++) { + oldClass = oldClass.replace(' ' + removeClass[i] + ' ', ' '); + } + } else { + oldClass = oldClass.replace(' ' + removeClass + ' ', ' '); + } + } + if (addClass) { + var append = ''; + if (addClass instanceof Array) { + for (var i = 0; i < addClass.length; i++) { + if (oldClass.indexOf(' ' + addClass[i] + ' ') == -1) { + append += addClass[i] + ' '; + } + } + } else { + if (oldClass.indexOf(' ' + addClass + ' ') == -1) { + append += addClass + ' '; + } + } + oldClass += append; + } + oldClass = oldClass.substr(1, oldClass.length - 2); + if (node.className != oldClass) { + node.className = oldClass; + return true; + } + return false; + }, + // add/remove and keep old class(es) + // `nodes` Array of DOM nodes + // @see `addRemoveClass` + addRemoveListClass: function(nodes, addClass, removeClass, callback) { + for (var i = 0; i < nodes.length; i++) { + this.addRemoveClass(nodes[i], addClass, removeClass); + if (callback) { + callback.call(this, nodes[i]); + } + } + } +}; diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.editable.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.editable.js similarity index 100% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciTree.editable.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.editable.js diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.hash.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.hash.js similarity index 100% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciTree.hash.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.hash.js diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.js similarity index 100% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciTree.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.js diff --git a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.min.js b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.min.js similarity index 99% rename from web/pgadmin/browser/static/js/aciTree/jquery.aciTree.min.js rename to web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.min.js index b00b953b4..d849fa596 100755 --- a/web/pgadmin/browser/static/js/aciTree/jquery.aciTree.min.js +++ b/web/pgadmin/browser/static/vendor/aciTree/jquery.aciTree.min.js @@ -1,44 +1,44 @@ - -/* - * aciTree jQuery Plugin v4.5.0-rc.7 - * http://acoderinsights.ro - * - * Copyright (c) 2014 Dragos Ursu - * Dual licensed under the MIT or GPL Version 2 licenses. - * - * Require jQuery Library >= v1.9.0 http://jquery.com - * + aciPlugin >= v1.5.1 https://github.com/dragosu/jquery-aciPlugin - */ - -// DOM -aciPluginClass.plugins.aciTree_dom={container:function(b){var a=b.lastChild;if(a&&(a.nodeName=="UL")){return a}return null},firstChild:function(b,d){var a=this.container(b);if(a){var c=a.firstChild;if(d){while(c&&!d.call(this,c)){c=c.nextSibling}}return c}return null},lastChild:function(c,d){var a=this.container(c);if(a){var b=a.lastChild;if(d){while(b&&!d.call(this,b)){b=b.previousSibling}}return b}return null},prev:function(b,c){var a=b.previousSibling;if(c){while(a&&!c.call(this,a)){a=a.previousSibling}}return a},next:function(b,c){var a=b.nextSibling;if(c){while(a&&!c.call(this,a)){a=a.nextSibling}}return a},prevAll:function(f,h){var e,d,g,a,c,b;while(true){e=this.prev(f);if(e){if(h){a=h.call(this,e);if(a===null){f=e;continue}}d=this.lastChild(e);if(d){if(h&&(h.call(this,d)===null)){f=d;continue}c=false;while(g=this.lastChild(d)){d=g;if(h){a=h.call(this,d);if(a===null){f=d;c=true;break}}}if(c){continue}if(h){a=h.call(this,d);if(a){return d}else{if(a!==null){f=d;continue}}}else{return d}}else{if(!h||a){return e}else{f=e;continue}}}b=this.parent(f);if(b){if(h){a=h.call(this,b);if(a){return b}else{f=b}}else{return b}}else{return null}}return null},nextAll:function(d,g){var e,a,c,b,f;while(true){e=this.firstChild(d);if(e){if(g){a=g.call(this,e);if(a){return e}else{d=e;if(a!==null){continue}}}else{return e}}while(true){c=this.next(d);if(c){if(g){a=g.call(this,c);if(a){return c}else{d=c;if(a!==null){break}else{continue}}}else{return c}}else{b=d;f=null;while(b=this.parent(b)){c=this.next(b);if(c){if(g){a=g.call(this,c);if(a){return c}else{d=c;if(a!==null){f=true}else{f=false}break}}else{return c}}}if(f!==null){if(f){break}else{continue}}return null}}}return null},first:function(b,d){var a=this.container(b);if(a){var c=a.firstChild;if(c){if(d&&!d.call(this,c)){return this.nextAll(c,d)}return c}}return null},last:function(c,e){var a=this.container(c);if(a){var b=a.lastChild;if(b){if(e&&(e.call(this,b)===null)){return this.prevAll(b,e)}else{var d;while(d=this.lastChild(b)){b=d}if(e&&!e.call(this,b)){return this.prevAll(b,e)}return b}}}return null},children:function(b,f,h){var a=[],i=[],d,c,g;var e=this.firstChild(b);if(e){while(true){g=false;do{if(h){d=h.call(this,e);if(d){a.push(e)}if(f&&(d!==null)){c=this.firstChild(e);if(c){i.push(e);e=c;g=true;break}}}else{a.push(e);if(f){c=this.firstChild(e);if(c){i.push(e);e=c;g=true;break}}}}while(e=e.nextSibling);if(!g){while(e=i.pop()){e=e.nextSibling;if(e){break}}if(!e){break}}}}return a},childrenTill:function(d,g){var e=[],a,b,c;var f=d.firstChild;if(f){while(true){c=false;do{a=g.call(this,f);if(a){return f}else{if(a===null){return null}}b=f.firstChild;if(b){e.push(f);f=b;c=true;break}}while(f=f.nextSibling);if(!c){while(f=e.pop()){f=f.nextSibling;if(f){break}}if(!f){break}}}}return null},childrenByClass:function(b,a){if(b.getElementsByClassName){var c=b.getElementsByClassName(a instanceof Array?a.join(" "):a);return c?c[0]:null}else{return this.childrenTill(b,function(d){return this.hasClass(d,a)})}},parent:function(b){var a=b.parentNode.parentNode;if(a&&(a.nodeName=="LI")){return a}return null},parentFrom:function(a){while(a.nodeName!="LI"){a=a.parentNode;if(!a){return null}}return a},parentTill:function(b,c){var a;while(b=b.parentNode){a=c.call(this,b);if(a){return b}else{if(a===null){return null}}}return null},parentByClass:function(b,a){return this.parentTill(b,function(c){return this.hasClass(c,a)})},hasClass:function(e,d,a){var b=" "+e.className+" ";if(a instanceof Array){for(var c=0;c=0)&&(lt){o--;return}var v,u=false;if(ps.interval){m=t+s.delay}p--;if(o<40){o++;k()}})}}o--};var j=[];var g=function(){for(var t=0;t<4;t++){j[t]=c.setInterval(function(){if(o<20){o++;k()}},10)}};var n=function(){for(var t=0;tj.bottom-l)){return false}return true}return false},openPath:function(i,h){h=this._options(h);if(this.isItem(i)){var g=this._instance.queue;this.inodes(this.path(i),false).each(function(){var j=d(this);g.push(function(k){this.open(j,this._inner(h));k()})});g.push(function(j){this._success(i,h);j()})}else{this._fail(i,h)}},isOpenPath:function(h){var g=this.parent(h);return g[0]?this.isOpen(g)&&a.hasClass(g[0],"aciTreeVisible"):true},_speedFraction:function(i,g,j){if((jl.bottom-n){var m=o.top-l.bottom+n+j;if(!g.unanimated&&this._instance.options.view){this._instance.jQuery.stop(true).animate({scrollTop:this._instance.jQuery.scrollTop()+m},{duration:this._speedFraction(this._instance.options.view.duration,l.bottom-l.top,m),easing:this._instance.options.view.easing,complete:this.proxy(function(){this._success(h,g)})})}else{this._instance.jQuery.stop(true)[0].scrollTop=this._instance.jQuery.scrollTop()+m;this._success(h,g)}}else{this._success(h,g)}}};if(this.hasParent(h)){this.openPath(h,this._inner(g,{success:i,fail:g.fail}))}else{i.apply(this)}}else{this._fail(h,g)}},hasParent:function(g){return this.parent(g).length>0},parent:function(g){return g?d(a.parent(g[0])):d([])},topParent:function(g){return this.path(g).eq(0)},_createBranch:function(l,i){var k=0;var j=function(o){var n;for(var p=0;p=k){this._success(l,i)}});var m=this.proxy(function(o,n){if(o){a.addRemoveClass(o[0],"aciTreeInode","aciTreeInodeMaybe")}this.append(o,this._inner(i,{success:function(s,q){var p;for(var r=0;r0){var j=k[h];if(a.hasClass(j,"aciTreOdd")){i=false}k=k.slice(h+1)}}this._coreDOM.oddEven(d(k),i)},_setOddEvenChildren:function(h){var i=a.hasClass(h[0],"aciTreeOdd");var g=this.children(h);this._coreDOM.oddEven(g,!i)},_itemHook:function(h,i,g,j){if(this._instance.options.itemHook){this._instance.options.itemHook.apply(this,arguments)}},_createItem:function(h,g){if(this._private.itemClone[g]){var r=this._private.itemClone[g].cloneNode(true);var u=r.firstChild;var n=u;for(var j=0;j0},disabled:function(g){return d(a.withClass(g.toArray(),"aciTreeDisabled"))},enable:function(h,g){g=this._options(g,"enabled","enablefail","wasenabled",h);if(this.isItem(h)){if(!this._trigger(h,"beforeenable",g)){this._fail(h,g);return}if(this.isDisabled(h)){a.removeClass(h[0],"aciTreeDisabled");this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},isEnabled:function(g){return g&&!a.hasClass(g[0],"aciTreeDisabled")},isEnabledPath:function(g){return a.withClass(this.path(g).toArray(),"aciTreeDisabled").length==0},enabled:function(g){return d(a.withClass(g.toArray(),null,"aciTreeDisabled"))},hide:function(i,g){g=this._options(g,"hidden","hidefail","washidden",i);if(this.isItem(i)){if(!this._trigger(i,"beforehide",g)){this._fail(i,g);return}if(this.isHidden(i)){this._notify(i,g)}else{a.addRemoveClass(i[0],"aciTreeHidden","aciTreeVisible");a.addRemoveClass(this.children(i,true).toArray(),"aciTreeHidden","aciTreeVisible");var h=this.parent(i);this._setFirstLast(h.length?h:null,i);this._setOddEven(i);this._success(i,g)}}else{this._fail(i,g)}},isHidden:function(g){return g&&a.hasClass(g[0],"aciTreeHidden")},isHiddenPath:function(h){var g=this.parent(h);return g[0]&&a.hasClass(g[0],"aciTreeHidden")},_updateHidden:function(g){if(this.isHiddenPath(g)){if(!this.isHidden(g)){a.addClass(g[0],"aciTreeHidden");this._updateVisible(g)}}else{this._updateVisible(g)}},hidden:function(g){return d(a.withClass(g.toArray(),"aciTreeHidden"))},_showHidden:function(h){var g=null;this.path(h).add(h).each(this.proxy(function(i){var j=d(i);if(this.isHidden(j)){a.removeClass(j[0],"aciTreeHidden");if(this.isOpenPath(j)&&(!g||this.isOpen(g))){a.addClass(j[0],"aciTreeVisible")}this._setFirstLast(g,this._getFirstLast(g))}g=j},true))},show:function(i,g){g=this._options(g,"shown","showfail","wasshown",i);if(this.isItem(i)){if(!this._trigger(i,"beforeshow",g)){this._fail(i,g);return}if(this.isHidden(i)){this._showHidden(i);var h=this.topParent(i);this._setOddEven(h.length?h:i);this._success(i,g)}else{this._notify(i,g)}}else{this._fail(i,g)}},isOpen:function(g){return g&&a.hasClass(g[0],"aciTreeOpen")},isClosed:function(g){return g&&!a.hasClass(g[0],"aciTreeOpen")},hasChildren:function(g,h){return this.children(g,false,h).length>0},hasSiblings:function(g,h){return this.siblings(g,h).length>0},hasPrev:function(g,h){return this.prev(g,h).length>0},hasNext:function(g,h){return this.next(g,h).length>0},siblings:function(g,h){return g?d(a.children(g[0].parentNode.parentNode,false,function(i){return(i!=g[0])&&(h||!this.hasClass(i,"aciTreeHidden"))})):d([])},prev:function(g,h){return g?d(a.prev(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")})):d([])},next:function(g,h){return g?d(a.next(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")})):d([])},level:function(h){var i=-1;if(h){var g=h[0];while(a.hasClass(g,"aciTreeLi")){g=g.parentNode.parentNode;i++}}return i},getId:function(g){var h=this.itemData(g);return h?h.id:null},itemData:function(g){return g?g.data("itemData"+this._instance.nameSpace):null},setId:function(h,g){g=this._options(g,"idset","idfail","wasid",h);if(this.isItem(h)){if(!this._trigger(h,"beforeid",g)){this._fail(h,g);return}var i=this.itemData(h);g.oldId=i.id;if(g.id==g.oldId){this._notify(h,g)}else{i.id=g.id;this._success(h,g)}}else{this._fail(h,g)}},getIndex:function(j){if(j&&j[0]){if(c.Array.prototype.indexOf){return c.Array.prototype.indexOf.call(j[0].parentNode.childNodes,j[0])}else{var h=j[0].parentNode.childNodes;for(var g=0;g=j.length){j.last().after(i)}else{j.eq(g.index).before(i)}}var h=this.parent(i);this._setFirstLast(h.length?h:null,i.add([j[0],j.get(-1)]));this._setOddEven(h);this._success(i,g)}}else{this._fail(i,g)}},getLabel:function(g){var h=this.itemData(g);return h?h.label:null},isItem:function(g){return g&&a.hasClass(g[0],"aciTreeLi")},_animate:function(j,k,i,l){if(!j){j=this._instance.jQuery}if(!i){var h=k?this._instance.options.show:this._instance.options.hide;if(h){var g=a.container(j[0]);if(g){d(g).stop(true,true).animate(h.props,{duration:h.duration,easing:h.easing,complete:l?this.proxy(l):null})}else{if(l){l.apply(this)}}return}}d(a.container(j[0])).stop(true,true).toggle(k);if(l){l.apply(this)}},first:function(g,h){if(!g){g=this._instance.jQuery}return d(a.firstChild(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")}))},isFirst:function(h,i){if(h){var g=a.parent(h[0]);return this.first(g?d(g):null,i)[0]==h[0]}return false},last:function(g,h){if(!g){g=this._instance.jQuery}return d(a.lastChild(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")}))},isLast:function(h,i){if(h){var g=a.parent(h[0]);return this.last(g?d(g):null,i)[0]==h[0]}return false},isBusy:function(g){if(g){return a.hasClass(g[0],"aciTreeLoad")}else{return this._instance.queue.busy()}},_loading:function(g,h){if(g){a.toggleClass(g[0],"aciTreeLoad",h);if(h){g[0].firstChild.setAttribute("aria-busy",true)}else{g[0].firstChild.removeAttribute("aria-busy")}}else{if(h){this._loader(h)}}},_loader:function(g){if(g||this.isBusy()){if(!this._private.loaderInterval){this._private.loaderInterval=c.setInterval(this.proxy(function(){this._loader()}),this._instance.options.loaderDelay)}a.addClass(this._instance.jQuery[0],"aciTreeLoad");c.clearTimeout(this._private.loaderHide);this._private.loaderHide=c.setTimeout(this.proxy(function(){a.removeClass(this._instance.jQuery[0],"aciTreeLoad")}),this._instance.options.loaderDelay*2)}},isChildren:function(h,g){if(!h){h=this._instance.jQuery}return g&&(h.has(g).length>0)},isImmediateChildren:function(h,g){if(!h){h=this._instance.jQuery}return g&&h.children(".aciTreeUl").children(".aciTreeLi").is(g)},sameParent:function(i,g){if(i&&g){var j=this.parent(i);var h=this.parent(g);return(!j.length&&!h.length)||(j[0]==h[0])}return false},sameTopParent:function(i,g){if(i&&g){var j=this.topParent(i);var h=this.topParent(g);return(!j.length&&!h.length)||(j[0]==h[0])}return false},_serialize:function(g,i){var h=this.itemData(g);if(this.isInode(g)){h.inode=true;if(this.wasLoad(g)){if(h.hasOwnProperty("open")){h.open=this.isOpen(g)}else{if(this.isOpen(g)){h.open=true}}h.branch=[];this.children(g,false,true).each(this.proxy(function(j){var k=this._serialize(d(j),i);if(i){k=i.call(this,d(j),{},k)}else{k=this._instance.options.serialize.call(this,d(j),{},k)}if(k){h.branch.push(k)}},true));if(!h.branch.length){h.branch=null}}else{if(h.hasOwnProperty("open")){h.open=false}if(h.hasOwnProperty("branch")){h.branch=null}}}else{if(h.hasOwnProperty("inode")){h.inode=false}if(h.hasOwnProperty("open")){h.open=null}if(h.hasOwnProperty("branch")){h.branch=null}}if(h.hasOwnProperty("disabled")){h.disabled=this.isDisabled(g)}else{if(this.isDisabled(g)){h.disabled=true}}return h},serialize:function(g,j,k){if(typeof j=="object"){if(g){var i=this._serialize(g,k);if(k){i=k.call(this,g,{},i)}else{i=this._instance.options.serialize.call(this,g,{},i)}return i}else{var h=[];this.children(null,false,true).each(this.proxy(function(l){var m=this._serialize(d(l),k);if(k){m=k.call(this,d(l),{},m)}else{m=this._instance.options.serialize.call(this,d(l),{},m)}if(m){h.push(m)}},true));return h}}return""},destroy:function(g){g=this._options(g);if(!this.wasInit()){this._trigger(null,"notinit",g);this._fail(null,g);return}if(this.isLocked()){this._trigger(null,"locked",g);this._fail(null,g);return}if(!this._trigger(null,"beforedestroy",g)){this._trigger(null,"destroyfail",g);this._fail(null,g);return}this._private.locked=true;this._instance.jQuery.addClass("aciTreeLoad").attr("aria-busy",true);this._instance.queue.destroy();this._destroyHook(false);this.unload(null,this._inner(g,{success:this.proxy(function(){c.clearTimeout(this._private.loaderHide);c.clearInterval(this._private.loaderInterval);this._private.itemClone={};this._destroyHook(true);this._instance.jQuery.unbind(this._instance.nameSpace).off(this._instance.nameSpace,".aciTreeButton").off(this._instance.nameSpace,".aciTreeLine");this._instance.jQuery.removeClass("aciTree"+this._instance.index+" aciTreeLoad").removeAttr("role aria-busy");this._private.locked=false;this._super();this._trigger(null,"destroyed",g);this._success(null,g)}),fail:function(){this._instance.jQuery.removeClass("aciTreeLoad");this._private.locked=false;this._trigger(null,"destroyfail",g);this._fail(null,g)}}))},_destroyHook:function(g){}};aciPluginClass.plugins.aciTree=aciPluginClass.aciPluginUi.extend(e,"aciTreeCore");aciPluginClass.publish("aciTree",b);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); - -// utils -(function(e,d,f){var b={filterHook:function(h,g,i){return g.length?i.test(d.String(this.getLabel(h))):true}};var c={__extend:function(){e.extend(this._instance,{filter:new this._queue(this,this._instance.options.queue)});this._instance.filter.destroy();this._super()},branch:function(h,k,i){var g=this._instance.queue;var j=this.proxy(function(m,o,l){var n=l?this.next(m):this.first(m);if(n.length){if(this.isInode(n)){if(this.wasLoad(n)){g.push(function(p){o.call(this,n);j(n,o);j(n,o,true);p()})}else{if(i){this.ajaxLoad(n,{success:function(){o.call(this,n);j(n,o);j(n,o,true)},fail:function(){j(n,o,true)}})}else{g.push(function(p){o.call(this,n);j(n,o,true);p()})}}}else{g.push(function(p){o.call(this,n);j(n,o,true);p()})}}});j(h,k)},swap:function(i){i=this._options(i,null,"swapfail",null,null);var h=i.item1;var g=i.item2;if(this.isItem(h)&&this.isItem(g)&&!this.isChildren(h,g)&&!this.isChildren(g,h)&&(h[0]!=g[0])){if(!this._trigger(null,"beforeswap",i)){this._fail(null,i);return}var l=this.prev(h);if(l.length){if(g[0]==l[0]){g.before(h)}else{h.insertAfter(g);g.insertAfter(l)}}else{var k=this.next(h);if(k.length){if(g[0]==k[0]){g.after(h)}else{h.insertAfter(g);g.insertBefore(k)}}else{var j=h.parent();h.insertAfter(g);j.append(g)}}this._updateLevel(h);var j=this.parent(h);this._setFirstLast(j.length?j:null,h);this._updateHidden(h);this._updateLevel(g);j=this.parent(g);this._setFirstLast(j.length?j:null,g);this._updateHidden(g);this._setOddEven(h.add(g));this._trigger(null,"swapped",i);this._success(null,i)}else{this._fail(null,i)}},_updateItemLevel:function(n,h,k){a.addRemoveClass(n[0],"aciTreeLevel"+k,"aciTreeLevel"+h);var g=n[0].firstChild;g.setAttribute("aria-level",k+1);var m=a.childrenByClass(g,"aciTreeEntry");if(h0)&&(m!=n));o.total+=n;o.checked+=m}});var i={total:0,checked:0};g(j,i,k);var h=this.proxy(function(p,o,q){var m=this.parent(p);if(m.length){if(!o){var l=this._checkboxChildren(m);var n=this.checkboxes(l,true).length;var o=(n>0)&&(n!=l.length)}if(this.hasCheckbox(m)){if((q!==f)&&(this._instance.options.checkboxChain!==1)){this._checkboxDOM.check(m,o?true:q)}this._checkboxDOM.tristate(m,o);h(m,o,q)}else{if(this._instance.options.checkboxBreak){h(m)}else{h(m,o,q)}}}});h(j,f,k)},hasCheckbox:function(g){return g&&a.hasClass(g[0],"aciTreeCheckbox")},addCheckbox:function(h,g){g=this._options(g,"checkboxadded","addcheckboxfail","wascheckbox",h);if(this.isItem(h)){if(!this._trigger(h,"beforeaddcheckbox",g)){this._fail(h,g);return}if(this.hasCheckbox(h)){this._notify(h,g)}else{var i=function(){this._checkboxDOM.add(h,{});this._success(h,g)};if(this.extRadio&&this.hasRadio(h)){this.removeRadio(h,this._inner(g,{success:i,fail:g.fail}))}else{i.apply(this)}}}else{this._fail(h,g)}},removeCheckbox:function(h,g){g=this._options(g,"checkboxremoved","removecheckboxfail","notcheckbox",h);if(this.isItem(h)){if(!this._trigger(h,"beforeremovecheckbox",g)){this._fail(h,g);return}if(this.hasCheckbox(h)){this._checkboxDOM.remove(h);this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},isChecked:function(g){if(this.hasCheckbox(g)){return a.hasClass(g[0],"aciTreeChecked")}if(this._super){return this._super(g)}return false},check:function(h,g){if(this.extCheckbox&&this.hasCheckbox(h)){g=this._options(g,"checked","checkfail","waschecked",h);if(!this._trigger(h,"beforecheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._notify(h,g)}else{this._checkboxDOM.check(h,true);if(this._instance.options.checkboxChain!==false){this._checkboxUpdate(h,true)}this._success(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"checkfail",g);this._fail(h,g)}}},uncheck:function(h,g){if(this.extCheckbox&&this.hasCheckbox(h)){g=this._options(g,"unchecked","uncheckfail","notchecked",h);if(!this._trigger(h,"beforeuncheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._checkboxDOM.check(h,false);if(this._instance.options.checkboxChain!==false){this._checkboxUpdate(h,false)}this._success(h,g)}else{this._notify(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"uncheckfail",g);this._fail(h,g)}}},checkboxes:function(g,h){if(h!==f){return e(a.withClass(g.toArray(),h?["aciTreeCheckbox","aciTreeChecked"]:"aciTreeCheckbox",h?null:"aciTreeChecked"))}return e(a.withClass(g.toArray(),"aciTreeCheckbox"))},_serialize:function(g,i){var h=this._super(g,i);if(h&&this.extCheckbox()){if(h.hasOwnProperty("checkbox")){h.checkbox=this.hasCheckbox(g);h.checked=this.isChecked(g)}else{if(this.hasCheckbox(g)){if(this.extRadio&&this.extRadio()){h.checkbox=true}h.checked=this.isChecked(g)}}}return h},serialize:function(h,j,k){if(j=="checkbox"){var i="";var g=this.children(h,true,true);this.checkboxes(g,true).each(this.proxy(function(l){var m=e(l);if(k){i+=k.call(this,m,j,this.getId(m))}else{i+=this._instance.options.serialize.call(this,m,j,this.getId(m))}},true));return i}return this._super(h,j,k)},isTristate:function(g){return g&&a.hasClass(g[0],"aciTreeTristate")},tristate:function(g){return e(a.withClass(g.toArray(),"aciTreeTristate"))},extCheckbox:function(){return this._instance.options.checkbox},option:function(g,h){if(this.wasInit()&&!this.isLocked()){if((g=="checkbox")&&(h!=this.extCheckbox())){if(h){this._checkboxInit()}else{this._checkboxDone()}}}this._super(g,h)},_checkboxDone:function(g){this._instance.jQuery.unbind(this._private.nameSpace);this._instance.jQuery.off(this._private.nameSpace,".aciTreeItem");if(!g){this.checkboxes(this.children(null,true,true)).each(this.proxy(function(h){this.removeCheckbox(e(h))},true))}},_destroyHook:function(g){if(g){this._checkboxDone(true)}this._super(g)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(b,"aciTreeCheckbox");aciPluginClass.defaults("aciTree",c);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); - -// radio (works best with selectable) -(function(e,c,f){var b={radio:false,radioChain:true,radioBreak:true,radioClick:false};var d={_radioInit:function(){this._instance.jQuery.bind("acitree"+this._private.nameSpace,function(k,i,j,g,h){switch(g){case"loaded":if(j){i._radioLoad(j)}break}}).bind("keydown"+this._private.nameSpace,this.proxy(function(h){switch(h.which){case 32:if(this.extSelectable&&this.extSelectable()&&!h.ctrlKey){var g=this.focused();if(this.hasRadio(g)&&this.isEnabled(g)){if(!this.isChecked(g)){this.check(g)}h.stopImmediatePropagation();h.preventDefault()}}break}})).on("click"+this._private.nameSpace,".aciTreeItem",this.proxy(function(h){if(!this._instance.options.radioClick||e(h.target).is(".aciTreeCheck")){var g=this.itemFrom(h.target);if(this.hasRadio(g)&&this.isEnabled(g)&&(!this.extSelectable||!this.extSelectable()||(!h.ctrlKey&&!h.shiftKey))){if(!this.isChecked(g)){this.check(g)}h.preventDefault()}}}))},_initHook:function(){if(this.extRadio()){this._radioInit()}this._super()},_itemHook:function(h,i,g,k){if(this.extRadio()){var j=this.extCheckbox&&this.hasCheckbox(i);if(!j&&(g.radio||((g.radio===f)&&(!this.extCheckbox||!this.extCheckbox())))){this._radioDOM.add(i,g)}}this._super(h,i,g,k)},_radioDOM:{add:function(k,g){a.addClass(k[0],g.checked?["aciTreeRadio","aciTreeChecked"]:"aciTreeRadio");var l=a.childrenByClass(k[0].firstChild,"aciTreeText");var j=l.parentNode;var i=c.document.createElement("LABEL");var h=c.document.createElement("SPAN");h.className="aciTreeCheck";i.appendChild(h);i.appendChild(l);j.appendChild(i);k[0].firstChild.setAttribute("aria-checked",!!g.checked)},remove:function(i){a.removeClass(i[0],["aciTreeRadio","aciTreeChecked"]);var j=a.childrenByClass(i[0].firstChild,"aciTreeText");var g=j.parentNode;var h=g.parentNode;h.replaceChild(j,g);i[0].firstChild.removeAttribute("aria-checked")},check:function(g,h){a.toggleListClass(g.toArray(),"aciTreeChecked",h,function(i){i.firstChild.setAttribute("aria-checked",h)})}},_radioLoad:function(g){if(!this._instance.options.radioChain){return}if(this.hasRadio(g)){if(this.isChecked(g)){if(!this.radios(this.children(g,false,true),true).length){this._radioUpdate(g,true)}}else{this._radioUpdate(g)}}},_radioChildren:function(h){if(this._instance.options.radioBreak){var i=[];var j=this.proxy(function(l){var k=this.children(l,false,true);k.each(this.proxy(function(m){var n=e(m);if(this.hasRadio(n)){i.push(m);j(n)}},true))});j(h);return e(i)}else{var g=this.children(h,true,true);return this.radios(g)}},_radioLevel:function(g){var h=[];g.each(this.proxy(function(j){var k=e(j);var i=this.children(k,false,true);i.each(this.proxy(function(l){var m=e(l);if(!this._instance.options.radioBreak||this.hasRadio(m)){h.push(l)}},true))},true));return e(h)},_radioUpdate:function(i,j){var k=this.proxy(function(l){var m=this.siblings(l,true);this._radioDOM.check(this.radios(m),false);m.each(this.proxy(function(n){var o=e(n);if(!this._instance.options.radioBreak||this.hasRadio(o)){this._radioDOM.check(this._radioChildren(o),false)}},true))});if(j){k(i)}var g=this.proxy(function(n){var l=this._radioLevel(n);var o=this.radios(l);if(o.length){var m=this.radios(l,true);if(m.length){m=m.first();this._radioDOM.check(m,true);k(m);g(m)}else{m=o.first();this._radioDOM.check(m,true);k(m);g(m)}}else{if(l.length){g(l)}}});if(j){g(i)}else{this._radioDOM.check(this._radioChildren(i),false)}var h=this.proxy(function(m){var l=this.parent(m);if(l.length){if(this.hasRadio(l)){if(j){k(l)}this._radioDOM.check(l,j);h(l)}else{if(!this._instance.options.radioBreak){if(j){k(l)}h(l)}}}});if(j!==f){h(i)}},hasRadio:function(g){return g&&a.hasClass(g[0],"aciTreeRadio")},addRadio:function(h,g){g=this._options(g,"radioadded","addradiofail","wasradio",h);if(this.isItem(h)){if(!this._trigger(h,"beforeaddradio",g)){this._fail(h,g);return}if(this.hasRadio(h)){this._notify(h,g)}else{var i=function(){this._radioDOM.add(h,{});this._success(h,g)};if(this.extCheckbox&&this.hasCheckbox(h)){this.removeCheckbox(h,this._inner(g,{success:i,fail:g.fail}))}else{i.apply(this)}}}else{this._fail(h,g)}},removeRadio:function(h,g){g=this._options(g,"radioremoved","removeradiofail","notradio",h);if(this.isItem(h)){if(!this._trigger(h,"beforeremoveradio",g)){this._fail(h,g);return}if(this.hasRadio(h)){this._radioDOM.remove(h);this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},isChecked:function(g){if(this.hasRadio(g)){return a.hasClass(g[0],"aciTreeChecked")}if(this._super){return this._super(g)}return false},check:function(h,g){if(this.extRadio&&this.hasRadio(h)){g=this._options(g,"checked","checkfail","waschecked",h);if(!this._trigger(h,"beforecheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._notify(h,g)}else{this._radioDOM.check(h,true);if(this._instance.options.radioChain){this._radioUpdate(h,true)}this._success(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"checkfail",g);this._fail(h,g)}}},uncheck:function(h,g){if(this.extRadio&&this.hasRadio(h)){g=this._options(g,"unchecked","uncheckfail","notchecked",h);if(!this._trigger(h,"beforeuncheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._radioDOM.check(h,false);if(this._instance.options.radioChain){this._radioUpdate(h,false)}this._success(h,g)}else{this._notify(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"uncheckfail",g);this._fail(h,g)}}},radios:function(g,h){if(h!==f){return e(a.withClass(g.toArray(),h?["aciTreeRadio","aciTreeChecked"]:"aciTreeRadio",h?null:"aciTreeChecked"))}return e(a.withClass(g.toArray(),"aciTreeRadio"))},_serialize:function(g,i){var h=this._super(g,i);if(h&&this.extRadio()){if(h.hasOwnProperty("radio")){h.radio=this.hasRadio(g);h.checked=this.isChecked(g)}else{if(this.hasRadio(g)){if(this.extCheckbox&&this.extCheckbox()){h.radio=true}h.checked=this.isChecked(g)}}}return h},serialize:function(h,j,k){if(j=="radio"){var i="";var g=this.children(h,true,true);this.radios(g,true).each(this.proxy(function(l){var m=e(l);if(k){i+=k.call(this,m,j,this.getId(m))}else{i+=this._instance.options.serialize.call(this,m,j,this.getId(m))}},true));return i}return this._super(h,j,k)},extRadio:function(){return this._instance.options.radio},option:function(g,h){if(this.wasInit()&&!this.isLocked()){if((g=="radio")&&(h!=this.extRadio())){if(h){this._radioInit()}else{this._radioDone()}}}this._super(g,h)},_radioDone:function(g){this._instance.jQuery.unbind(this._private.nameSpace);this._instance.jQuery.off(this._private.nameSpace,".aciTreeItem");if(!g){this.radios(this.children(null,true,true)).each(this.proxy(function(h){this.removeRadio(e(h))},true))}},_destroyHook:function(g){if(g){this._radioDone(true)}this._super(g)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(d,"aciTreeRadio");aciPluginClass.defaults("aciTree",b);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); - -// column -(function(e,c,f){var b={columnData:[]};var d={__extend:function(){e.extend(this._private,{propsIndex:{}});this._super()},_initHook:function(){if(this._instance.options.columnData.length){var j=false,h;for(var g in this._instance.options.columnData){h=this._instance.options.columnData[g];if(h.width!==f){this._updateCss(".aciTree.aciTree"+this._instance.index+" .aciTreeColumn"+g,"width:"+h.width+"px;");j=true}this._private.propsIndex[h.props]=g}if(j){this._updateWidth()}}this._super()},_getCss:function(m,p,o){var h="_getCss_"+c.String(m).replace(/[^a-z0-9_-]/ig,"_");var l=e("body").find("#"+h);if(!l.length){if(m instanceof Array){var g="",j="";for(var k in m){g+='
      ';j+="
      "}g+=j}else{var g='
      '}e("body").append('
      '+g+"
      ");l=e("body").find("#"+h)}var n=l.find("*:last").css(p);if(o){n=parseInt(n);if(isNaN(n)){n=null}}return n},_updateCss:function(i,g){var k="_updateCss_"+c.String(i).replace(">","_gt_").replace(/[^a-z0-9_-]/ig,"_");var h='";var j=e("body").find("#"+k);if(j.length){j.replaceWith(h)}else{e("body").prepend(h)}},getWidth:function(g){if((g>=0)&&(g=0)&&(g=0)&&(g=0)&&(h=0)&&(g.index=0)&&(gthis._instance.options.editDelay)&&(i');g.find("label").attr("for","aciTree-editable-tree-item");this._editableDOM.get(h).val(this.getLabel(h))},remove:function(i,h){var g=i.removeClass("aciTreeEdited").children(".aciTreeLine");g.find(".aciTreeText").html(this.getLabel(i));g.find("label").removeAttr("for")},get:function(g){return g?g.children(".aciTreeLine").find("input[type=text]"):d([])}},edited:function(){return this._instance.jQuery.find(".aciTreeEdited")},isEdited:function(g){return g&&a.hasClass(g[0],"aciTreeEdited")},_focusEdit:function(h){var i=this._editableDOM.get(h).focus().trigger("click")[0];if(i){if(typeof i.selectionStart=="number"){i.selectionStart=i.selectionEnd=i.value.length}else{if(i.createTextRange!==f){var g=i.createTextRange();g.collapse(false);g.select()}}}},setLabel:function(h,g){if(!this.extEditable()||!this.isEdited(h)){this._super(h,g)}},edit:function(h,g){g=this._options(g,"edit","editfail","wasedit",h);if(this.extEditable()&&this.isItem(h)){if(!this._trigger(h,"beforeedit",g)){this._fail(h,g);return}var i=this.edited();if(i.length){if(i[0]==h[0]){this._notify(h,g);return}else{this._editableDOM.remove.call(this,i);this._trigger(i,"endedit",g)}}this._editableDOM.add.call(this,h);this._focusEdit(h);this._success(h,g)}else{this._fail(h,g)}},endEdit:function(g){var h=this.edited();g=this._options(g,"edited","endeditfail","endedit",h);if(this.extEditable()&&this.isItem(h)){if(!this._trigger(h,"beforeendedit",g)){this._fail(h,g);return}var i=this._editableDOM.get(h).val();this._editableDOM.remove.call(this,h);if((g.save===f)||g.save){this.setLabel(h,{label:i});this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},extEditable:function(){return this._instance.options.editable},option:function(g,h){if(this.wasInit()&&!this.isLocked()){if((g=="editable")&&(h!=this.extEditable())){if(h){this._editableInit()}else{this._editableDone()}}}this._super(g,h)},_editableDone:function(){this._instance.jQuery.unbind(this._private.nameSpace);this._instance.jQuery.off(this._private.nameSpace,".aciTreeItem");this._instance.jQuery.off(this._private.nameSpace,"input[type=text]");var g=this.edited();if(g.length){this.endEdit()}},_destroyHook:function(g){if(g){this._editableDone()}this._super(g)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(e,"aciTreeEditable");aciPluginClass.defaults("aciTree",b);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); - -// persist (require utils extension & jStorage plugin) -(function(c,b,e){var a={persist:null};var d={__extend:function(){c.extend(this._private,{selectTimeout:null,focusTimeout:null,openTimeout:null});this._super()},_initPersist:function(){this._instance.jQuery.bind("acitree"+this._private.nameSpace,function(j,h,i,f,g){if(g.uid=="ui.persist"){return}switch(f){case"init":h._persistRestore();break;case"selected":case"deselected":h._persistLater("selected");break;case"focus":case"blur":h._persistLater("focused");break;case"opened":case"closed":h._persistLater("opened");break}})},_initHook:function(){if(this.extPersist()){this._initPersist()}this._super()},_persistLater:function(f){switch(f){case"selected":b.clearTimeout(this._private.selectTimeout);this._private.selectTimeout=b.setTimeout(this.proxy(function(){this._persistSelected()}),250);break;case"focused":b.clearTimeout(this._private.focusTimeout);this._private.focusTimeout=b.setTimeout(this.proxy(function(){this._persistFocused()}),250);break;case"opened":b.clearTimeout(this._private.openTimeout);this._private.openTimeout=b.setTimeout(this.proxy(function(){this._persistOpened()}),250);break}},_persistRestore:function(){var f=new this._queue(this,this._instance.options.queue);var g=new this._task(f,function(k){if(this.extSelectable&&this.extSelectable()){var m=c.jStorage.get("aciTree_"+this._instance.options.persist+"_selected");if(m instanceof Array){for(var l in m){(function(i){f.push(function(o){this.searchPath(null,{success:function(p){this.select(p,{uid:"ui.persist",success:function(){o()},fail:o,focus:false})},fail:o,path:i.split(";")})})})(m[l]);if(!this._instance.options.multiSelectable){break}}}var n=c.jStorage.get("aciTree_"+this._instance.options.persist+"_focused");if(n instanceof Array){for(var l in n){(function(i){f.push(function(o){this.searchPath(null,{success:function(p){this.focus(p,{uid:"ui.persist",success:function(q){this.setVisible(q,{center:true});o()},fail:o})},fail:o,path:i.split(";")})})})(n[l])}}}k()});var j=c.jStorage.get("aciTree_"+this._instance.options.persist+"_opened");if(j instanceof Array){for(var h in j){(function(i){g.push(function(k){this.searchPath(null,{success:function(l){this.open(l,{uid:"ui.persist",success:k,fail:k})},fail:k,path:i.split(";"),load:true})})})(j[h])}}},_persistSelected:function(){if(this.extSelectable&&this.extSelectable()){var f=[];this.selected().each(this.proxy(function(g){var h=c(g);var i=this.pathId(h);i.push(this.getId(h));f.push(i.join(";"))},true));c.jStorage.set("aciTree_"+this._instance.options.persist+"_selected",f)}},_persistFocused:function(){if(this.extSelectable&&this.extSelectable()){var f=[];this.focused().each(this.proxy(function(g){var h=c(g);var i=this.pathId(h);i.push(this.getId(h));f.push(i.join(";"))},true));c.jStorage.set("aciTree_"+this._instance.options.persist+"_focused",f)}},_persistOpened:function(){var f=[];this.inodes(this.children(null,true),true).each(this.proxy(function(g){var h=c(g);if(this.isOpenPath(h)){var i=this.pathId(h);i.push(this.getId(h));f.push(i.join(";"))}},true));c.jStorage.set("aciTree_"+this._instance.options.persist+"_opened",f)},isPersist:function(){if(this.extPersist()){var f=c.jStorage.get("aciTree_"+this._instance.options.persist+"_selected");if(f instanceof Array){return true}var g=c.jStorage.get("aciTree_"+this._instance.options.persist+"_focused");if(g instanceof Array){return true}var h=c.jStorage.get("aciTree_"+this._instance.options.persist+"_opened");if(h instanceof Array){return true}}return false},unpersist:function(){if(this.extPersist()){c.jStorage.deleteKey("aciTree_"+this._instance.options.persist+"_selected");c.jStorage.deleteKey("aciTree_"+this._instance.options.persist+"_focused");c.jStorage.deleteKey("aciTree_"+this._instance.options.persist+"_opened")}},extPersist:function(){return this._instance.options.persist},option:function(f,h){var g=this.extPersist();this._super(f,h);if(this.extPersist()!=g){if(g){this._donePersist()}else{this._initPersist()}}},_donePersist:function(){this._instance.jQuery.unbind(this._private.nameSpace)},_destroyHook:function(f){if(f){this._donePersist()}this._super(f)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(d,"aciTreePersist");aciPluginClass.defaults("aciTree",a)})(jQuery,this); - -// hash (require utils extension & aciFragment plugin) -(function(d,c,e){var a={selectHash:null,openHash:null};var b={__extend:function(){d.extend(this._private,{lastSelect:null,lastOpen:null,hashApi:null});this._super()},_hashInit:function(){this._instance.jQuery.aciFragment();this._private.hashApi=this._instance.jQuery.aciFragment("api");this._instance.jQuery.bind("acitree"+this._private.nameSpace,function(j,h,i,f,g){switch(f){case"init":h._hashRestore();break}}).bind("acifragment"+this._private.nameSpace,this.proxy(function(h,g,f){h.stopPropagation();this._hashRestore()}))},_initHook:function(){if(this.extHast()){this._hashInit()}this._super()},_hashRestore:function(){var f=this._instance.queue;var i=function(l){for(var k in l){(function(m){f.push(function(n){this.search(null,{success:function(o){this.open(o,{uid:"ui.hash",success:n,fail:n})},fail:n,search:m})})})(l[k])}};if(this._instance.options.openHash){var h=this._private.hashApi.get(this._instance.options.openHash,"");if(h.length&&(h!=this._private.lastOpen)){this._private.lastOpen=h;var j=h.split(";");i(j)}}if(this._instance.options.selectHash&&this.extSelectable&&this.extSelectable()){var h=this._private.hashApi.get(this._instance.options.selectHash,"");if(h.length&&(h!=this._private.lastSelect)){this._private.lastSelect=h;var j=h.split(";");var g=j.pop();i(j);if(g){f.push(function(k){this.search(null,{success:function(l){this.select(l,{uid:"ui.hash",success:function(m){this.setVisible(m,{center:true});k()},fail:k})},fail:k,search:g})})}}}},extHast:function(){return this._instance.options.selectHash||this._instance.options.openHash},option:function(f,g){var h=this.extHast();this._super(f,g);if(this.extHast()!=h){if(h){this._hashDone()}else{this._hashInit()}}},_hashDone:function(){this._instance.jQuery.unbind(this._private.nameSpace);this._private.hashApi=null;this._instance.jQuery.aciFragment("destroy")},_destroyHook:function(f){if(f){this._hashDone()}this._super(f)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(b,"aciTreeHash");aciPluginClass.defaults("aciTree",a)})(jQuery,this); - -// sortable (require utils extension & aciSortable plugin) -(function(d,c,e){var a={sortable:false,sortDelay:750,sortDrag:function(h,j,i,g){if(!i){var f=this.getLabel(h);if(this._private.dragDrop&&(this._private.dragDrop.length>1)){f+=" and #"+(this._private.dragDrop.length-1)+" more"}g.html(f)}},sortValid:function(j,h,k,g,l,i){var f=this.getLabel(j);if(this._private.dragDrop.length>1){f+=" and #"+(this._private.dragDrop.length-1)+" more"}if(g){i.html("move "+f+" to "+this.getLabel(this.itemFrom(h)));l.removeClass("aciTreeAfter aciTreeBefore")}else{if(k!==null){if(k){i.html("move "+f+" before "+this.getLabel(h));l.removeClass("aciTreeAfter").addClass("aciTreeBefore")}else{i.html("move "+f+" after "+this.getLabel(h));l.removeClass("aciTreeBefore").addClass("aciTreeAfter")}}}}};var b={__extend:function(){d.extend(this._private,{openTimeout:null,dragDrop:null});this._super()},_sortableInit:function(){this._instance.jQuery.aciSortable({container:".aciTreeUl",item:".aciTreeLi",child:50,childHolder:'
        ',childHolderSelector:".aciTreeChild",placeholder:'
      • ',placeholderSelector:".aciTreePlaceholder",helper:'
        ',helperSelector:".aciTreeHelper",before:this.proxy(function(f){if(!this._initDrag(f)){return false}if(!this._trigger(f,"beforedrag")){this._trigger(f,"dragfail");return false}return true}),start:this.proxy(function(g,h,f){this._instance.jQuery.addClass("aciTreeDragDrop");f.css({opacity:1}).html(this.getLabel(g))}),drag:this.proxy(function(g,i,h,f){if(!h){c.clearTimeout(this._private.openTimeout)}if(this._instance.options.sortDrag){this._instance.options.sortDrag.apply(this,arguments)}}),valid:this.proxy(function(j,h,k,g,l,i){c.clearTimeout(this._private.openTimeout);if(!this._checkDrop(j,h,k,g,l,i)){return false}var f=this._options({hover:h,before:k,isContainer:g,placeholder:l,helper:i});if(!this._trigger(j,"checkdrop",f)){return false}if(this.isInode(h)&&!this.isOpen(h)){this._private.openTimeout=c.setTimeout(this.proxy(function(){this.open(h)}),this._instance.options.sortDelay)}if(this._instance.options.sortValid){this._instance.options.sortValid.apply(this,arguments)}return true}),create:this.proxy(function(g,h,f){if(this.isLeaf(f)){f.append(g._instance.options.childHolder);return true}return false},true),end:this.proxy(function(q,k,p,g){c.clearTimeout(this._private.openTimeout);var r={placeholder:p,helper:g};r=this._options(r,"sorted","dropfail",null,q);if(p.parent().length){var i=this.prev(p,true);if(i.length){p.detach();var l=d(this._private.dragDrop.get().reverse());this._private.dragDrop=null;l.each(this.proxy(function(s){this.moveAfter(d(s),this._inner(r,{success:r.success,fail:r.fail,after:i}))},true))}else{var j=this.next(p,true);if(j.length){p.detach();var l=d(this._private.dragDrop.get().reverse());this._private.dragDrop=null;l.each(this.proxy(function(s){this.moveBefore(d(s),this._inner(r,{success:r.success,fail:r.fail,before:j}))},true))}else{var o=this.parent(p);var f=p.parent();p.detach();f.remove();if(this.isLeaf(o)){var l=this._private.dragDrop;this.asChild(l.eq(0),this._inner(r,{success:function(){this._success(q,r);this.open(o);l.filter(":gt(0)").each(this.proxy(function(s){this.moveAfter(d(s),this._inner(r,{success:r.success,fail:r.fail,after:this.last(o)}))},true))},fail:r.fail,parent:o}))}else{this._fail(q,r)}}}}else{this._fail(q,r)}this._private.dragDrop=null;if(g.parent().length){var n=d(c).scrollTop();var h=d(c).scrollLeft();var m=q[0].getBoundingClientRect();g.animate({top:m.top+n,left:m.left+h,opacity:0},{complete:function(){g.detach()}})}this._instance.jQuery.removeClass("aciTreeDragDrop")})})},_initHook:function(){if(this.extSortable()){this._sortableInit()}this._super()},_parents:function(l){var h=l.length,k,g,f=[];for(var n=0;n= v1.9.0 http://jquery.com + * + aciPlugin >= v1.5.1 https://github.com/dragosu/jquery-aciPlugin + */ + +// DOM +aciPluginClass.plugins.aciTree_dom={container:function(b){var a=b.lastChild;if(a&&(a.nodeName=="UL")){return a}return null},firstChild:function(b,d){var a=this.container(b);if(a){var c=a.firstChild;if(d){while(c&&!d.call(this,c)){c=c.nextSibling}}return c}return null},lastChild:function(c,d){var a=this.container(c);if(a){var b=a.lastChild;if(d){while(b&&!d.call(this,b)){b=b.previousSibling}}return b}return null},prev:function(b,c){var a=b.previousSibling;if(c){while(a&&!c.call(this,a)){a=a.previousSibling}}return a},next:function(b,c){var a=b.nextSibling;if(c){while(a&&!c.call(this,a)){a=a.nextSibling}}return a},prevAll:function(f,h){var e,d,g,a,c,b;while(true){e=this.prev(f);if(e){if(h){a=h.call(this,e);if(a===null){f=e;continue}}d=this.lastChild(e);if(d){if(h&&(h.call(this,d)===null)){f=d;continue}c=false;while(g=this.lastChild(d)){d=g;if(h){a=h.call(this,d);if(a===null){f=d;c=true;break}}}if(c){continue}if(h){a=h.call(this,d);if(a){return d}else{if(a!==null){f=d;continue}}}else{return d}}else{if(!h||a){return e}else{f=e;continue}}}b=this.parent(f);if(b){if(h){a=h.call(this,b);if(a){return b}else{f=b}}else{return b}}else{return null}}return null},nextAll:function(d,g){var e,a,c,b,f;while(true){e=this.firstChild(d);if(e){if(g){a=g.call(this,e);if(a){return e}else{d=e;if(a!==null){continue}}}else{return e}}while(true){c=this.next(d);if(c){if(g){a=g.call(this,c);if(a){return c}else{d=c;if(a!==null){break}else{continue}}}else{return c}}else{b=d;f=null;while(b=this.parent(b)){c=this.next(b);if(c){if(g){a=g.call(this,c);if(a){return c}else{d=c;if(a!==null){f=true}else{f=false}break}}else{return c}}}if(f!==null){if(f){break}else{continue}}return null}}}return null},first:function(b,d){var a=this.container(b);if(a){var c=a.firstChild;if(c){if(d&&!d.call(this,c)){return this.nextAll(c,d)}return c}}return null},last:function(c,e){var a=this.container(c);if(a){var b=a.lastChild;if(b){if(e&&(e.call(this,b)===null)){return this.prevAll(b,e)}else{var d;while(d=this.lastChild(b)){b=d}if(e&&!e.call(this,b)){return this.prevAll(b,e)}return b}}}return null},children:function(b,f,h){var a=[],i=[],d,c,g;var e=this.firstChild(b);if(e){while(true){g=false;do{if(h){d=h.call(this,e);if(d){a.push(e)}if(f&&(d!==null)){c=this.firstChild(e);if(c){i.push(e);e=c;g=true;break}}}else{a.push(e);if(f){c=this.firstChild(e);if(c){i.push(e);e=c;g=true;break}}}}while(e=e.nextSibling);if(!g){while(e=i.pop()){e=e.nextSibling;if(e){break}}if(!e){break}}}}return a},childrenTill:function(d,g){var e=[],a,b,c;var f=d.firstChild;if(f){while(true){c=false;do{a=g.call(this,f);if(a){return f}else{if(a===null){return null}}b=f.firstChild;if(b){e.push(f);f=b;c=true;break}}while(f=f.nextSibling);if(!c){while(f=e.pop()){f=f.nextSibling;if(f){break}}if(!f){break}}}}return null},childrenByClass:function(b,a){if(b.getElementsByClassName){var c=b.getElementsByClassName(a instanceof Array?a.join(" "):a);return c?c[0]:null}else{return this.childrenTill(b,function(d){return this.hasClass(d,a)})}},parent:function(b){var a=b.parentNode.parentNode;if(a&&(a.nodeName=="LI")){return a}return null},parentFrom:function(a){while(a.nodeName!="LI"){a=a.parentNode;if(!a){return null}}return a},parentTill:function(b,c){var a;while(b=b.parentNode){a=c.call(this,b);if(a){return b}else{if(a===null){return null}}}return null},parentByClass:function(b,a){return this.parentTill(b,function(c){return this.hasClass(c,a)})},hasClass:function(e,d,a){var b=" "+e.className+" ";if(a instanceof Array){for(var c=0;c=0)&&(lt){o--;return}var v,u=false;if(ps.interval){m=t+s.delay}p--;if(o<40){o++;k()}})}}o--};var j=[];var g=function(){for(var t=0;t<4;t++){j[t]=c.setInterval(function(){if(o<20){o++;k()}},10)}};var n=function(){for(var t=0;tj.bottom-l)){return false}return true}return false},openPath:function(i,h){h=this._options(h);if(this.isItem(i)){var g=this._instance.queue;this.inodes(this.path(i),false).each(function(){var j=d(this);g.push(function(k){this.open(j,this._inner(h));k()})});g.push(function(j){this._success(i,h);j()})}else{this._fail(i,h)}},isOpenPath:function(h){var g=this.parent(h);return g[0]?this.isOpen(g)&&a.hasClass(g[0],"aciTreeVisible"):true},_speedFraction:function(i,g,j){if((jl.bottom-n){var m=o.top-l.bottom+n+j;if(!g.unanimated&&this._instance.options.view){this._instance.jQuery.stop(true).animate({scrollTop:this._instance.jQuery.scrollTop()+m},{duration:this._speedFraction(this._instance.options.view.duration,l.bottom-l.top,m),easing:this._instance.options.view.easing,complete:this.proxy(function(){this._success(h,g)})})}else{this._instance.jQuery.stop(true)[0].scrollTop=this._instance.jQuery.scrollTop()+m;this._success(h,g)}}else{this._success(h,g)}}};if(this.hasParent(h)){this.openPath(h,this._inner(g,{success:i,fail:g.fail}))}else{i.apply(this)}}else{this._fail(h,g)}},hasParent:function(g){return this.parent(g).length>0},parent:function(g){return g?d(a.parent(g[0])):d([])},topParent:function(g){return this.path(g).eq(0)},_createBranch:function(l,i){var k=0;var j=function(o){var n;for(var p=0;p=k){this._success(l,i)}});var m=this.proxy(function(o,n){if(o){a.addRemoveClass(o[0],"aciTreeInode","aciTreeInodeMaybe")}this.append(o,this._inner(i,{success:function(s,q){var p;for(var r=0;r0){var j=k[h];if(a.hasClass(j,"aciTreOdd")){i=false}k=k.slice(h+1)}}this._coreDOM.oddEven(d(k),i)},_setOddEvenChildren:function(h){var i=a.hasClass(h[0],"aciTreeOdd");var g=this.children(h);this._coreDOM.oddEven(g,!i)},_itemHook:function(h,i,g,j){if(this._instance.options.itemHook){this._instance.options.itemHook.apply(this,arguments)}},_createItem:function(h,g){if(this._private.itemClone[g]){var r=this._private.itemClone[g].cloneNode(true);var u=r.firstChild;var n=u;for(var j=0;j0},disabled:function(g){return d(a.withClass(g.toArray(),"aciTreeDisabled"))},enable:function(h,g){g=this._options(g,"enabled","enablefail","wasenabled",h);if(this.isItem(h)){if(!this._trigger(h,"beforeenable",g)){this._fail(h,g);return}if(this.isDisabled(h)){a.removeClass(h[0],"aciTreeDisabled");this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},isEnabled:function(g){return g&&!a.hasClass(g[0],"aciTreeDisabled")},isEnabledPath:function(g){return a.withClass(this.path(g).toArray(),"aciTreeDisabled").length==0},enabled:function(g){return d(a.withClass(g.toArray(),null,"aciTreeDisabled"))},hide:function(i,g){g=this._options(g,"hidden","hidefail","washidden",i);if(this.isItem(i)){if(!this._trigger(i,"beforehide",g)){this._fail(i,g);return}if(this.isHidden(i)){this._notify(i,g)}else{a.addRemoveClass(i[0],"aciTreeHidden","aciTreeVisible");a.addRemoveClass(this.children(i,true).toArray(),"aciTreeHidden","aciTreeVisible");var h=this.parent(i);this._setFirstLast(h.length?h:null,i);this._setOddEven(i);this._success(i,g)}}else{this._fail(i,g)}},isHidden:function(g){return g&&a.hasClass(g[0],"aciTreeHidden")},isHiddenPath:function(h){var g=this.parent(h);return g[0]&&a.hasClass(g[0],"aciTreeHidden")},_updateHidden:function(g){if(this.isHiddenPath(g)){if(!this.isHidden(g)){a.addClass(g[0],"aciTreeHidden");this._updateVisible(g)}}else{this._updateVisible(g)}},hidden:function(g){return d(a.withClass(g.toArray(),"aciTreeHidden"))},_showHidden:function(h){var g=null;this.path(h).add(h).each(this.proxy(function(i){var j=d(i);if(this.isHidden(j)){a.removeClass(j[0],"aciTreeHidden");if(this.isOpenPath(j)&&(!g||this.isOpen(g))){a.addClass(j[0],"aciTreeVisible")}this._setFirstLast(g,this._getFirstLast(g))}g=j},true))},show:function(i,g){g=this._options(g,"shown","showfail","wasshown",i);if(this.isItem(i)){if(!this._trigger(i,"beforeshow",g)){this._fail(i,g);return}if(this.isHidden(i)){this._showHidden(i);var h=this.topParent(i);this._setOddEven(h.length?h:i);this._success(i,g)}else{this._notify(i,g)}}else{this._fail(i,g)}},isOpen:function(g){return g&&a.hasClass(g[0],"aciTreeOpen")},isClosed:function(g){return g&&!a.hasClass(g[0],"aciTreeOpen")},hasChildren:function(g,h){return this.children(g,false,h).length>0},hasSiblings:function(g,h){return this.siblings(g,h).length>0},hasPrev:function(g,h){return this.prev(g,h).length>0},hasNext:function(g,h){return this.next(g,h).length>0},siblings:function(g,h){return g?d(a.children(g[0].parentNode.parentNode,false,function(i){return(i!=g[0])&&(h||!this.hasClass(i,"aciTreeHidden"))})):d([])},prev:function(g,h){return g?d(a.prev(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")})):d([])},next:function(g,h){return g?d(a.next(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")})):d([])},level:function(h){var i=-1;if(h){var g=h[0];while(a.hasClass(g,"aciTreeLi")){g=g.parentNode.parentNode;i++}}return i},getId:function(g){var h=this.itemData(g);return h?h.id:null},itemData:function(g){return g?g.data("itemData"+this._instance.nameSpace):null},setId:function(h,g){g=this._options(g,"idset","idfail","wasid",h);if(this.isItem(h)){if(!this._trigger(h,"beforeid",g)){this._fail(h,g);return}var i=this.itemData(h);g.oldId=i.id;if(g.id==g.oldId){this._notify(h,g)}else{i.id=g.id;this._success(h,g)}}else{this._fail(h,g)}},getIndex:function(j){if(j&&j[0]){if(c.Array.prototype.indexOf){return c.Array.prototype.indexOf.call(j[0].parentNode.childNodes,j[0])}else{var h=j[0].parentNode.childNodes;for(var g=0;g=j.length){j.last().after(i)}else{j.eq(g.index).before(i)}}var h=this.parent(i);this._setFirstLast(h.length?h:null,i.add([j[0],j.get(-1)]));this._setOddEven(h);this._success(i,g)}}else{this._fail(i,g)}},getLabel:function(g){var h=this.itemData(g);return h?h.label:null},isItem:function(g){return g&&a.hasClass(g[0],"aciTreeLi")},_animate:function(j,k,i,l){if(!j){j=this._instance.jQuery}if(!i){var h=k?this._instance.options.show:this._instance.options.hide;if(h){var g=a.container(j[0]);if(g){d(g).stop(true,true).animate(h.props,{duration:h.duration,easing:h.easing,complete:l?this.proxy(l):null})}else{if(l){l.apply(this)}}return}}d(a.container(j[0])).stop(true,true).toggle(k);if(l){l.apply(this)}},first:function(g,h){if(!g){g=this._instance.jQuery}return d(a.firstChild(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")}))},isFirst:function(h,i){if(h){var g=a.parent(h[0]);return this.first(g?d(g):null,i)[0]==h[0]}return false},last:function(g,h){if(!g){g=this._instance.jQuery}return d(a.lastChild(g[0],h?null:function(i){return !this.hasClass(i,"aciTreeHidden")}))},isLast:function(h,i){if(h){var g=a.parent(h[0]);return this.last(g?d(g):null,i)[0]==h[0]}return false},isBusy:function(g){if(g){return a.hasClass(g[0],"aciTreeLoad")}else{return this._instance.queue.busy()}},_loading:function(g,h){if(g){a.toggleClass(g[0],"aciTreeLoad",h);if(h){g[0].firstChild.setAttribute("aria-busy",true)}else{g[0].firstChild.removeAttribute("aria-busy")}}else{if(h){this._loader(h)}}},_loader:function(g){if(g||this.isBusy()){if(!this._private.loaderInterval){this._private.loaderInterval=c.setInterval(this.proxy(function(){this._loader()}),this._instance.options.loaderDelay)}a.addClass(this._instance.jQuery[0],"aciTreeLoad");c.clearTimeout(this._private.loaderHide);this._private.loaderHide=c.setTimeout(this.proxy(function(){a.removeClass(this._instance.jQuery[0],"aciTreeLoad")}),this._instance.options.loaderDelay*2)}},isChildren:function(h,g){if(!h){h=this._instance.jQuery}return g&&(h.has(g).length>0)},isImmediateChildren:function(h,g){if(!h){h=this._instance.jQuery}return g&&h.children(".aciTreeUl").children(".aciTreeLi").is(g)},sameParent:function(i,g){if(i&&g){var j=this.parent(i);var h=this.parent(g);return(!j.length&&!h.length)||(j[0]==h[0])}return false},sameTopParent:function(i,g){if(i&&g){var j=this.topParent(i);var h=this.topParent(g);return(!j.length&&!h.length)||(j[0]==h[0])}return false},_serialize:function(g,i){var h=this.itemData(g);if(this.isInode(g)){h.inode=true;if(this.wasLoad(g)){if(h.hasOwnProperty("open")){h.open=this.isOpen(g)}else{if(this.isOpen(g)){h.open=true}}h.branch=[];this.children(g,false,true).each(this.proxy(function(j){var k=this._serialize(d(j),i);if(i){k=i.call(this,d(j),{},k)}else{k=this._instance.options.serialize.call(this,d(j),{},k)}if(k){h.branch.push(k)}},true));if(!h.branch.length){h.branch=null}}else{if(h.hasOwnProperty("open")){h.open=false}if(h.hasOwnProperty("branch")){h.branch=null}}}else{if(h.hasOwnProperty("inode")){h.inode=false}if(h.hasOwnProperty("open")){h.open=null}if(h.hasOwnProperty("branch")){h.branch=null}}if(h.hasOwnProperty("disabled")){h.disabled=this.isDisabled(g)}else{if(this.isDisabled(g)){h.disabled=true}}return h},serialize:function(g,j,k){if(typeof j=="object"){if(g){var i=this._serialize(g,k);if(k){i=k.call(this,g,{},i)}else{i=this._instance.options.serialize.call(this,g,{},i)}return i}else{var h=[];this.children(null,false,true).each(this.proxy(function(l){var m=this._serialize(d(l),k);if(k){m=k.call(this,d(l),{},m)}else{m=this._instance.options.serialize.call(this,d(l),{},m)}if(m){h.push(m)}},true));return h}}return""},destroy:function(g){g=this._options(g);if(!this.wasInit()){this._trigger(null,"notinit",g);this._fail(null,g);return}if(this.isLocked()){this._trigger(null,"locked",g);this._fail(null,g);return}if(!this._trigger(null,"beforedestroy",g)){this._trigger(null,"destroyfail",g);this._fail(null,g);return}this._private.locked=true;this._instance.jQuery.addClass("aciTreeLoad").attr("aria-busy",true);this._instance.queue.destroy();this._destroyHook(false);this.unload(null,this._inner(g,{success:this.proxy(function(){c.clearTimeout(this._private.loaderHide);c.clearInterval(this._private.loaderInterval);this._private.itemClone={};this._destroyHook(true);this._instance.jQuery.unbind(this._instance.nameSpace).off(this._instance.nameSpace,".aciTreeButton").off(this._instance.nameSpace,".aciTreeLine");this._instance.jQuery.removeClass("aciTree"+this._instance.index+" aciTreeLoad").removeAttr("role aria-busy");this._private.locked=false;this._super();this._trigger(null,"destroyed",g);this._success(null,g)}),fail:function(){this._instance.jQuery.removeClass("aciTreeLoad");this._private.locked=false;this._trigger(null,"destroyfail",g);this._fail(null,g)}}))},_destroyHook:function(g){}};aciPluginClass.plugins.aciTree=aciPluginClass.aciPluginUi.extend(e,"aciTreeCore");aciPluginClass.publish("aciTree",b);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); + +// utils +(function(e,d,f){var b={filterHook:function(h,g,i){return g.length?i.test(d.String(this.getLabel(h))):true}};var c={__extend:function(){e.extend(this._instance,{filter:new this._queue(this,this._instance.options.queue)});this._instance.filter.destroy();this._super()},branch:function(h,k,i){var g=this._instance.queue;var j=this.proxy(function(m,o,l){var n=l?this.next(m):this.first(m);if(n.length){if(this.isInode(n)){if(this.wasLoad(n)){g.push(function(p){o.call(this,n);j(n,o);j(n,o,true);p()})}else{if(i){this.ajaxLoad(n,{success:function(){o.call(this,n);j(n,o);j(n,o,true)},fail:function(){j(n,o,true)}})}else{g.push(function(p){o.call(this,n);j(n,o,true);p()})}}}else{g.push(function(p){o.call(this,n);j(n,o,true);p()})}}});j(h,k)},swap:function(i){i=this._options(i,null,"swapfail",null,null);var h=i.item1;var g=i.item2;if(this.isItem(h)&&this.isItem(g)&&!this.isChildren(h,g)&&!this.isChildren(g,h)&&(h[0]!=g[0])){if(!this._trigger(null,"beforeswap",i)){this._fail(null,i);return}var l=this.prev(h);if(l.length){if(g[0]==l[0]){g.before(h)}else{h.insertAfter(g);g.insertAfter(l)}}else{var k=this.next(h);if(k.length){if(g[0]==k[0]){g.after(h)}else{h.insertAfter(g);g.insertBefore(k)}}else{var j=h.parent();h.insertAfter(g);j.append(g)}}this._updateLevel(h);var j=this.parent(h);this._setFirstLast(j.length?j:null,h);this._updateHidden(h);this._updateLevel(g);j=this.parent(g);this._setFirstLast(j.length?j:null,g);this._updateHidden(g);this._setOddEven(h.add(g));this._trigger(null,"swapped",i);this._success(null,i)}else{this._fail(null,i)}},_updateItemLevel:function(n,h,k){a.addRemoveClass(n[0],"aciTreeLevel"+k,"aciTreeLevel"+h);var g=n[0].firstChild;g.setAttribute("aria-level",k+1);var m=a.childrenByClass(g,"aciTreeEntry");if(h0)&&(m!=n));o.total+=n;o.checked+=m}});var i={total:0,checked:0};g(j,i,k);var h=this.proxy(function(p,o,q){var m=this.parent(p);if(m.length){if(!o){var l=this._checkboxChildren(m);var n=this.checkboxes(l,true).length;var o=(n>0)&&(n!=l.length)}if(this.hasCheckbox(m)){if((q!==f)&&(this._instance.options.checkboxChain!==1)){this._checkboxDOM.check(m,o?true:q)}this._checkboxDOM.tristate(m,o);h(m,o,q)}else{if(this._instance.options.checkboxBreak){h(m)}else{h(m,o,q)}}}});h(j,f,k)},hasCheckbox:function(g){return g&&a.hasClass(g[0],"aciTreeCheckbox")},addCheckbox:function(h,g){g=this._options(g,"checkboxadded","addcheckboxfail","wascheckbox",h);if(this.isItem(h)){if(!this._trigger(h,"beforeaddcheckbox",g)){this._fail(h,g);return}if(this.hasCheckbox(h)){this._notify(h,g)}else{var i=function(){this._checkboxDOM.add(h,{});this._success(h,g)};if(this.extRadio&&this.hasRadio(h)){this.removeRadio(h,this._inner(g,{success:i,fail:g.fail}))}else{i.apply(this)}}}else{this._fail(h,g)}},removeCheckbox:function(h,g){g=this._options(g,"checkboxremoved","removecheckboxfail","notcheckbox",h);if(this.isItem(h)){if(!this._trigger(h,"beforeremovecheckbox",g)){this._fail(h,g);return}if(this.hasCheckbox(h)){this._checkboxDOM.remove(h);this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},isChecked:function(g){if(this.hasCheckbox(g)){return a.hasClass(g[0],"aciTreeChecked")}if(this._super){return this._super(g)}return false},check:function(h,g){if(this.extCheckbox&&this.hasCheckbox(h)){g=this._options(g,"checked","checkfail","waschecked",h);if(!this._trigger(h,"beforecheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._notify(h,g)}else{this._checkboxDOM.check(h,true);if(this._instance.options.checkboxChain!==false){this._checkboxUpdate(h,true)}this._success(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"checkfail",g);this._fail(h,g)}}},uncheck:function(h,g){if(this.extCheckbox&&this.hasCheckbox(h)){g=this._options(g,"unchecked","uncheckfail","notchecked",h);if(!this._trigger(h,"beforeuncheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._checkboxDOM.check(h,false);if(this._instance.options.checkboxChain!==false){this._checkboxUpdate(h,false)}this._success(h,g)}else{this._notify(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"uncheckfail",g);this._fail(h,g)}}},checkboxes:function(g,h){if(h!==f){return e(a.withClass(g.toArray(),h?["aciTreeCheckbox","aciTreeChecked"]:"aciTreeCheckbox",h?null:"aciTreeChecked"))}return e(a.withClass(g.toArray(),"aciTreeCheckbox"))},_serialize:function(g,i){var h=this._super(g,i);if(h&&this.extCheckbox()){if(h.hasOwnProperty("checkbox")){h.checkbox=this.hasCheckbox(g);h.checked=this.isChecked(g)}else{if(this.hasCheckbox(g)){if(this.extRadio&&this.extRadio()){h.checkbox=true}h.checked=this.isChecked(g)}}}return h},serialize:function(h,j,k){if(j=="checkbox"){var i="";var g=this.children(h,true,true);this.checkboxes(g,true).each(this.proxy(function(l){var m=e(l);if(k){i+=k.call(this,m,j,this.getId(m))}else{i+=this._instance.options.serialize.call(this,m,j,this.getId(m))}},true));return i}return this._super(h,j,k)},isTristate:function(g){return g&&a.hasClass(g[0],"aciTreeTristate")},tristate:function(g){return e(a.withClass(g.toArray(),"aciTreeTristate"))},extCheckbox:function(){return this._instance.options.checkbox},option:function(g,h){if(this.wasInit()&&!this.isLocked()){if((g=="checkbox")&&(h!=this.extCheckbox())){if(h){this._checkboxInit()}else{this._checkboxDone()}}}this._super(g,h)},_checkboxDone:function(g){this._instance.jQuery.unbind(this._private.nameSpace);this._instance.jQuery.off(this._private.nameSpace,".aciTreeItem");if(!g){this.checkboxes(this.children(null,true,true)).each(this.proxy(function(h){this.removeCheckbox(e(h))},true))}},_destroyHook:function(g){if(g){this._checkboxDone(true)}this._super(g)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(b,"aciTreeCheckbox");aciPluginClass.defaults("aciTree",c);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); + +// radio (works best with selectable) +(function(e,c,f){var b={radio:false,radioChain:true,radioBreak:true,radioClick:false};var d={_radioInit:function(){this._instance.jQuery.bind("acitree"+this._private.nameSpace,function(k,i,j,g,h){switch(g){case"loaded":if(j){i._radioLoad(j)}break}}).bind("keydown"+this._private.nameSpace,this.proxy(function(h){switch(h.which){case 32:if(this.extSelectable&&this.extSelectable()&&!h.ctrlKey){var g=this.focused();if(this.hasRadio(g)&&this.isEnabled(g)){if(!this.isChecked(g)){this.check(g)}h.stopImmediatePropagation();h.preventDefault()}}break}})).on("click"+this._private.nameSpace,".aciTreeItem",this.proxy(function(h){if(!this._instance.options.radioClick||e(h.target).is(".aciTreeCheck")){var g=this.itemFrom(h.target);if(this.hasRadio(g)&&this.isEnabled(g)&&(!this.extSelectable||!this.extSelectable()||(!h.ctrlKey&&!h.shiftKey))){if(!this.isChecked(g)){this.check(g)}h.preventDefault()}}}))},_initHook:function(){if(this.extRadio()){this._radioInit()}this._super()},_itemHook:function(h,i,g,k){if(this.extRadio()){var j=this.extCheckbox&&this.hasCheckbox(i);if(!j&&(g.radio||((g.radio===f)&&(!this.extCheckbox||!this.extCheckbox())))){this._radioDOM.add(i,g)}}this._super(h,i,g,k)},_radioDOM:{add:function(k,g){a.addClass(k[0],g.checked?["aciTreeRadio","aciTreeChecked"]:"aciTreeRadio");var l=a.childrenByClass(k[0].firstChild,"aciTreeText");var j=l.parentNode;var i=c.document.createElement("LABEL");var h=c.document.createElement("SPAN");h.className="aciTreeCheck";i.appendChild(h);i.appendChild(l);j.appendChild(i);k[0].firstChild.setAttribute("aria-checked",!!g.checked)},remove:function(i){a.removeClass(i[0],["aciTreeRadio","aciTreeChecked"]);var j=a.childrenByClass(i[0].firstChild,"aciTreeText");var g=j.parentNode;var h=g.parentNode;h.replaceChild(j,g);i[0].firstChild.removeAttribute("aria-checked")},check:function(g,h){a.toggleListClass(g.toArray(),"aciTreeChecked",h,function(i){i.firstChild.setAttribute("aria-checked",h)})}},_radioLoad:function(g){if(!this._instance.options.radioChain){return}if(this.hasRadio(g)){if(this.isChecked(g)){if(!this.radios(this.children(g,false,true),true).length){this._radioUpdate(g,true)}}else{this._radioUpdate(g)}}},_radioChildren:function(h){if(this._instance.options.radioBreak){var i=[];var j=this.proxy(function(l){var k=this.children(l,false,true);k.each(this.proxy(function(m){var n=e(m);if(this.hasRadio(n)){i.push(m);j(n)}},true))});j(h);return e(i)}else{var g=this.children(h,true,true);return this.radios(g)}},_radioLevel:function(g){var h=[];g.each(this.proxy(function(j){var k=e(j);var i=this.children(k,false,true);i.each(this.proxy(function(l){var m=e(l);if(!this._instance.options.radioBreak||this.hasRadio(m)){h.push(l)}},true))},true));return e(h)},_radioUpdate:function(i,j){var k=this.proxy(function(l){var m=this.siblings(l,true);this._radioDOM.check(this.radios(m),false);m.each(this.proxy(function(n){var o=e(n);if(!this._instance.options.radioBreak||this.hasRadio(o)){this._radioDOM.check(this._radioChildren(o),false)}},true))});if(j){k(i)}var g=this.proxy(function(n){var l=this._radioLevel(n);var o=this.radios(l);if(o.length){var m=this.radios(l,true);if(m.length){m=m.first();this._radioDOM.check(m,true);k(m);g(m)}else{m=o.first();this._radioDOM.check(m,true);k(m);g(m)}}else{if(l.length){g(l)}}});if(j){g(i)}else{this._radioDOM.check(this._radioChildren(i),false)}var h=this.proxy(function(m){var l=this.parent(m);if(l.length){if(this.hasRadio(l)){if(j){k(l)}this._radioDOM.check(l,j);h(l)}else{if(!this._instance.options.radioBreak){if(j){k(l)}h(l)}}}});if(j!==f){h(i)}},hasRadio:function(g){return g&&a.hasClass(g[0],"aciTreeRadio")},addRadio:function(h,g){g=this._options(g,"radioadded","addradiofail","wasradio",h);if(this.isItem(h)){if(!this._trigger(h,"beforeaddradio",g)){this._fail(h,g);return}if(this.hasRadio(h)){this._notify(h,g)}else{var i=function(){this._radioDOM.add(h,{});this._success(h,g)};if(this.extCheckbox&&this.hasCheckbox(h)){this.removeCheckbox(h,this._inner(g,{success:i,fail:g.fail}))}else{i.apply(this)}}}else{this._fail(h,g)}},removeRadio:function(h,g){g=this._options(g,"radioremoved","removeradiofail","notradio",h);if(this.isItem(h)){if(!this._trigger(h,"beforeremoveradio",g)){this._fail(h,g);return}if(this.hasRadio(h)){this._radioDOM.remove(h);this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},isChecked:function(g){if(this.hasRadio(g)){return a.hasClass(g[0],"aciTreeChecked")}if(this._super){return this._super(g)}return false},check:function(h,g){if(this.extRadio&&this.hasRadio(h)){g=this._options(g,"checked","checkfail","waschecked",h);if(!this._trigger(h,"beforecheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._notify(h,g)}else{this._radioDOM.check(h,true);if(this._instance.options.radioChain){this._radioUpdate(h,true)}this._success(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"checkfail",g);this._fail(h,g)}}},uncheck:function(h,g){if(this.extRadio&&this.hasRadio(h)){g=this._options(g,"unchecked","uncheckfail","notchecked",h);if(!this._trigger(h,"beforeuncheck",g)){this._fail(h,g);return}if(this.isChecked(h)){this._radioDOM.check(h,false);if(this._instance.options.radioChain){this._radioUpdate(h,false)}this._success(h,g)}else{this._notify(h,g)}}else{if(this._super){this._super(h,g)}else{this._trigger(h,"uncheckfail",g);this._fail(h,g)}}},radios:function(g,h){if(h!==f){return e(a.withClass(g.toArray(),h?["aciTreeRadio","aciTreeChecked"]:"aciTreeRadio",h?null:"aciTreeChecked"))}return e(a.withClass(g.toArray(),"aciTreeRadio"))},_serialize:function(g,i){var h=this._super(g,i);if(h&&this.extRadio()){if(h.hasOwnProperty("radio")){h.radio=this.hasRadio(g);h.checked=this.isChecked(g)}else{if(this.hasRadio(g)){if(this.extCheckbox&&this.extCheckbox()){h.radio=true}h.checked=this.isChecked(g)}}}return h},serialize:function(h,j,k){if(j=="radio"){var i="";var g=this.children(h,true,true);this.radios(g,true).each(this.proxy(function(l){var m=e(l);if(k){i+=k.call(this,m,j,this.getId(m))}else{i+=this._instance.options.serialize.call(this,m,j,this.getId(m))}},true));return i}return this._super(h,j,k)},extRadio:function(){return this._instance.options.radio},option:function(g,h){if(this.wasInit()&&!this.isLocked()){if((g=="radio")&&(h!=this.extRadio())){if(h){this._radioInit()}else{this._radioDone()}}}this._super(g,h)},_radioDone:function(g){this._instance.jQuery.unbind(this._private.nameSpace);this._instance.jQuery.off(this._private.nameSpace,".aciTreeItem");if(!g){this.radios(this.children(null,true,true)).each(this.proxy(function(h){this.removeRadio(e(h))},true))}},_destroyHook:function(g){if(g){this._radioDone(true)}this._super(g)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(d,"aciTreeRadio");aciPluginClass.defaults("aciTree",b);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); + +// column +(function(e,c,f){var b={columnData:[]};var d={__extend:function(){e.extend(this._private,{propsIndex:{}});this._super()},_initHook:function(){if(this._instance.options.columnData.length){var j=false,h;for(var g in this._instance.options.columnData){h=this._instance.options.columnData[g];if(h.width!==f){this._updateCss(".aciTree.aciTree"+this._instance.index+" .aciTreeColumn"+g,"width:"+h.width+"px;");j=true}this._private.propsIndex[h.props]=g}if(j){this._updateWidth()}}this._super()},_getCss:function(m,p,o){var h="_getCss_"+c.String(m).replace(/[^a-z0-9_-]/ig,"_");var l=e("body").find("#"+h);if(!l.length){if(m instanceof Array){var g="",j="";for(var k in m){g+='
        ';j+="
        "}g+=j}else{var g='
        '}e("body").append('
        '+g+"
        ");l=e("body").find("#"+h)}var n=l.find("*:last").css(p);if(o){n=parseInt(n);if(isNaN(n)){n=null}}return n},_updateCss:function(i,g){var k="_updateCss_"+c.String(i).replace(">","_gt_").replace(/[^a-z0-9_-]/ig,"_");var h='";var j=e("body").find("#"+k);if(j.length){j.replaceWith(h)}else{e("body").prepend(h)}},getWidth:function(g){if((g>=0)&&(g=0)&&(g=0)&&(g=0)&&(h=0)&&(g.index=0)&&(gthis._instance.options.editDelay)&&(i');g.find("label").attr("for","aciTree-editable-tree-item");this._editableDOM.get(h).val(this.getLabel(h))},remove:function(i,h){var g=i.removeClass("aciTreeEdited").children(".aciTreeLine");g.find(".aciTreeText").html(this.getLabel(i));g.find("label").removeAttr("for")},get:function(g){return g?g.children(".aciTreeLine").find("input[type=text]"):d([])}},edited:function(){return this._instance.jQuery.find(".aciTreeEdited")},isEdited:function(g){return g&&a.hasClass(g[0],"aciTreeEdited")},_focusEdit:function(h){var i=this._editableDOM.get(h).focus().trigger("click")[0];if(i){if(typeof i.selectionStart=="number"){i.selectionStart=i.selectionEnd=i.value.length}else{if(i.createTextRange!==f){var g=i.createTextRange();g.collapse(false);g.select()}}}},setLabel:function(h,g){if(!this.extEditable()||!this.isEdited(h)){this._super(h,g)}},edit:function(h,g){g=this._options(g,"edit","editfail","wasedit",h);if(this.extEditable()&&this.isItem(h)){if(!this._trigger(h,"beforeedit",g)){this._fail(h,g);return}var i=this.edited();if(i.length){if(i[0]==h[0]){this._notify(h,g);return}else{this._editableDOM.remove.call(this,i);this._trigger(i,"endedit",g)}}this._editableDOM.add.call(this,h);this._focusEdit(h);this._success(h,g)}else{this._fail(h,g)}},endEdit:function(g){var h=this.edited();g=this._options(g,"edited","endeditfail","endedit",h);if(this.extEditable()&&this.isItem(h)){if(!this._trigger(h,"beforeendedit",g)){this._fail(h,g);return}var i=this._editableDOM.get(h).val();this._editableDOM.remove.call(this,h);if((g.save===f)||g.save){this.setLabel(h,{label:i});this._success(h,g)}else{this._notify(h,g)}}else{this._fail(h,g)}},extEditable:function(){return this._instance.options.editable},option:function(g,h){if(this.wasInit()&&!this.isLocked()){if((g=="editable")&&(h!=this.extEditable())){if(h){this._editableInit()}else{this._editableDone()}}}this._super(g,h)},_editableDone:function(){this._instance.jQuery.unbind(this._private.nameSpace);this._instance.jQuery.off(this._private.nameSpace,".aciTreeItem");this._instance.jQuery.off(this._private.nameSpace,"input[type=text]");var g=this.edited();if(g.length){this.endEdit()}},_destroyHook:function(g){if(g){this._editableDone()}this._super(g)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(e,"aciTreeEditable");aciPluginClass.defaults("aciTree",b);var a=aciPluginClass.plugins.aciTree_dom})(jQuery,this); + +// persist (require utils extension & jStorage plugin) +(function(c,b,e){var a={persist:null};var d={__extend:function(){c.extend(this._private,{selectTimeout:null,focusTimeout:null,openTimeout:null});this._super()},_initPersist:function(){this._instance.jQuery.bind("acitree"+this._private.nameSpace,function(j,h,i,f,g){if(g.uid=="ui.persist"){return}switch(f){case"init":h._persistRestore();break;case"selected":case"deselected":h._persistLater("selected");break;case"focus":case"blur":h._persistLater("focused");break;case"opened":case"closed":h._persistLater("opened");break}})},_initHook:function(){if(this.extPersist()){this._initPersist()}this._super()},_persistLater:function(f){switch(f){case"selected":b.clearTimeout(this._private.selectTimeout);this._private.selectTimeout=b.setTimeout(this.proxy(function(){this._persistSelected()}),250);break;case"focused":b.clearTimeout(this._private.focusTimeout);this._private.focusTimeout=b.setTimeout(this.proxy(function(){this._persistFocused()}),250);break;case"opened":b.clearTimeout(this._private.openTimeout);this._private.openTimeout=b.setTimeout(this.proxy(function(){this._persistOpened()}),250);break}},_persistRestore:function(){var f=new this._queue(this,this._instance.options.queue);var g=new this._task(f,function(k){if(this.extSelectable&&this.extSelectable()){var m=c.jStorage.get("aciTree_"+this._instance.options.persist+"_selected");if(m instanceof Array){for(var l in m){(function(i){f.push(function(o){this.searchPath(null,{success:function(p){this.select(p,{uid:"ui.persist",success:function(){o()},fail:o,focus:false})},fail:o,path:i.split(";")})})})(m[l]);if(!this._instance.options.multiSelectable){break}}}var n=c.jStorage.get("aciTree_"+this._instance.options.persist+"_focused");if(n instanceof Array){for(var l in n){(function(i){f.push(function(o){this.searchPath(null,{success:function(p){this.focus(p,{uid:"ui.persist",success:function(q){this.setVisible(q,{center:true});o()},fail:o})},fail:o,path:i.split(";")})})})(n[l])}}}k()});var j=c.jStorage.get("aciTree_"+this._instance.options.persist+"_opened");if(j instanceof Array){for(var h in j){(function(i){g.push(function(k){this.searchPath(null,{success:function(l){this.open(l,{uid:"ui.persist",success:k,fail:k})},fail:k,path:i.split(";"),load:true})})})(j[h])}}},_persistSelected:function(){if(this.extSelectable&&this.extSelectable()){var f=[];this.selected().each(this.proxy(function(g){var h=c(g);var i=this.pathId(h);i.push(this.getId(h));f.push(i.join(";"))},true));c.jStorage.set("aciTree_"+this._instance.options.persist+"_selected",f)}},_persistFocused:function(){if(this.extSelectable&&this.extSelectable()){var f=[];this.focused().each(this.proxy(function(g){var h=c(g);var i=this.pathId(h);i.push(this.getId(h));f.push(i.join(";"))},true));c.jStorage.set("aciTree_"+this._instance.options.persist+"_focused",f)}},_persistOpened:function(){var f=[];this.inodes(this.children(null,true),true).each(this.proxy(function(g){var h=c(g);if(this.isOpenPath(h)){var i=this.pathId(h);i.push(this.getId(h));f.push(i.join(";"))}},true));c.jStorage.set("aciTree_"+this._instance.options.persist+"_opened",f)},isPersist:function(){if(this.extPersist()){var f=c.jStorage.get("aciTree_"+this._instance.options.persist+"_selected");if(f instanceof Array){return true}var g=c.jStorage.get("aciTree_"+this._instance.options.persist+"_focused");if(g instanceof Array){return true}var h=c.jStorage.get("aciTree_"+this._instance.options.persist+"_opened");if(h instanceof Array){return true}}return false},unpersist:function(){if(this.extPersist()){c.jStorage.deleteKey("aciTree_"+this._instance.options.persist+"_selected");c.jStorage.deleteKey("aciTree_"+this._instance.options.persist+"_focused");c.jStorage.deleteKey("aciTree_"+this._instance.options.persist+"_opened")}},extPersist:function(){return this._instance.options.persist},option:function(f,h){var g=this.extPersist();this._super(f,h);if(this.extPersist()!=g){if(g){this._donePersist()}else{this._initPersist()}}},_donePersist:function(){this._instance.jQuery.unbind(this._private.nameSpace)},_destroyHook:function(f){if(f){this._donePersist()}this._super(f)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(d,"aciTreePersist");aciPluginClass.defaults("aciTree",a)})(jQuery,this); + +// hash (require utils extension & aciFragment plugin) +(function(d,c,e){var a={selectHash:null,openHash:null};var b={__extend:function(){d.extend(this._private,{lastSelect:null,lastOpen:null,hashApi:null});this._super()},_hashInit:function(){this._instance.jQuery.aciFragment();this._private.hashApi=this._instance.jQuery.aciFragment("api");this._instance.jQuery.bind("acitree"+this._private.nameSpace,function(j,h,i,f,g){switch(f){case"init":h._hashRestore();break}}).bind("acifragment"+this._private.nameSpace,this.proxy(function(h,g,f){h.stopPropagation();this._hashRestore()}))},_initHook:function(){if(this.extHast()){this._hashInit()}this._super()},_hashRestore:function(){var f=this._instance.queue;var i=function(l){for(var k in l){(function(m){f.push(function(n){this.search(null,{success:function(o){this.open(o,{uid:"ui.hash",success:n,fail:n})},fail:n,search:m})})})(l[k])}};if(this._instance.options.openHash){var h=this._private.hashApi.get(this._instance.options.openHash,"");if(h.length&&(h!=this._private.lastOpen)){this._private.lastOpen=h;var j=h.split(";");i(j)}}if(this._instance.options.selectHash&&this.extSelectable&&this.extSelectable()){var h=this._private.hashApi.get(this._instance.options.selectHash,"");if(h.length&&(h!=this._private.lastSelect)){this._private.lastSelect=h;var j=h.split(";");var g=j.pop();i(j);if(g){f.push(function(k){this.search(null,{success:function(l){this.select(l,{uid:"ui.hash",success:function(m){this.setVisible(m,{center:true});k()},fail:k})},fail:k,search:g})})}}}},extHast:function(){return this._instance.options.selectHash||this._instance.options.openHash},option:function(f,g){var h=this.extHast();this._super(f,g);if(this.extHast()!=h){if(h){this._hashDone()}else{this._hashInit()}}},_hashDone:function(){this._instance.jQuery.unbind(this._private.nameSpace);this._private.hashApi=null;this._instance.jQuery.aciFragment("destroy")},_destroyHook:function(f){if(f){this._hashDone()}this._super(f)}};aciPluginClass.plugins.aciTree=aciPluginClass.plugins.aciTree.extend(b,"aciTreeHash");aciPluginClass.defaults("aciTree",a)})(jQuery,this); + +// sortable (require utils extension & aciSortable plugin) +(function(d,c,e){var a={sortable:false,sortDelay:750,sortDrag:function(h,j,i,g){if(!i){var f=this.getLabel(h);if(this._private.dragDrop&&(this._private.dragDrop.length>1)){f+=" and #"+(this._private.dragDrop.length-1)+" more"}g.html(f)}},sortValid:function(j,h,k,g,l,i){var f=this.getLabel(j);if(this._private.dragDrop.length>1){f+=" and #"+(this._private.dragDrop.length-1)+" more"}if(g){i.html("move "+f+" to "+this.getLabel(this.itemFrom(h)));l.removeClass("aciTreeAfter aciTreeBefore")}else{if(k!==null){if(k){i.html("move "+f+" before "+this.getLabel(h));l.removeClass("aciTreeAfter").addClass("aciTreeBefore")}else{i.html("move "+f+" after "+this.getLabel(h));l.removeClass("aciTreeBefore").addClass("aciTreeAfter")}}}}};var b={__extend:function(){d.extend(this._private,{openTimeout:null,dragDrop:null});this._super()},_sortableInit:function(){this._instance.jQuery.aciSortable({container:".aciTreeUl",item:".aciTreeLi",child:50,childHolder:'
          ',childHolderSelector:".aciTreeChild",placeholder:'
        • ',placeholderSelector:".aciTreePlaceholder",helper:'
          ',helperSelector:".aciTreeHelper",before:this.proxy(function(f){if(!this._initDrag(f)){return false}if(!this._trigger(f,"beforedrag")){this._trigger(f,"dragfail");return false}return true}),start:this.proxy(function(g,h,f){this._instance.jQuery.addClass("aciTreeDragDrop");f.css({opacity:1}).html(this.getLabel(g))}),drag:this.proxy(function(g,i,h,f){if(!h){c.clearTimeout(this._private.openTimeout)}if(this._instance.options.sortDrag){this._instance.options.sortDrag.apply(this,arguments)}}),valid:this.proxy(function(j,h,k,g,l,i){c.clearTimeout(this._private.openTimeout);if(!this._checkDrop(j,h,k,g,l,i)){return false}var f=this._options({hover:h,before:k,isContainer:g,placeholder:l,helper:i});if(!this._trigger(j,"checkdrop",f)){return false}if(this.isInode(h)&&!this.isOpen(h)){this._private.openTimeout=c.setTimeout(this.proxy(function(){this.open(h)}),this._instance.options.sortDelay)}if(this._instance.options.sortValid){this._instance.options.sortValid.apply(this,arguments)}return true}),create:this.proxy(function(g,h,f){if(this.isLeaf(f)){f.append(g._instance.options.childHolder);return true}return false},true),end:this.proxy(function(q,k,p,g){c.clearTimeout(this._private.openTimeout);var r={placeholder:p,helper:g};r=this._options(r,"sorted","dropfail",null,q);if(p.parent().length){var i=this.prev(p,true);if(i.length){p.detach();var l=d(this._private.dragDrop.get().reverse());this._private.dragDrop=null;l.each(this.proxy(function(s){this.moveAfter(d(s),this._inner(r,{success:r.success,fail:r.fail,after:i}))},true))}else{var j=this.next(p,true);if(j.length){p.detach();var l=d(this._private.dragDrop.get().reverse());this._private.dragDrop=null;l.each(this.proxy(function(s){this.moveBefore(d(s),this._inner(r,{success:r.success,fail:r.fail,before:j}))},true))}else{var o=this.parent(p);var f=p.parent();p.detach();f.remove();if(this.isLeaf(o)){var l=this._private.dragDrop;this.asChild(l.eq(0),this._inner(r,{success:function(){this._success(q,r);this.open(o);l.filter(":gt(0)").each(this.proxy(function(s){this.moveAfter(d(s),this._inner(r,{success:r.success,fail:r.fail,after:this.last(o)}))},true))},fail:r.fail,parent:o}))}else{this._fail(q,r)}}}}else{this._fail(q,r)}this._private.dragDrop=null;if(g.parent().length){var n=d(c).scrollTop();var h=d(c).scrollLeft();var m=q[0].getBoundingClientRect();g.animate({top:m.top+n,left:m.left+h,opacity:0},{complete:function(){g.detach()}})}this._instance.jQuery.removeClass("aciTreeDragDrop")})})},_initHook:function(){if(this.extSortable()){this._sortableInit()}this._super()},_parents:function(l){var h=l.length,k,g,f=[];for(var n=0;n - + @@ -33,7 +33,7 @@
          - +
          diff --git a/web/pgadmin/static/css/overrides.css b/web/pgadmin/static/css/bootstrap.overrides.css similarity index 100% rename from web/pgadmin/static/css/overrides.css rename to web/pgadmin/static/css/bootstrap.overrides.css diff --git a/web/pgadmin/static/css/wcDocker/Themes/pgadmin.css b/web/pgadmin/static/css/webcabin.overrides.css similarity index 100% rename from web/pgadmin/static/css/wcDocker/Themes/pgadmin.css rename to web/pgadmin/static/css/webcabin.overrides.css diff --git a/web/pgadmin/static/js/alertifyjs/pgadmin.defaults.js b/web/pgadmin/static/js/alertify.pgadmin.defaults.js similarity index 100% rename from web/pgadmin/static/js/alertifyjs/pgadmin.defaults.js rename to web/pgadmin/static/js/alertify.pgadmin.defaults.js diff --git a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid.pgadmin.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid.pgadmin.js rename to web/pgadmin/static/js/backgrid.pgadmin.js diff --git a/web/pgadmin/static/js/npm.js b/web/pgadmin/static/js/npm.js deleted file mode 100644 index bf6aa8060..000000000 --- a/web/pgadmin/static/js/npm.js +++ /dev/null @@ -1,13 +0,0 @@ -// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. -require('../../js/transition.js') -require('../../js/alert.js') -require('../../js/button.js') -require('../../js/carousel.js') -require('../../js/collapse.js') -require('../../js/dropdown.js') -require('../../js/modal.js') -require('../../js/tooltip.js') -require('../../js/popover.js') -require('../../js/scrollspy.js') -require('../../js/tab.js') -require('../../js/affix.js') \ No newline at end of file diff --git a/web/pgadmin/static/css/alertifyjs/alertify.css b/web/pgadmin/static/vendor/alertifyjs/alertify.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/alertify.css rename to web/pgadmin/static/vendor/alertifyjs/alertify.css diff --git a/web/pgadmin/static/js/alertifyjs/alertify.js b/web/pgadmin/static/vendor/alertifyjs/alertify.js similarity index 100% rename from web/pgadmin/static/js/alertifyjs/alertify.js rename to web/pgadmin/static/vendor/alertifyjs/alertify.js diff --git a/web/pgadmin/static/css/alertifyjs/alertify.min.css b/web/pgadmin/static/vendor/alertifyjs/alertify.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/alertify.min.css rename to web/pgadmin/static/vendor/alertifyjs/alertify.min.css diff --git a/web/pgadmin/static/js/alertifyjs/alertify.min.js b/web/pgadmin/static/vendor/alertifyjs/alertify.min.js similarity index 100% rename from web/pgadmin/static/js/alertifyjs/alertify.min.js rename to web/pgadmin/static/vendor/alertifyjs/alertify.min.js diff --git a/web/pgadmin/static/css/alertifyjs/alertify.rtl.css b/web/pgadmin/static/vendor/alertifyjs/alertify.rtl.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/alertify.rtl.css rename to web/pgadmin/static/vendor/alertifyjs/alertify.rtl.css diff --git a/web/pgadmin/static/css/alertifyjs/alertify.rtl.min.css b/web/pgadmin/static/vendor/alertifyjs/alertify.rtl.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/alertify.rtl.min.css rename to web/pgadmin/static/vendor/alertifyjs/alertify.rtl.min.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/bootstrap.css b/web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/bootstrap.css rename to web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/bootstrap.min.css b/web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/bootstrap.min.css rename to web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.min.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/bootstrap.rtl.css b/web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.rtl.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/bootstrap.rtl.css rename to web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.rtl.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/bootstrap.rtl.min.css b/web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.rtl.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/bootstrap.rtl.min.css rename to web/pgadmin/static/vendor/alertifyjs/themes/bootstrap.rtl.min.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/default.css b/web/pgadmin/static/vendor/alertifyjs/themes/default.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/default.css rename to web/pgadmin/static/vendor/alertifyjs/themes/default.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/default.min.css b/web/pgadmin/static/vendor/alertifyjs/themes/default.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/default.min.css rename to web/pgadmin/static/vendor/alertifyjs/themes/default.min.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/default.rtl.css b/web/pgadmin/static/vendor/alertifyjs/themes/default.rtl.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/default.rtl.css rename to web/pgadmin/static/vendor/alertifyjs/themes/default.rtl.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/default.rtl.min.css b/web/pgadmin/static/vendor/alertifyjs/themes/default.rtl.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/default.rtl.min.css rename to web/pgadmin/static/vendor/alertifyjs/themes/default.rtl.min.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/semantic.css b/web/pgadmin/static/vendor/alertifyjs/themes/semantic.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/semantic.css rename to web/pgadmin/static/vendor/alertifyjs/themes/semantic.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/semantic.min.css b/web/pgadmin/static/vendor/alertifyjs/themes/semantic.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/semantic.min.css rename to web/pgadmin/static/vendor/alertifyjs/themes/semantic.min.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/semantic.rtl.css b/web/pgadmin/static/vendor/alertifyjs/themes/semantic.rtl.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/semantic.rtl.css rename to web/pgadmin/static/vendor/alertifyjs/themes/semantic.rtl.css diff --git a/web/pgadmin/static/css/alertifyjs/themes/semantic.rtl.min.css b/web/pgadmin/static/vendor/alertifyjs/themes/semantic.rtl.min.css similarity index 100% rename from web/pgadmin/static/css/alertifyjs/themes/semantic.rtl.min.css rename to web/pgadmin/static/vendor/alertifyjs/themes/semantic.rtl.min.css diff --git a/web/pgadmin/static/js/backbone-min.js b/web/pgadmin/static/vendor/backbone/backbone-min.js similarity index 100% rename from web/pgadmin/static/js/backbone-min.js rename to web/pgadmin/static/vendor/backbone/backbone-min.js diff --git a/web/pgadmin/static/js/backbone.js b/web/pgadmin/static/vendor/backbone/backbone.js similarity index 100% rename from web/pgadmin/static/js/backbone.js rename to web/pgadmin/static/vendor/backbone/backbone.js diff --git a/web/pgadmin/static/js/backbone.paginator.js b/web/pgadmin/static/vendor/backbone/backbone.paginator.js similarity index 100% rename from web/pgadmin/static/js/backbone.paginator.js rename to web/pgadmin/static/vendor/backbone/backbone.paginator.js diff --git a/web/pgadmin/static/js/backbone.paginator.min.js b/web/pgadmin/static/vendor/backbone/backbone.paginator.min.js similarity index 100% rename from web/pgadmin/static/js/backbone.paginator.min.js rename to web/pgadmin/static/vendor/backbone/backbone.paginator.min.js diff --git a/web/pgadmin/static/js/backbone.undo.js b/web/pgadmin/static/vendor/backbone/backbone.undo.js similarity index 100% rename from web/pgadmin/static/js/backbone.undo.js rename to web/pgadmin/static/vendor/backbone/backbone.undo.js diff --git a/web/pgadmin/static/js/backbone.undo.min.js b/web/pgadmin/static/vendor/backbone/backbone.undo.min.js similarity index 100% rename from web/pgadmin/static/js/backbone.undo.min.js rename to web/pgadmin/static/vendor/backbone/backbone.undo.min.js diff --git a/web/pgadmin/static/js/backform.js b/web/pgadmin/static/vendor/backform/backform.js similarity index 100% rename from web/pgadmin/static/js/backform.js rename to web/pgadmin/static/vendor/backform/backform.js diff --git a/web/pgadmin/static/css/backgrid/backgrid-filter.css b/web/pgadmin/static/vendor/backgrid/backgrid-filter.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid-filter.css rename to web/pgadmin/static/vendor/backgrid/backgrid-filter.css diff --git a/web/pgadmin/static/js/backgrid/backgrid-filter.js b/web/pgadmin/static/vendor/backgrid/backgrid-filter.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid-filter.js rename to web/pgadmin/static/vendor/backgrid/backgrid-filter.js diff --git a/web/pgadmin/static/css/backgrid/backgrid-filter.min.css b/web/pgadmin/static/vendor/backgrid/backgrid-filter.min.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid-filter.min.css rename to web/pgadmin/static/vendor/backgrid/backgrid-filter.min.css diff --git a/web/pgadmin/static/js/backgrid/backgrid-filter.min.js b/web/pgadmin/static/vendor/backgrid/backgrid-filter.min.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid-filter.min.js rename to web/pgadmin/static/vendor/backgrid/backgrid-filter.min.js diff --git a/web/pgadmin/static/css/backgrid/backgrid-paginator.css b/web/pgadmin/static/vendor/backgrid/backgrid-paginator.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid-paginator.css rename to web/pgadmin/static/vendor/backgrid/backgrid-paginator.css diff --git a/web/pgadmin/static/js/backgrid/backgrid-paginator.js b/web/pgadmin/static/vendor/backgrid/backgrid-paginator.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid-paginator.js rename to web/pgadmin/static/vendor/backgrid/backgrid-paginator.js diff --git a/web/pgadmin/static/css/backgrid/backgrid-paginator.min.css b/web/pgadmin/static/vendor/backgrid/backgrid-paginator.min.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid-paginator.min.css rename to web/pgadmin/static/vendor/backgrid/backgrid-paginator.min.css diff --git a/web/pgadmin/static/js/backgrid/backgrid-paginator.min.js b/web/pgadmin/static/vendor/backgrid/backgrid-paginator.min.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid-paginator.min.js rename to web/pgadmin/static/vendor/backgrid/backgrid-paginator.min.js diff --git a/web/pgadmin/static/css/backgrid/backgrid-select-all.css b/web/pgadmin/static/vendor/backgrid/backgrid-select-all.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid-select-all.css rename to web/pgadmin/static/vendor/backgrid/backgrid-select-all.css diff --git a/web/pgadmin/static/js/backgrid/backgrid-select-all.js b/web/pgadmin/static/vendor/backgrid/backgrid-select-all.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid-select-all.js rename to web/pgadmin/static/vendor/backgrid/backgrid-select-all.js diff --git a/web/pgadmin/static/css/backgrid/backgrid-select-all.min.css b/web/pgadmin/static/vendor/backgrid/backgrid-select-all.min.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid-select-all.min.css rename to web/pgadmin/static/vendor/backgrid/backgrid-select-all.min.css diff --git a/web/pgadmin/static/js/backgrid/backgrid-select-all.min.js b/web/pgadmin/static/vendor/backgrid/backgrid-select-all.min.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid-select-all.min.js rename to web/pgadmin/static/vendor/backgrid/backgrid-select-all.min.js diff --git a/web/pgadmin/static/css/backgrid/backgrid-sizeable-columns.css b/web/pgadmin/static/vendor/backgrid/backgrid-sizeable-columns.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid-sizeable-columns.css rename to web/pgadmin/static/vendor/backgrid/backgrid-sizeable-columns.css diff --git a/web/pgadmin/static/js/backgrid/backgrid-sizeable-columns.js b/web/pgadmin/static/vendor/backgrid/backgrid-sizeable-columns.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid-sizeable-columns.js rename to web/pgadmin/static/vendor/backgrid/backgrid-sizeable-columns.js diff --git a/web/pgadmin/static/css/backgrid/backgrid.css b/web/pgadmin/static/vendor/backgrid/backgrid.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid.css rename to web/pgadmin/static/vendor/backgrid/backgrid.css diff --git a/web/pgadmin/static/js/backgrid/backgrid.js b/web/pgadmin/static/vendor/backgrid/backgrid.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid.js rename to web/pgadmin/static/vendor/backgrid/backgrid.js diff --git a/web/pgadmin/static/css/backgrid/backgrid.min.css b/web/pgadmin/static/vendor/backgrid/backgrid.min.css similarity index 100% rename from web/pgadmin/static/css/backgrid/backgrid.min.css rename to web/pgadmin/static/vendor/backgrid/backgrid.min.css diff --git a/web/pgadmin/static/js/backgrid/backgrid.min.js b/web/pgadmin/static/vendor/backgrid/backgrid.min.js similarity index 100% rename from web/pgadmin/static/js/backgrid/backgrid.min.js rename to web/pgadmin/static/vendor/backgrid/backgrid.min.js diff --git a/web/pgadmin/static/js/bignumber/bignumber.js b/web/pgadmin/static/vendor/bignumber/bignumber.js similarity index 100% rename from web/pgadmin/static/js/bignumber/bignumber.js rename to web/pgadmin/static/vendor/bignumber/bignumber.js diff --git a/web/pgadmin/static/js/bignumber/bignumber.min.js b/web/pgadmin/static/vendor/bignumber/bignumber.min.js similarity index 100% rename from web/pgadmin/static/js/bignumber/bignumber.min.js rename to web/pgadmin/static/vendor/bignumber/bignumber.min.js diff --git a/web/pgadmin/static/js/bootstrap-datepicker.js b/web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker.js similarity index 100% rename from web/pgadmin/static/js/bootstrap-datepicker.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker.js diff --git a/web/pgadmin/static/js/bootstrap-datepicker.min.js b/web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker.min.js similarity index 100% rename from web/pgadmin/static/js/bootstrap-datepicker.min.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker.min.js diff --git a/web/pgadmin/static/css/bootstrap-datepicker3.css b/web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker3.css similarity index 100% rename from web/pgadmin/static/css/bootstrap-datepicker3.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker3.css diff --git a/web/pgadmin/static/css/bootstrap-datepicker3.min.css b/web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker3.min.css similarity index 100% rename from web/pgadmin/static/css/bootstrap-datepicker3.min.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap-datepicker3.min.css diff --git a/web/pgadmin/static/js/bootstrap-datetimepicker.js b/web/pgadmin/static/vendor/bootstrap/bootstrap-datetimepicker.js similarity index 100% rename from web/pgadmin/static/js/bootstrap-datetimepicker.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap-datetimepicker.js diff --git a/web/pgadmin/static/css/bootstrap-datetimepicker.min.css b/web/pgadmin/static/vendor/bootstrap/bootstrap-datetimepicker.min.css similarity index 100% rename from web/pgadmin/static/css/bootstrap-datetimepicker.min.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap-datetimepicker.min.css diff --git a/web/pgadmin/static/js/bootstrap-datetimepicker.min.js b/web/pgadmin/static/vendor/bootstrap/bootstrap-datetimepicker.min.js similarity index 100% rename from web/pgadmin/static/js/bootstrap-datetimepicker.min.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap-datetimepicker.min.js diff --git a/web/pgadmin/static/css/bootstrap-switch.css b/web/pgadmin/static/vendor/bootstrap/bootstrap-switch.css similarity index 100% rename from web/pgadmin/static/css/bootstrap-switch.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap-switch.css diff --git a/web/pgadmin/static/js/bootstrap-switch.js b/web/pgadmin/static/vendor/bootstrap/bootstrap-switch.js similarity index 100% rename from web/pgadmin/static/js/bootstrap-switch.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap-switch.js diff --git a/web/pgadmin/static/css/bootstrap-switch.min.css b/web/pgadmin/static/vendor/bootstrap/bootstrap-switch.min.css similarity index 100% rename from web/pgadmin/static/css/bootstrap-switch.min.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap-switch.min.css diff --git a/web/pgadmin/static/js/bootstrap-switch.min.js b/web/pgadmin/static/vendor/bootstrap/bootstrap-switch.min.js similarity index 100% rename from web/pgadmin/static/js/bootstrap-switch.min.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap-switch.min.js diff --git a/web/pgadmin/static/css/bootstrap-theme.css b/web/pgadmin/static/vendor/bootstrap/bootstrap-theme.css similarity index 100% rename from web/pgadmin/static/css/bootstrap-theme.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap-theme.css diff --git a/web/pgadmin/static/css/bootstrap-theme.css.map b/web/pgadmin/static/vendor/bootstrap/bootstrap-theme.css.map similarity index 100% rename from web/pgadmin/static/css/bootstrap-theme.css.map rename to web/pgadmin/static/vendor/bootstrap/bootstrap-theme.css.map diff --git a/web/pgadmin/static/css/bootstrap-theme.min.css b/web/pgadmin/static/vendor/bootstrap/bootstrap-theme.min.css similarity index 100% rename from web/pgadmin/static/css/bootstrap-theme.min.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap-theme.min.css diff --git a/web/pgadmin/static/css/bootstrap.css b/web/pgadmin/static/vendor/bootstrap/bootstrap.css similarity index 100% rename from web/pgadmin/static/css/bootstrap.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap.css diff --git a/web/pgadmin/static/css/bootstrap.css.map b/web/pgadmin/static/vendor/bootstrap/bootstrap.css.map similarity index 100% rename from web/pgadmin/static/css/bootstrap.css.map rename to web/pgadmin/static/vendor/bootstrap/bootstrap.css.map diff --git a/web/pgadmin/static/js/bootstrap.js b/web/pgadmin/static/vendor/bootstrap/bootstrap.js similarity index 100% rename from web/pgadmin/static/js/bootstrap.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap.js diff --git a/web/pgadmin/static/css/bootstrap.min.css b/web/pgadmin/static/vendor/bootstrap/bootstrap.min.css similarity index 100% rename from web/pgadmin/static/css/bootstrap.min.css rename to web/pgadmin/static/vendor/bootstrap/bootstrap.min.css diff --git a/web/pgadmin/static/js/bootstrap.min.js b/web/pgadmin/static/vendor/bootstrap/bootstrap.min.js similarity index 100% rename from web/pgadmin/static/js/bootstrap.min.js rename to web/pgadmin/static/vendor/bootstrap/bootstrap.min.js diff --git a/web/pgadmin/static/fonts/glyphicons-halflings-regular.eot b/web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.eot similarity index 100% rename from web/pgadmin/static/fonts/glyphicons-halflings-regular.eot rename to web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.eot diff --git a/web/pgadmin/static/fonts/glyphicons-halflings-regular.svg b/web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.svg similarity index 100% rename from web/pgadmin/static/fonts/glyphicons-halflings-regular.svg rename to web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.svg diff --git a/web/pgadmin/static/fonts/glyphicons-halflings-regular.ttf b/web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.ttf similarity index 100% rename from web/pgadmin/static/fonts/glyphicons-halflings-regular.ttf rename to web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.ttf diff --git a/web/pgadmin/static/fonts/glyphicons-halflings-regular.woff b/web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.woff similarity index 100% rename from web/pgadmin/static/fonts/glyphicons-halflings-regular.woff rename to web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.woff diff --git a/web/pgadmin/static/fonts/glyphicons-halflings-regular.woff2 b/web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.woff2 similarity index 100% rename from web/pgadmin/static/fonts/glyphicons-halflings-regular.woff2 rename to web/pgadmin/static/vendor/bootstrap/glyphicons-halflings-regular.woff2 diff --git a/web/pgadmin/static/js/codemirror/addon/comment/comment.js b/web/pgadmin/static/vendor/codemirror/addon/comment/comment.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/comment/comment.js rename to web/pgadmin/static/vendor/codemirror/addon/comment/comment.js diff --git a/web/pgadmin/static/js/codemirror/addon/comment/continuecomment.js b/web/pgadmin/static/vendor/codemirror/addon/comment/continuecomment.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/comment/continuecomment.js rename to web/pgadmin/static/vendor/codemirror/addon/comment/continuecomment.js diff --git a/web/pgadmin/static/js/codemirror/addon/dialog/dialog.css b/web/pgadmin/static/vendor/codemirror/addon/dialog/dialog.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/dialog/dialog.css rename to web/pgadmin/static/vendor/codemirror/addon/dialog/dialog.css diff --git a/web/pgadmin/static/js/codemirror/addon/dialog/dialog.js b/web/pgadmin/static/vendor/codemirror/addon/dialog/dialog.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/dialog/dialog.js rename to web/pgadmin/static/vendor/codemirror/addon/dialog/dialog.js diff --git a/web/pgadmin/static/js/codemirror/addon/display/autorefresh.js b/web/pgadmin/static/vendor/codemirror/addon/display/autorefresh.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/display/autorefresh.js rename to web/pgadmin/static/vendor/codemirror/addon/display/autorefresh.js diff --git a/web/pgadmin/static/js/codemirror/addon/display/fullscreen.css b/web/pgadmin/static/vendor/codemirror/addon/display/fullscreen.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/display/fullscreen.css rename to web/pgadmin/static/vendor/codemirror/addon/display/fullscreen.css diff --git a/web/pgadmin/static/js/codemirror/addon/display/fullscreen.js b/web/pgadmin/static/vendor/codemirror/addon/display/fullscreen.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/display/fullscreen.js rename to web/pgadmin/static/vendor/codemirror/addon/display/fullscreen.js diff --git a/web/pgadmin/static/js/codemirror/addon/display/panel.js b/web/pgadmin/static/vendor/codemirror/addon/display/panel.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/display/panel.js rename to web/pgadmin/static/vendor/codemirror/addon/display/panel.js diff --git a/web/pgadmin/static/js/codemirror/addon/display/placeholder.js b/web/pgadmin/static/vendor/codemirror/addon/display/placeholder.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/display/placeholder.js rename to web/pgadmin/static/vendor/codemirror/addon/display/placeholder.js diff --git a/web/pgadmin/static/js/codemirror/addon/display/rulers.js b/web/pgadmin/static/vendor/codemirror/addon/display/rulers.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/display/rulers.js rename to web/pgadmin/static/vendor/codemirror/addon/display/rulers.js diff --git a/web/pgadmin/static/js/codemirror/addon/edit/closebrackets.js b/web/pgadmin/static/vendor/codemirror/addon/edit/closebrackets.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/edit/closebrackets.js rename to web/pgadmin/static/vendor/codemirror/addon/edit/closebrackets.js diff --git a/web/pgadmin/static/js/codemirror/addon/edit/closetag.js b/web/pgadmin/static/vendor/codemirror/addon/edit/closetag.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/edit/closetag.js rename to web/pgadmin/static/vendor/codemirror/addon/edit/closetag.js diff --git a/web/pgadmin/static/js/codemirror/addon/edit/continuelist.js b/web/pgadmin/static/vendor/codemirror/addon/edit/continuelist.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/edit/continuelist.js rename to web/pgadmin/static/vendor/codemirror/addon/edit/continuelist.js diff --git a/web/pgadmin/static/js/codemirror/addon/edit/matchbrackets.js b/web/pgadmin/static/vendor/codemirror/addon/edit/matchbrackets.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/edit/matchbrackets.js rename to web/pgadmin/static/vendor/codemirror/addon/edit/matchbrackets.js diff --git a/web/pgadmin/static/js/codemirror/addon/edit/matchtags.js b/web/pgadmin/static/vendor/codemirror/addon/edit/matchtags.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/edit/matchtags.js rename to web/pgadmin/static/vendor/codemirror/addon/edit/matchtags.js diff --git a/web/pgadmin/static/js/codemirror/addon/edit/trailingspace.js b/web/pgadmin/static/vendor/codemirror/addon/edit/trailingspace.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/edit/trailingspace.js rename to web/pgadmin/static/vendor/codemirror/addon/edit/trailingspace.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/brace-fold.js b/web/pgadmin/static/vendor/codemirror/addon/fold/brace-fold.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/brace-fold.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/brace-fold.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/comment-fold.js b/web/pgadmin/static/vendor/codemirror/addon/fold/comment-fold.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/comment-fold.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/comment-fold.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/foldcode.js b/web/pgadmin/static/vendor/codemirror/addon/fold/foldcode.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/foldcode.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/foldcode.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/foldgutter.css b/web/pgadmin/static/vendor/codemirror/addon/fold/foldgutter.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/foldgutter.css rename to web/pgadmin/static/vendor/codemirror/addon/fold/foldgutter.css diff --git a/web/pgadmin/static/js/codemirror/addon/fold/foldgutter.js b/web/pgadmin/static/vendor/codemirror/addon/fold/foldgutter.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/foldgutter.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/foldgutter.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/indent-fold.js b/web/pgadmin/static/vendor/codemirror/addon/fold/indent-fold.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/indent-fold.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/indent-fold.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/markdown-fold.js b/web/pgadmin/static/vendor/codemirror/addon/fold/markdown-fold.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/markdown-fold.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/markdown-fold.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/pgadmin-sqlfoldcode.js b/web/pgadmin/static/vendor/codemirror/addon/fold/pgadmin-sqlfoldcode.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/pgadmin-sqlfoldcode.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/pgadmin-sqlfoldcode.js diff --git a/web/pgadmin/static/js/codemirror/addon/fold/xml-fold.js b/web/pgadmin/static/vendor/codemirror/addon/fold/xml-fold.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/fold/xml-fold.js rename to web/pgadmin/static/vendor/codemirror/addon/fold/xml-fold.js diff --git a/web/pgadmin/static/js/codemirror/addon/hint/anyword-hint.js b/web/pgadmin/static/vendor/codemirror/addon/hint/anyword-hint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/anyword-hint.js rename to web/pgadmin/static/vendor/codemirror/addon/hint/anyword-hint.js diff --git a/web/pgadmin/static/js/codemirror/addon/hint/css-hint.js b/web/pgadmin/static/vendor/codemirror/addon/hint/css-hint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/css-hint.js rename to web/pgadmin/static/vendor/codemirror/addon/hint/css-hint.js diff --git a/web/pgadmin/static/js/codemirror/addon/hint/html-hint.js b/web/pgadmin/static/vendor/codemirror/addon/hint/html-hint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/html-hint.js rename to web/pgadmin/static/vendor/codemirror/addon/hint/html-hint.js diff --git a/web/pgadmin/static/js/codemirror/addon/hint/javascript-hint.js b/web/pgadmin/static/vendor/codemirror/addon/hint/javascript-hint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/javascript-hint.js rename to web/pgadmin/static/vendor/codemirror/addon/hint/javascript-hint.js diff --git a/web/pgadmin/static/js/codemirror/addon/hint/show-hint.css b/web/pgadmin/static/vendor/codemirror/addon/hint/show-hint.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/show-hint.css rename to web/pgadmin/static/vendor/codemirror/addon/hint/show-hint.css diff --git a/web/pgadmin/static/js/codemirror/addon/hint/show-hint.js b/web/pgadmin/static/vendor/codemirror/addon/hint/show-hint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/show-hint.js rename to web/pgadmin/static/vendor/codemirror/addon/hint/show-hint.js diff --git a/web/pgadmin/static/js/codemirror/addon/hint/sql-hint.js b/web/pgadmin/static/vendor/codemirror/addon/hint/sql-hint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/sql-hint.js rename to web/pgadmin/static/vendor/codemirror/addon/hint/sql-hint.js diff --git a/web/pgadmin/static/js/codemirror/addon/hint/xml-hint.js b/web/pgadmin/static/vendor/codemirror/addon/hint/xml-hint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/hint/xml-hint.js rename to web/pgadmin/static/vendor/codemirror/addon/hint/xml-hint.js diff --git a/web/pgadmin/static/js/codemirror/addon/lint/coffeescript-lint.js b/web/pgadmin/static/vendor/codemirror/addon/lint/coffeescript-lint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/coffeescript-lint.js rename to web/pgadmin/static/vendor/codemirror/addon/lint/coffeescript-lint.js diff --git a/web/pgadmin/static/js/codemirror/addon/lint/css-lint.js b/web/pgadmin/static/vendor/codemirror/addon/lint/css-lint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/css-lint.js rename to web/pgadmin/static/vendor/codemirror/addon/lint/css-lint.js diff --git a/web/pgadmin/static/js/codemirror/addon/lint/html-lint.js b/web/pgadmin/static/vendor/codemirror/addon/lint/html-lint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/html-lint.js rename to web/pgadmin/static/vendor/codemirror/addon/lint/html-lint.js diff --git a/web/pgadmin/static/js/codemirror/addon/lint/javascript-lint.js b/web/pgadmin/static/vendor/codemirror/addon/lint/javascript-lint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/javascript-lint.js rename to web/pgadmin/static/vendor/codemirror/addon/lint/javascript-lint.js diff --git a/web/pgadmin/static/js/codemirror/addon/lint/json-lint.js b/web/pgadmin/static/vendor/codemirror/addon/lint/json-lint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/json-lint.js rename to web/pgadmin/static/vendor/codemirror/addon/lint/json-lint.js diff --git a/web/pgadmin/static/js/codemirror/addon/lint/lint.css b/web/pgadmin/static/vendor/codemirror/addon/lint/lint.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/lint.css rename to web/pgadmin/static/vendor/codemirror/addon/lint/lint.css diff --git a/web/pgadmin/static/js/codemirror/addon/lint/lint.js b/web/pgadmin/static/vendor/codemirror/addon/lint/lint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/lint.js rename to web/pgadmin/static/vendor/codemirror/addon/lint/lint.js diff --git a/web/pgadmin/static/js/codemirror/addon/lint/yaml-lint.js b/web/pgadmin/static/vendor/codemirror/addon/lint/yaml-lint.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/lint/yaml-lint.js rename to web/pgadmin/static/vendor/codemirror/addon/lint/yaml-lint.js diff --git a/web/pgadmin/static/js/codemirror/addon/merge/merge.css b/web/pgadmin/static/vendor/codemirror/addon/merge/merge.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/merge/merge.css rename to web/pgadmin/static/vendor/codemirror/addon/merge/merge.css diff --git a/web/pgadmin/static/js/codemirror/addon/merge/merge.js b/web/pgadmin/static/vendor/codemirror/addon/merge/merge.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/merge/merge.js rename to web/pgadmin/static/vendor/codemirror/addon/merge/merge.js diff --git a/web/pgadmin/static/js/codemirror/addon/mode/loadmode.js b/web/pgadmin/static/vendor/codemirror/addon/mode/loadmode.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/mode/loadmode.js rename to web/pgadmin/static/vendor/codemirror/addon/mode/loadmode.js diff --git a/web/pgadmin/static/js/codemirror/addon/mode/multiplex.js b/web/pgadmin/static/vendor/codemirror/addon/mode/multiplex.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/mode/multiplex.js rename to web/pgadmin/static/vendor/codemirror/addon/mode/multiplex.js diff --git a/web/pgadmin/static/js/codemirror/addon/mode/multiplex_test.js b/web/pgadmin/static/vendor/codemirror/addon/mode/multiplex_test.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/mode/multiplex_test.js rename to web/pgadmin/static/vendor/codemirror/addon/mode/multiplex_test.js diff --git a/web/pgadmin/static/js/codemirror/addon/mode/overlay.js b/web/pgadmin/static/vendor/codemirror/addon/mode/overlay.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/mode/overlay.js rename to web/pgadmin/static/vendor/codemirror/addon/mode/overlay.js diff --git a/web/pgadmin/static/js/codemirror/addon/mode/simple.js b/web/pgadmin/static/vendor/codemirror/addon/mode/simple.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/mode/simple.js rename to web/pgadmin/static/vendor/codemirror/addon/mode/simple.js diff --git a/web/pgadmin/static/js/codemirror/addon/runmode/colorize.js b/web/pgadmin/static/vendor/codemirror/addon/runmode/colorize.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/runmode/colorize.js rename to web/pgadmin/static/vendor/codemirror/addon/runmode/colorize.js diff --git a/web/pgadmin/static/js/codemirror/addon/runmode/runmode-standalone.js b/web/pgadmin/static/vendor/codemirror/addon/runmode/runmode-standalone.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/runmode/runmode-standalone.js rename to web/pgadmin/static/vendor/codemirror/addon/runmode/runmode-standalone.js diff --git a/web/pgadmin/static/js/codemirror/addon/runmode/runmode.js b/web/pgadmin/static/vendor/codemirror/addon/runmode/runmode.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/runmode/runmode.js rename to web/pgadmin/static/vendor/codemirror/addon/runmode/runmode.js diff --git a/web/pgadmin/static/js/codemirror/addon/runmode/runmode.node.js b/web/pgadmin/static/vendor/codemirror/addon/runmode/runmode.node.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/runmode/runmode.node.js rename to web/pgadmin/static/vendor/codemirror/addon/runmode/runmode.node.js diff --git a/web/pgadmin/static/js/codemirror/addon/scroll/annotatescrollbar.js b/web/pgadmin/static/vendor/codemirror/addon/scroll/annotatescrollbar.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/scroll/annotatescrollbar.js rename to web/pgadmin/static/vendor/codemirror/addon/scroll/annotatescrollbar.js diff --git a/web/pgadmin/static/js/codemirror/addon/scroll/scrollpastend.js b/web/pgadmin/static/vendor/codemirror/addon/scroll/scrollpastend.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/scroll/scrollpastend.js rename to web/pgadmin/static/vendor/codemirror/addon/scroll/scrollpastend.js diff --git a/web/pgadmin/static/js/codemirror/addon/scroll/simplescrollbars.css b/web/pgadmin/static/vendor/codemirror/addon/scroll/simplescrollbars.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/scroll/simplescrollbars.css rename to web/pgadmin/static/vendor/codemirror/addon/scroll/simplescrollbars.css diff --git a/web/pgadmin/static/js/codemirror/addon/scroll/simplescrollbars.js b/web/pgadmin/static/vendor/codemirror/addon/scroll/simplescrollbars.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/scroll/simplescrollbars.js rename to web/pgadmin/static/vendor/codemirror/addon/scroll/simplescrollbars.js diff --git a/web/pgadmin/static/js/codemirror/addon/search/jump-to-line.js b/web/pgadmin/static/vendor/codemirror/addon/search/jump-to-line.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/search/jump-to-line.js rename to web/pgadmin/static/vendor/codemirror/addon/search/jump-to-line.js diff --git a/web/pgadmin/static/js/codemirror/addon/search/match-highlighter.js b/web/pgadmin/static/vendor/codemirror/addon/search/match-highlighter.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/search/match-highlighter.js rename to web/pgadmin/static/vendor/codemirror/addon/search/match-highlighter.js diff --git a/web/pgadmin/static/js/codemirror/addon/search/matchesonscrollbar.css b/web/pgadmin/static/vendor/codemirror/addon/search/matchesonscrollbar.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/search/matchesonscrollbar.css rename to web/pgadmin/static/vendor/codemirror/addon/search/matchesonscrollbar.css diff --git a/web/pgadmin/static/js/codemirror/addon/search/matchesonscrollbar.js b/web/pgadmin/static/vendor/codemirror/addon/search/matchesonscrollbar.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/search/matchesonscrollbar.js rename to web/pgadmin/static/vendor/codemirror/addon/search/matchesonscrollbar.js diff --git a/web/pgadmin/static/js/codemirror/addon/search/search.js b/web/pgadmin/static/vendor/codemirror/addon/search/search.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/search/search.js rename to web/pgadmin/static/vendor/codemirror/addon/search/search.js diff --git a/web/pgadmin/static/js/codemirror/addon/search/searchcursor.js b/web/pgadmin/static/vendor/codemirror/addon/search/searchcursor.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/search/searchcursor.js rename to web/pgadmin/static/vendor/codemirror/addon/search/searchcursor.js diff --git a/web/pgadmin/static/js/codemirror/addon/selection/active-line.js b/web/pgadmin/static/vendor/codemirror/addon/selection/active-line.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/selection/active-line.js rename to web/pgadmin/static/vendor/codemirror/addon/selection/active-line.js diff --git a/web/pgadmin/static/js/codemirror/addon/selection/mark-selection.js b/web/pgadmin/static/vendor/codemirror/addon/selection/mark-selection.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/selection/mark-selection.js rename to web/pgadmin/static/vendor/codemirror/addon/selection/mark-selection.js diff --git a/web/pgadmin/static/js/codemirror/addon/selection/selection-pointer.js b/web/pgadmin/static/vendor/codemirror/addon/selection/selection-pointer.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/selection/selection-pointer.js rename to web/pgadmin/static/vendor/codemirror/addon/selection/selection-pointer.js diff --git a/web/pgadmin/static/js/codemirror/addon/tern/tern.css b/web/pgadmin/static/vendor/codemirror/addon/tern/tern.css similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/tern/tern.css rename to web/pgadmin/static/vendor/codemirror/addon/tern/tern.css diff --git a/web/pgadmin/static/js/codemirror/addon/tern/tern.js b/web/pgadmin/static/vendor/codemirror/addon/tern/tern.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/tern/tern.js rename to web/pgadmin/static/vendor/codemirror/addon/tern/tern.js diff --git a/web/pgadmin/static/js/codemirror/addon/tern/worker.js b/web/pgadmin/static/vendor/codemirror/addon/tern/worker.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/tern/worker.js rename to web/pgadmin/static/vendor/codemirror/addon/tern/worker.js diff --git a/web/pgadmin/static/js/codemirror/addon/wrap/hardwrap.js b/web/pgadmin/static/vendor/codemirror/addon/wrap/hardwrap.js similarity index 100% rename from web/pgadmin/static/js/codemirror/addon/wrap/hardwrap.js rename to web/pgadmin/static/vendor/codemirror/addon/wrap/hardwrap.js diff --git a/web/pgadmin/static/css/codemirror/codemirror.css b/web/pgadmin/static/vendor/codemirror/codemirror.css similarity index 100% rename from web/pgadmin/static/css/codemirror/codemirror.css rename to web/pgadmin/static/vendor/codemirror/codemirror.css diff --git a/web/pgadmin/static/js/codemirror/lib/codemirror.js b/web/pgadmin/static/vendor/codemirror/lib/codemirror.js similarity index 100% rename from web/pgadmin/static/js/codemirror/lib/codemirror.js rename to web/pgadmin/static/vendor/codemirror/lib/codemirror.js diff --git a/web/pgadmin/static/js/codemirror/mode/sql/sql.js b/web/pgadmin/static/vendor/codemirror/mode/sql/sql.js similarity index 100% rename from web/pgadmin/static/js/codemirror/mode/sql/sql.js rename to web/pgadmin/static/vendor/codemirror/mode/sql/sql.js diff --git a/web/pgadmin/static/js/flotr2/bean-min.js b/web/pgadmin/static/vendor/flotr2/bean-min.js similarity index 100% rename from web/pgadmin/static/js/flotr2/bean-min.js rename to web/pgadmin/static/vendor/flotr2/bean-min.js diff --git a/web/pgadmin/static/js/flotr2/bean.js b/web/pgadmin/static/vendor/flotr2/bean.js similarity index 100% rename from web/pgadmin/static/js/flotr2/bean.js rename to web/pgadmin/static/vendor/flotr2/bean.js diff --git a/web/pgadmin/static/js/flotr2/flotr2.amd.js b/web/pgadmin/static/vendor/flotr2/flotr2.amd.js similarity index 100% rename from web/pgadmin/static/js/flotr2/flotr2.amd.js rename to web/pgadmin/static/vendor/flotr2/flotr2.amd.js diff --git a/web/pgadmin/static/vendor/font-awesome/.npmignore b/web/pgadmin/static/vendor/font-awesome/.npmignore new file mode 100644 index 000000000..54a691f81 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/.npmignore @@ -0,0 +1,42 @@ +*.pyc +*.egg-info +*.db +*.db.old +*.swp +*.db-journal + +.coverage +.DS_Store +.installed.cfg +_gh_pages/* + +.idea/* +.svn/* +src/website/static/* +src/website/media/* + +bin +cfcache +develop-eggs +dist +downloads +eggs +parts +tmp +.sass-cache +node_modules + +src/website/settingslocal.py +stunnel.log + +.ruby-version + +# don't need these in the npm package. +src/ +_config.yml +bower.json +component.json +composer.json +CONTRIBUTING.md +Gemfile +Gemfile.lock diff --git a/web/pgadmin/static/vendor/font-awesome/HELP-US-OUT.txt b/web/pgadmin/static/vendor/font-awesome/HELP-US-OUT.txt new file mode 100644 index 000000000..cfd9d9f3c --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/HELP-US-OUT.txt @@ -0,0 +1,7 @@ +I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, +Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, +comprehensive icon sets or copy and paste your own. + +Please. Check it out. + +-Dave Gandy diff --git a/web/pgadmin/static/vendor/font-awesome/README.md b/web/pgadmin/static/vendor/font-awesome/README.md new file mode 100644 index 000000000..abe2489f3 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/README.md @@ -0,0 +1,100 @@ +#[Font Awesome v4.5.0](http://fontawesome.io) +###The iconic font and CSS framework + +Font Awesome is a full suite of 605 pictographic icons for easy scalable vector graphics on websites, +created and maintained by [Dave Gandy](http://twitter.com/davegandy). +Stay up to date with the latest release and announcements on Twitter: +[@fontawesome](http://twitter.com/fontawesome). + +Get started at http://fontawesome.io! + +##License +- The Font Awesome font is licensed under the SIL OFL 1.1: + - http://scripts.sil.org/OFL +- Font Awesome CSS, LESS, and Sass files are licensed under the MIT License: + - http://opensource.org/licenses/mit-license.html +- The Font Awesome documentation is licensed under the CC BY 3.0 License: + - http://creativecommons.org/licenses/by/3.0/ +- Attribution is no longer required as of Font Awesome 3.0, but much appreciated: + - `Font Awesome by Dave Gandy - http://fontawesome.io` +- Full details: http://fontawesome.io/license + +##Changelog +- [v4.5.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.5.0+is%3Aclosed) +- [v4.4.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.4.0+is%3Aclosed) +- [v4.3.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.3.0+is%3Aclosed) +- [v4.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=12&page=1&state=closed) +- [v4.1.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=6&page=1&state=closed) +- [v4.0.3 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=9&page=1&state=closed) +- [v4.0.2 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=8&page=1&state=closed) +- [v4.0.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=7&page=1&state=closed) +- [v4.0.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=2&page=1&state=closed) +- [v3.2.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=5&page=1&state=closed) +- [v3.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=3&page=1&state=closed) +- [v3.1.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=4&page=1&state=closed) +- v3.1.0 - Added 54 icons, icon stacking styles, flipping and rotating icons, removed Sass support +- v3.0.2 - much improved rendering and alignment in IE7 +- v3.0.1 - much improved rendering in webkit, various bug fixes +- v3.0.0 - all icons redesigned from scratch, optimized for Bootstrap's 14px default + +## Contributing + +Please read through our [contributing guidelines](https://github.com/FortAwesome/Font-Awesome/blob/master/CONTRIBUTING.md). +Included are directions for opening issues, coding standards, and notes on development. + +##Versioning + +Font Awesome will be maintained under the Semantic Versioning guidelines as much as possible. Releases will be numbered +with the following format: + +`..` + +And constructed with the following guidelines: + +* Breaking backward compatibility bumps the major (and resets the minor and patch) +* New additions, including new icons, without breaking backward compatibility bumps the minor (and resets the patch) +* Bug fixes and misc changes bumps the patch + +For more information on SemVer, please visit http://semver.org. + +##Author +- Email: dave@fontawesome.io +- Twitter: http://twitter.com/davegandy +- GitHub: https://github.com/davegandy + +##Component +To include as a [component](http://github.com/component/component), just run + + $ component install FortAwesome/Font-Awesome + +Or add + + "FortAwesome/Font-Awesome": "*" + +to the `dependencies` in your `component.json`. + +## Hacking on Font Awesome + +**Before you can build the project**, you must first have the following installed: + +- [Ruby](https://www.ruby-lang.org/en/) +- Ruby Development Headers + - **Ubuntu:** `sudo apt-get install ruby-dev` *(Only if you're __NOT__ using `rbenv` or `rvm`)* + - **Windows:** [DevKit](http://rubyinstaller.org/) +- [Bundler](http://bundler.io/) (Run `gem install bundler` to install). +- [Node Package Manager (AKA NPM)](https://docs.npmjs.com/getting-started/installing-node) +- [Less](http://lesscss.org/) (Run `npm install -g less` to install). +- [Less Plugin: Clean CSS](https://github.com/less/less-plugin-clean-css) (Run `npm install -g less-plugin-clean-css` to install). + +From the root of the repository, install the tools used to develop. + + $ bundle install + $ npm install + +Build the project and documentation: + + $ bundle exec jekyll build + +Or serve it on a local server on http://localhost:7998/Font-Awesome/: + + $ bundle exec jekyll -w serve diff --git a/web/pgadmin/static/css/font-awesome.css b/web/pgadmin/static/vendor/font-awesome/css/font-awesome.css similarity index 100% rename from web/pgadmin/static/css/font-awesome.css rename to web/pgadmin/static/vendor/font-awesome/css/font-awesome.css diff --git a/web/pgadmin/static/vendor/font-awesome/css/font-awesome.css.map b/web/pgadmin/static/vendor/font-awesome/css/font-awesome.css.map new file mode 100644 index 000000000..60763a864 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/css/font-awesome.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": ";;;;;;;AAGA,UAUC;EATC,WAAW,EAAE,aAAa;EAC1B,GAAG,EAAE,+CAAgE;EACrE,GAAG,EAAE,ySAAmG;EAKxG,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;ACTpB,GAAmB;EACjB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uCAAwD;EAC9D,SAAS,EAAE,OAAO;EAClB,cAAc,EAAE,IAAI;EACpB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,SAAS,EAAE,eAAe;;;ACN5B,MAAsB;EACpB,SAAS,EAAE,SAAS;EACpB,WAAW,EAAE,MAAS;EACtB,cAAc,EAAE,IAAI;;AAEtB,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;ACVtC,MAAsB;EACpB,KAAK,EAAE,SAAW;EAClB,UAAU,EAAE,MAAM;;ACDpB,MAAsB;EACpB,YAAY,EAAE,CAAC;EACf,WAAW,ECKU,SAAS;EDJ9B,eAAe,EAAE,IAAI;EACrB,WAAK;IAAE,QAAQ,EAAE,QAAQ;;AAE3B,MAAsB;EACpB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,UAAa;EACnB,KAAK,ECFgB,SAAS;EDG9B,GAAG,EAAE,SAAU;EACf,UAAU,EAAE,MAAM;EAClB,YAAuB;IACrB,IAAI,EAAE,UAA0B;;AEbpC,UAA0B;EACxB,OAAO,EAAE,gBAAgB;EACzB,MAAM,EAAE,iBAA4B;EACpC,aAAa,EAAE,IAAI;;AAGrB,WAAY;EAAE,KAAK,EAAE,KAAK;;AAC1B,UAAW;EAAE,KAAK,EAAE,IAAI;;AAGtB,aAAY;EAAE,YAAY,EAAE,IAAI;AAChC,cAAa;EAAE,WAAW,EAAE,IAAI;;ACXlC,QAAwB;EACtB,iBAAiB,EAAE,0BAA0B;EACrC,SAAS,EAAE,0BAA0B;;AAG/C,SAAyB;EACvB,iBAAiB,EAAE,4BAA4B;EACvC,SAAS,EAAE,4BAA4B;;AAGjD,0BASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AAIrC,kBASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AC5BrC,aAA8B;ECY5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,aAAgB;EAC/B,aAAa,EAAE,aAAgB;EAC3B,SAAS,EAAE,aAAgB;;ADdrC,cAA8B;ECW5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADbrC,cAA8B;ECU5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADXrC,mBAAmC;ECejC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADjBzC,iBAAmC;ECcjC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADZzC;;;;uBAIuC;EACrC,MAAM,EAAE,IAAI;;AEfd,SAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;;AAExB,0BAAyD;EACvD,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,MAAM;;AAEpB,YAA4B;EAAE,WAAW,EAAE,OAAO;;AAClD,YAA4B;EAAE,SAAS,EAAE,GAAG;;AAC5C,WAA2B;EAAE,KAAK,ELVZ,IAAI;;;;AMN1B,gBAAgC;EAAE,OAAO,ENoQ1B,GAAO;;AMnQtB,gBAAgC;EAAE,OAAO,EN0W1B,GAAO;;AMzWtB,iBAAiC;EAAE,OAAO,ENmb1B,GAAO;;AMlbvB,qBAAqC;EAAE,OAAO,ENmL1B,GAAO;;AMlL3B,gBAAgC;EAAE,OAAO,ENkR1B,GAAO;;AMjRtB,eAA+B;EAAE,OAAO,ENke1B,GAAO;;AMjerB,iBAAiC;EAAE,OAAO,ENse1B,GAAO;;AMrevB,eAA+B;EAAE,OAAO,EN+iB1B,GAAO;;AM9iBrB,eAA+B;EAAE,OAAO,ENyN1B,GAAO;;AMxNrB,mBAAmC;EAAE,OAAO,ENggB1B,GAAO;;AM/fzB,aAA6B;EAAE,OAAO,EN8f1B,GAAO;;AM7fnB,kBAAkC;EAAE,OAAO,EN+f1B,GAAO;;AM9fxB,gBAAgC;EAAE,OAAO,ENoG1B,GAAO;;AMnGtB;;gBAEgC;EAAE,OAAO,ENkgB1B,GAAO;;AMjgBtB,sBAAsC;EAAE,OAAO,ENua1B,GAAO;;AMta5B,uBAAuC;EAAE,OAAO,ENqa1B,GAAO;;AMpa7B,oBAAoC;EAAE,OAAO,EN+X1B,GAAO;;AM9X1B,iBAAiC;EAAE,OAAO,ENsb1B,GAAO;;AMrbvB;cAC8B;EAAE,OAAO,ENwH1B,GAAO;;AMvHpB,kBAAkC;EAAE,OAAO,ENygB1B,GAAO;;AMxgBxB,eAA+B;EAAE,OAAO,ENmQ1B,GAAO;;AMlQrB,iBAAiC;EAAE,OAAO,EN6L1B,GAAO;;AM5LvB,kBAAkC;EAAE,OAAO,EN0G1B,GAAO;;AMzGxB,eAA+B;EAAE,OAAO,EN+Y1B,GAAO;;AM9YrB,mBAAmC;EAAE,OAAO,ENiJ1B,GAAO;;AMhJzB,8BAA8C;EAAE,OAAO,ENI1B,GAAO;;AMHpC,4BAA4C;EAAE,OAAO,ENM1B,GAAO;;AMLlC,gBAAgC;EAAE,OAAO,ENkQ1B,GAAO;;AMjQtB,wBAAwC;EAAE,OAAO,EN4W1B,GAAO;;AM3W9B;iBACiC;EAAE,OAAO,ENmY1B,GAAO;;AMlYvB,kBAAkC;EAAE,OAAO,EN8X1B,GAAO;;AM7XxB,mBAAmC;EAAE,OAAO,ENiS1B,GAAO;;AMhSzB,eAA+B;EAAE,OAAO,ENoS1B,GAAO;;AMnSrB,eAA+B;EAAE,OAAO,ENgM1B,GAAO;;AM/LrB,qBAAqC;EAAE,OAAO,EN+O1B,GAAO;;AM9O3B,qBAAqC;EAAE,OAAO,EN8hB1B,GAAO;;AM7hB3B,sBAAsC;EAAE,OAAO,EN4hB1B,GAAO;;AM3hB5B,oBAAoC;EAAE,OAAO,EN6hB1B,GAAO;;AM5hB1B,iBAAiC;EAAE,OAAO,EN2W1B,GAAO;;AM1WvB,kBAAkC;EAAE,OAAO,ENW1B,GAAO;;AMVxB,cAA8B;EAAE,OAAO,ENod1B,GAAO;;AMndpB,eAA+B;EAAE,OAAO,ENod1B,GAAO;;AMndrB,eAA+B;EAAE,OAAO,EN2B1B,GAAO;;AM1BrB,mBAAmC;EAAE,OAAO,EN2B1B,GAAO;;AM1BzB,gBAAgC;EAAE,OAAO,ENkW1B,GAAO;;AMjWtB,iBAAiC;EAAE,OAAO,ENwC1B,GAAO;;AMvCvB,eAA+B;EAAE,OAAO,EN8L1B,GAAO;;AM7LrB,eAA+B;EAAE,OAAO,ENmB1B,GAAO;;AMlBrB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB,sBAAsC;EAAE,OAAO,ENid1B,GAAO;;AMhd5B,qBAAqC;EAAE,OAAO,ENid1B,GAAO;;AMhd3B,qBAAqC;EAAE,OAAO,EN1C1B,GAAO;;AM2C3B,uBAAuC;EAAE,OAAO,EN7C1B,GAAO;;AM8C7B,sBAAsC;EAAE,OAAO,EN3C1B,GAAO;;AM4C5B,wBAAwC;EAAE,OAAO,EN9C1B,GAAO;;AM+C9B,eAA+B;EAAE,OAAO,ENwQ1B,GAAO;;AMvQrB;kBACkC;EAAE,OAAO,ENmT1B,GAAO;;AMlTxB,iBAAiC;EAAE,OAAO,ENmO1B,GAAO;;AMlOvB,uBAAuC;EAAE,OAAO,ENigB1B,GAAO;;AMhgB7B;;oBAEoC;EAAE,OAAO,EN+T1B,GAAO;;AM9T1B,iBAAiC;EAAE,OAAO,ENwT1B,GAAO;;AMvTvB,qBAAqC;EAAE,OAAO,EN+Q1B,GAAO;;AM9Q3B,iBAAiC;EAAE,OAAO,EN5D1B,GAAO;;AM6DvB,eAA+B;EAAE,OAAO,EN8c1B,GAAO;;AM7crB;0BAC0C;EAAE,OAAO,ENqT1B,GAAO;;AMpThC,yBAAyC;EAAE,OAAO,ENuX1B,GAAO;;AMtX/B,yBAAyC;EAAE,OAAO,EN0C1B,GAAO;;AMzC/B,iBAAiC;EAAE,OAAO,ENjC1B,GAAO;;AMkCvB,wBAAwC;EAAE,OAAO,ENma1B,GAAO;;AMla9B,wBAAwC;EAAE,OAAO,EN4H1B,GAAO;;AM3H9B,mBAAmC;EAAE,OAAO,EN7B1B,GAAO;;AM8BzB,eAA+B;EAAE,OAAO,EN0T1B,GAAO;;AMzTrB,gBAAgC;EAAE,OAAO,ENwS1B,GAAO;;AMvStB,eAA+B;EAAE,OAAO,ENia1B,GAAO;;AMharB,kBAAkC;EAAE,OAAO,ENgK1B,GAAO;;AM/JxB,uBAAuC;EAAE,OAAO,ENuH1B,GAAO;;AMtH7B,uBAAuC;EAAE,OAAO,EN4Z1B,GAAO;;AM3Z7B,gBAAgC;EAAE,OAAO,EN4F1B,GAAO;;AM3FtB,uBAAuC;EAAE,OAAO,ENoC1B,GAAO;;AMnC7B,wBAAwC;EAAE,OAAO,ENoC1B,GAAO;;AMnC9B,sBAAsC;EAAE,OAAO,ENsT1B,GAAO;;AMrT5B,uBAAuC;EAAE,OAAO,ENyQ1B,GAAO;;AMxQ7B,uBAAuC;EAAE,OAAO,ENwb1B,GAAO;;AMvb7B,uBAAuC;EAAE,OAAO,ENsB1B,GAAO;;AMrB7B,0BAA0C;EAAE,OAAO,EN2T1B,GAAO;;AM1ThC,sBAAsC;EAAE,OAAO,ENsM1B,GAAO;;AMrM5B,qBAAqC;EAAE,OAAO,EN6D1B,GAAO;;AM5D3B,yBAAyC;EAAE,OAAO,ENob1B,GAAO;;AMnb/B,yBAAyC;EAAE,OAAO,ENkB1B,GAAO;;AMjB/B,cAA8B;EAAE,OAAO,EN/C1B,GAAO;;AMgDpB,qBAAqC;EAAE,OAAO,EN3D1B,GAAO;;AM4D3B,sBAAsC;EAAE,OAAO,EN3D1B,GAAO;;AM4D5B,mBAAmC;EAAE,OAAO,EN3D1B,GAAO;;AM4DzB,qBAAqC;EAAE,OAAO,EN/D1B,GAAO;;AMgE3B;gBACgC;EAAE,OAAO,ENqV1B,GAAO;;AMpVtB,iBAAiC;EAAE,OAAO,ENuF1B,GAAO;;AMtFvB,mBAAmC;EAAE,OAAO,EN4C1B,GAAO;;AM3CzB,eAA+B;EAAE,OAAO,ENmS1B,GAAO;;AMlSrB,gBAAgC;EAAE,OAAO,ENsP1B,GAAO;;AMrPtB,mBAAmC;EAAE,OAAO,EN9D1B,GAAO;;AM+DzB,6BAA6C;EAAE,OAAO,ENgF1B,GAAO;;AM/EnC,eAA+B;EAAE,OAAO,EN+I1B,GAAO;;AM9IrB,eAA+B;EAAE,OAAO,ENoM1B,GAAO;;AMnMrB,eAA+B;EAAE,OAAO,ENmH1B,GAAO;;AMlHrB,cAA8B;EAAE,OAAO,ENiF1B,GAAO;;AMhFpB,oBAAoC;EAAE,OAAO,ENiF1B,GAAO;;AMhF1B;+BAC+C;EAAE,OAAO,EN0E1B,GAAO;;AMzErC,gBAAgC;EAAE,OAAO,ENmR1B,GAAO;;AMlRtB,mBAAmC;EAAE,OAAO,EN/B1B,GAAO;;AMgCzB,iBAAiC;EAAE,OAAO,ENoS1B,GAAO;;AMnSvB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,iBAAiC;EAAE,OAAO,ENqN1B,GAAO;;AMpNvB,qBAAqC;EAAE,OAAO,ENE1B,GAAO;;AMD3B,uBAAuC;EAAE,OAAO,ENF1B,GAAO;;AMG7B,kBAAkC;EAAE,OAAO,EN2S1B,GAAO;;AM1SxB,wBAAwC;EAAE,OAAO,ENyU1B,GAAO;;AMxU9B,iBAAiC;EAAE,OAAO,EN8G1B,GAAO;;AM7GvB,sBAAsC;EAAE,OAAO,EN+G1B,GAAO;;AM9G5B,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,mBAAmC;EAAE,OAAO,ENrF1B,GAAO;;AMsFzB;oBACoC;EAAE,OAAO,EN/E1B,GAAO;;AMgF1B,yBAAyC;EAAE,OAAO,ENua1B,GAAO;;AMta/B,0BAA0C;EAAE,OAAO,ENmE1B,GAAO;;AMlEhC,uBAAuC;EAAE,OAAO,EN5C1B,GAAO;;AM6C7B,cAA8B;EAAE,OAAO,ENqK1B,GAAO;;AMpKpB;eAC+B;EAAE,OAAO,ENK1B,GAAO;;AMJrB,mBAAmC;EAAE,OAAO,ENQ1B,GAAO;;AMPzB,sBAAsC;EAAE,OAAO,ENmY1B,GAAO;;AMlY5B,wBAAwC;EAAE,OAAO,ENiY1B,GAAO;;AMhY9B,oBAAoC;EAAE,OAAO,EN2V1B,GAAO;;AM1V1B,kBAAkC;EAAE,OAAO,ENyI1B,GAAO;;AMxIxB,mBAAmC;EAAE,OAAO,ENyT1B,GAAO;;AMxTzB,0BAA0C;EAAE,OAAO,ENiL1B,GAAO;;AMhLhC,qBAAqC;EAAE,OAAO,EN0X1B,GAAO;;AMzX3B,wBAAwC;EAAE,OAAO,EN8C1B,GAAO;;AM7C9B,kBAAkC;EAAE,OAAO,ENoT1B,GAAO;;AMnTxB,iBAAiC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YvB,wBAAwC;EAAE,OAAO,EN6G1B,GAAO;;AM5G9B,iBAAiC;EAAE,OAAO,EN8Z1B,GAAO;;AM7ZvB,kBAAkC;EAAE,OAAO,EN+J1B,GAAO;;AM9JxB,gBAAgC;EAAE,OAAO,ENsO1B,GAAO;;AMrOtB,mBAAmC;EAAE,OAAO,EN2U1B,GAAO;;AM1UzB,qBAAqC;EAAE,OAAO,EN/E1B,GAAO;;AMgF3B,uBAAuC;EAAE,OAAO,ENoO1B,GAAO;;AMnO7B,kBAAkC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YxB;mBACmC;EAAE,OAAO,ENuC1B,GAAO;;AMtCzB,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,iBAAiC;EAAE,OAAO,ENiZ1B,GAAO;;AMhZvB,sBAAsC;EAAE,OAAO,ENR1B,GAAO;;AMS5B,cAA8B;EAAE,OAAO,EN4Q1B,GAAO;;AM3QpB,gBAAgC;EAAE,OAAO,ENgH1B,GAAO;;AM/GtB,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,eAA+B;EAAE,OAAO,ENzG1B,GAAO;;AM0GrB,sBAAsC;EAAE,OAAO,ENzD1B,GAAO;;AM0D5B,uBAAuC;EAAE,OAAO,EN0G1B,GAAO;;AMzG7B,sBAAsC;EAAE,OAAO,ENwG1B,GAAO;;AMvG5B,oBAAoC;EAAE,OAAO,ENyG1B,GAAO;;AMxG1B,sBAAsC;EAAE,OAAO,ENqG1B,GAAO;;AMpG5B,4BAA4C;EAAE,OAAO,EN5I1B,GAAO;;AM6IlC,6BAA6C;EAAE,OAAO,ENxI1B,GAAO;;AMyInC,0BAA0C;EAAE,OAAO,ENxI1B,GAAO;;AMyIhC,4BAA4C;EAAE,OAAO,ENhJ1B,GAAO;;AMiJlC,gBAAgC;EAAE,OAAO,ENsF1B,GAAO;;AMrFtB,iBAAiC;EAAE,OAAO,ENia1B,GAAO;;AMhavB,gBAAgC;EAAE,OAAO,ENiV1B,GAAO;;AMhVtB,iBAAiC;EAAE,OAAO,ENgD1B,GAAO;;AM/CvB,oBAAoC;EAAE,OAAO,ENvG1B,GAAO;;AMwG1B,qBAAqC;EAAE,OAAO,ENzI1B,GAAO;;AM0I3B;gBACgC;EAAE,OAAO,ENqY1B,GAAO;;AMpYtB;eAC+B;EAAE,OAAO,ENuI1B,GAAO;;AMtIrB,gBAAgC;EAAE,OAAO,ENpD1B,GAAO;;AMqDtB,gBAAgC;EAAE,OAAO,EN+C1B,GAAO;;AM9CtB;mBACmC;EAAE,OAAO,ENwP1B,GAAO;;AMvPzB;kBACkC;EAAE,OAAO,ENkC1B,GAAO;;AMjCxB,oBAAoC;EAAE,OAAO,ENsL1B,GAAO;;AMrL1B;mBACmC;EAAE,OAAO,EN0C1B,GAAO;;AMzCzB,iBAAiC;EAAE,OAAO,ENiS1B,GAAO;;AMhSvB;;eAE+B;EAAE,OAAO,EN9I1B,GAAO;;AM+IrB,kBAAkC;EAAE,OAAO,ENgI1B,GAAO;;AM/HxB,kBAAkC;EAAE,OAAO,EN8H1B,GAAO;;AM7HxB,wBAAwC;EAAE,OAAO,EN4S1B,GAAO;;AM3S9B,oBAAoC;EAAE,OAAO,ENoW1B,GAAO;;AMnW1B,gBAAgC;EAAE,OAAO,ENmT1B,GAAO;;AMlTtB,gBAAgC;EAAE,OAAO,ENkI1B,GAAO;;AMjItB,gBAAgC;EAAE,OAAO,ENuV1B,GAAO;;AMtVtB,oBAAoC;EAAE,OAAO,ENwL1B,GAAO;;AMvL1B,2BAA2C;EAAE,OAAO,ENyL1B,GAAO;;AMxLjC,6BAA6C;EAAE,OAAO,ENyD1B,GAAO;;AMxDnC,sBAAsC;EAAE,OAAO,ENuD1B,GAAO;;AMtD5B,gBAAgC;EAAE,OAAO,ENsJ1B,GAAO;;AMrJtB,qBAAqC;EAAE,OAAO,ENtH1B,GAAO;;AMuH3B,mBAAmC;EAAE,OAAO,ENhH1B,GAAO;;AMiHzB,qBAAqC;EAAE,OAAO,ENvH1B,GAAO;;AMwH3B,sBAAsC;EAAE,OAAO,ENvH1B,GAAO;;AMwH5B,kBAAkC;EAAE,OAAO,ENvE1B,GAAO;;AMwExB;eAC+B;EAAE,OAAO,EN2P1B,GAAO;;AM1PrB;oBACoC;EAAE,OAAO,EN+P1B,GAAO;;AM9P1B;mBACmC;EAAE,OAAO,EN4P1B,GAAO;;AM3PzB,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,mBAAmC;EAAE,OAAO,ENkG1B,GAAO;;AMjGzB;eAC+B;EAAE,OAAO,EN8U1B,GAAO;;AM7UrB;gBACgC;EAAE,OAAO,ENqB1B,GAAO;;AMpBtB;qBACqC;EAAE,OAAO,EN2R1B,GAAO;;AM1R3B,oBAAoC;EAAE,OAAO,ENpF1B,GAAO;;AMqF1B,qBAAqC;EAAE,OAAO,ENnF1B,GAAO;;AMoF3B;eAC+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,kBAAkC;EAAE,OAAO,ENkO1B,GAAO;;AMjOxB,mBAAmC;EAAE,OAAO,ENkU1B,GAAO;;AMjUzB;oBACoC;EAAE,OAAO,EN1G1B,GAAO;;AM2G1B,sBAAsC;EAAE,OAAO,ENgF1B,GAAO;;AM/E5B,mBAAmC;EAAE,OAAO,ENnD1B,GAAO;;AMoDzB,yBAAyC;EAAE,OAAO,ENzG1B,GAAO;;AM0G/B,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,kBAAkC;EAAE,OAAO,ENsU1B,GAAO;;AMrUxB,sBAAsC;EAAE,OAAO,EN+P1B,GAAO;;AM9P5B,mBAAmC;EAAE,OAAO,ENsQ1B,GAAO;;AMrQzB,iBAAiC;EAAE,OAAO,ENvL1B,GAAO;;AMwLvB,iBAAiC;EAAE,OAAO,ENzG1B,GAAO;;AM0GvB,kBAAkC;EAAE,OAAO,ENtF1B,GAAO;;AMuFxB,sBAAsC;EAAE,OAAO,EN3B1B,GAAO;;AM4B5B,qBAAqC;EAAE,OAAO,ENxK1B,GAAO;;AMyK3B,qBAAqC;EAAE,OAAO,ENkC1B,GAAO;;AMjC3B,oBAAoC;EAAE,OAAO,EN3O1B,GAAO;;AM4O1B,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,sBAAsC;EAAE,OAAO,EN/C1B,GAAO;;AMgD5B,eAA+B;EAAE,OAAO,ENpM1B,GAAO;;AMqMrB,mBAAmC;EAAE,OAAO,ENe1B,GAAO;;AMdzB,sBAAsC;EAAE,OAAO,ENgJ1B,GAAO;;AM/I5B,4BAA4C;EAAE,OAAO,EN5O1B,GAAO;;AM6OlC,6BAA6C;EAAE,OAAO,EN5O1B,GAAO;;AM6OnC,0BAA0C;EAAE,OAAO,EN5O1B,GAAO;;AM6OhC,4BAA4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC,qBAAqC;EAAE,OAAO,EN5O1B,GAAO;;AM6O3B,sBAAsC;EAAE,OAAO,EN5O1B,GAAO;;AM6O5B,mBAAmC;EAAE,OAAO,EN5O1B,GAAO;;AM6OzB,qBAAqC;EAAE,OAAO,ENhP1B,GAAO;;AMiP3B,kBAAkC;EAAE,OAAO,ENlG1B,GAAO;;AMmGxB,iBAAiC;EAAE,OAAO,ENuC1B,GAAO;;AMtCvB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB;iBACiC;EAAE,OAAO,ENyF1B,GAAO;;AMxFvB,mBAAmC;EAAE,OAAO,EN9I1B,GAAO;;AM+IzB,qBAAqC;EAAE,OAAO,EN0I1B,GAAO;;AMzI3B,sBAAsC;EAAE,OAAO,EN0I1B,GAAO;;AMzI5B,kBAAkC;EAAE,OAAO,ENgN1B,GAAO;;AM/MxB,iBAAiC;EAAE,OAAO,ENnJ1B,GAAO;;AMoJvB;gBACgC;EAAE,OAAO,ENkJ1B,GAAO;;AMjJtB,qBAAqC;EAAE,OAAO,ENnB1B,GAAO;;AMoB3B,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,wBAAwC;EAAE,OAAO,ENvC1B,GAAO;;AMwC9B,kBAAkC;EAAE,OAAO,EN0L1B,GAAO;;AMzLxB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,gBAAgC;EAAE,OAAO,ENoE1B,GAAO;;AMnEtB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,iBAAiC;EAAE,OAAO,ENrD1B,GAAO;;AMsDvB,yBAAyC;EAAE,OAAO,ENvD1B,GAAO;;AMwD/B,mBAAmC;EAAE,OAAO,ENuO1B,GAAO;;AMtOzB,eAA+B;EAAE,OAAO,ENtJ1B,GAAO;;AMuJrB;oBACoC;EAAE,OAAO,ENqI1B,GAAO;;AMpI1B;;sBAEsC;EAAE,OAAO,ENuM1B,GAAO;;AMtM5B,yBAAyC;EAAE,OAAO,ENkC1B,GAAO;;AMjC/B,eAA+B;EAAE,OAAO,EN5I1B,GAAO;;AM6IrB,oBAAoC;EAAE,OAAO,EN7J1B,GAAO;;AM8J1B;uBACuC;EAAE,OAAO,EN1L1B,GAAO;;AM2L7B,mBAAmC;EAAE,OAAO,EN4G1B,GAAO;;AM3GzB,eAA+B;EAAE,OAAO,ENT1B,GAAO;;AMUrB,sBAAsC;EAAE,OAAO,ENhH1B,GAAO;;AMiH5B,sBAAsC;EAAE,OAAO,EN8M1B,GAAO;;AM7M5B,oBAAoC;EAAE,OAAO,ENyM1B,GAAO;;AMxM1B,iBAAiC;EAAE,OAAO,ENvH1B,GAAO;;AMwHvB,uBAAuC;EAAE,OAAO,ENmG1B,GAAO;;AMlG7B,qBAAqC;EAAE,OAAO,EN8C1B,GAAO;;AM7C3B,2BAA2C;EAAE,OAAO,EN8C1B,GAAO;;AM7CjC,iBAAiC;EAAE,OAAO,ENgJ1B,GAAO;;AM/IvB,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,4BAA4C;EAAE,OAAO,ENjF1B,GAAO;;AMkFlC,iBAAiC;EAAE,OAAO,ENoH1B,GAAO;;AMnHvB,iBAAiC;EAAE,OAAO,ENkC1B,GAAO;;AMjCvB,8BAA8C;EAAE,OAAO,ENlM1B,GAAO;;AMmMpC,+BAA+C;EAAE,OAAO,ENlM1B,GAAO;;AMmMrC,4BAA4C;EAAE,OAAO,ENlM1B,GAAO;;AMmMlC,8BAA8C;EAAE,OAAO,ENtM1B,GAAO;;AMuMpC,gBAAgC;EAAE,OAAO,EN/B1B,GAAO;;AMgCtB,eAA+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,iBAAiC;EAAE,OAAO,EN9S1B,GAAO;;AM+SvB,qBAAqC;EAAE,OAAO,ENmP1B,GAAO;;AMlP3B,mBAAmC;EAAE,OAAO,EN9O1B,GAAO;;AM+OzB,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN4G1B,GAAO;;AM3G3B,sBAAsC;EAAE,OAAO,ENsE1B,GAAO;;AMrE5B,iBAAiC;EAAE,OAAO,EN2M1B,GAAO;;AM1MvB,uBAAuC;EAAE,OAAO,EN6B1B,GAAO;;AM5B7B,yBAAyC;EAAE,OAAO,EN6B1B,GAAO;;AM5B/B,mBAAmC;EAAE,OAAO,ENhB1B,GAAO;;AMiBzB,qBAAqC;EAAE,OAAO,ENlB1B,GAAO;;AMmB3B,uBAAuC;EAAE,OAAO,ENvN1B,GAAO;;AMwN7B,wBAAwC;EAAE,OAAO,ENiD1B,GAAO;;AMhD9B,+BAA+C;EAAE,OAAO,EN3I1B,GAAO;;AM4IrC,uBAAuC;EAAE,OAAO,ENkH1B,GAAO;;AMjH7B,kBAAkC;EAAE,OAAO,EN1L1B,GAAO;;AM2LxB;8BAC8C;EAAE,OAAO,ENjP1B,GAAO;;AMkPpC;4BAC4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC;+BAC+C;EAAE,OAAO,ENnP1B,GAAO;;AMoPrC;cAC8B;EAAE,OAAO,EN7J1B,GAAO;;AM8JpB,cAA8B;EAAE,OAAO,EN/F1B,GAAO;;AMgGpB;cAC8B;EAAE,OAAO,EN4N1B,GAAO;;AM3NpB;cAC8B;EAAE,OAAO,ENvD1B,GAAO;;AMwDpB;;;cAG8B;EAAE,OAAO,ENrD1B,GAAO;;AMsDpB;;cAE8B;EAAE,OAAO,EN8E1B,GAAO;;AM7EpB;cAC8B;EAAE,OAAO,ENtD1B,GAAO;;AMuDpB;cAC8B;EAAE,OAAO,ENzR1B,GAAO;;AM0RpB,eAA+B;EAAE,OAAO,ENzJ1B,GAAO;;AM0JrB,oBAAoC;EAAE,OAAO,EN7I1B,GAAO;;AM8I1B,yBAAyC;EAAE,OAAO,EN2G1B,GAAO;;AM1G/B,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,2BAA2C;EAAE,OAAO,EN2G1B,GAAO;;AM1GjC,2BAA2C;EAAE,OAAO,EN8G1B,GAAO;;AM7GjC,4BAA4C;EAAE,OAAO,EN8G1B,GAAO;;AM7GlC,oBAAoC;EAAE,OAAO,ENgK1B,GAAO;;AM/J1B,sBAAsC;EAAE,OAAO,EN4J1B,GAAO;;AM3J5B,yBAAyC;EAAE,OAAO,ENwO1B,GAAO;;AMvO/B,kBAAkC;EAAE,OAAO,ENqO1B,GAAO;;AMpOxB,eAA+B;EAAE,OAAO,EN+N1B,GAAO;;AM9NrB,sBAAsC;EAAE,OAAO,EN+N1B,GAAO;;AM9N5B,uBAAuC;EAAE,OAAO,ENmO1B,GAAO;;AMlO7B,kBAAkC;EAAE,OAAO,ENxM1B,GAAO;;AMyMxB,yBAAyC;EAAE,OAAO,EN+G1B,GAAO;;AM9G/B,oBAAoC;EAAE,OAAO,ENnF1B,GAAO;;AMoF1B,iBAAiC;EAAE,OAAO,EN/I1B,GAAO;;AMgJvB,cAA8B;EAAE,OAAO,ENhX1B,GAAO;;AMiXpB,oBAAoC;EAAE,OAAO,ENxT1B,GAAO;;AMyT1B,2BAA2C;EAAE,OAAO,ENxT1B,GAAO;;AMyTjC,iBAAiC;EAAE,OAAO,ENyK1B,GAAO;;AMxKvB,wBAAwC;EAAE,OAAO,ENyK1B,GAAO;;AMxK9B,0BAA0C;EAAE,OAAO,ENtD1B,GAAO;;AMuDhC,wBAAwC;EAAE,OAAO,ENpD1B,GAAO;;AMqD9B,0BAA0C;EAAE,OAAO,ENvD1B,GAAO;;AMwDhC,2BAA2C;EAAE,OAAO,ENvD1B,GAAO;;AMwDjC,gBAAgC;EAAE,OAAO,ENxW1B,GAAO;;AMyWtB,kBAAkC;EAAE,OAAO,EN0M1B,GAAO;;AMzMxB,kBAAkC;EAAE,OAAO,ENpX1B,GAAO;;AMqXxB,gBAAgC;EAAE,OAAO,ENpE1B,GAAO;;AMqEtB,mBAAmC;EAAE,OAAO,EN1N1B,GAAO;;AM2NzB,gBAAgC;EAAE,OAAO,ENqE1B,GAAO;;AMpEtB,qBAAqC;EAAE,OAAO,ENtJ1B,GAAO;;AMuJ3B,iBAAiC;EAAE,OAAO,ENuJ1B,GAAO;;AMtJvB,iBAAiC;EAAE,OAAO,EN/L1B,GAAO;;AMgMvB,eAA+B;EAAE,OAAO,EN1D1B,GAAO;;AM2DrB;mBACmC;EAAE,OAAO,ENnI1B,GAAO;;AMoIzB,gBAAgC;EAAE,OAAO,EN2G1B,GAAO;;AM1GtB,iBAAiC;EAAE,OAAO,ENxC1B,GAAO;;AMyCvB,kBAAkC;EAAE,OAAO,ENrX1B,GAAO;;AMsXxB,cAA8B;EAAE,OAAO,ENpU1B,GAAO;;AMqUpB,aAA6B;EAAE,OAAO,ENgL1B,GAAO;;AM/KnB,gBAAgC;EAAE,OAAO,ENqL1B,GAAO;;AMpLtB,iBAAiC;EAAE,OAAO,ENa1B,GAAO;;AMZvB,oBAAoC;EAAE,OAAO,ENrC1B,GAAO;;AMsC1B,yBAAyC;EAAE,OAAO,EN8E1B,GAAO;;AM7E/B,+BAA+C;EAAE,OAAO,ENtX1B,GAAO;;AMuXrC,8BAA8C;EAAE,OAAO,ENxX1B,GAAO;;AMyXpC;8BAC8C;EAAE,OAAO,EN3T1B,GAAO;;AM4TpC,uBAAuC;EAAE,OAAO,ENjP1B,GAAO;;AMkP7B,qBAAqC;EAAE,OAAO,EN+K1B,GAAO;;AM9K3B,uBAAuC;EAAE,OAAO,ENmK1B,GAAO;;AMlK7B;cAC8B;EAAE,OAAO,ENoI1B,GAAO;;AMnIpB,wBAAwC;EAAE,OAAO,ENjB1B,GAAO;;AMkB9B,wBAAwC;EAAE,OAAO,EN6D1B,GAAO;;AM5D9B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,0BAA0C;EAAE,OAAO,EN7O1B,GAAO;;AM8OhC,oBAAoC;EAAE,OAAO,EN2K1B,GAAO;;AM1K1B,iBAAiC;EAAE,OAAO,ENvD1B,GAAO;;AMwDvB;;qBAEqC;EAAE,OAAO,ENsI1B,GAAO;;AMrI3B;yBACyC;EAAE,OAAO,ENjK1B,GAAO;;AMkK/B,gBAAgC;EAAE,OAAO,ENwK1B,GAAO;;AMvKtB,iBAAiC;EAAE,OAAO,ENvK1B,GAAO;;AMwKvB,iBAAiC;EAAE,OAAO,ENhB1B,GAAO;;AMiBvB,wBAAwC;EAAE,OAAO,ENhB1B,GAAO;;AMiB9B,6BAA6C;EAAE,OAAO,ENsE1B,GAAO;;AMrEnC,sBAAsC;EAAE,OAAO,ENoE1B,GAAO;;AMnE5B,oBAAoC;EAAE,OAAO,EN7Q1B,GAAO;;AM8Q1B,eAA+B;EAAE,OAAO,EN1Q1B,GAAO;;AM2QrB,qBAAqC;EAAE,OAAO,ENjD1B,GAAO;;AMkD3B,yBAAyC;EAAE,OAAO,ENjD1B,GAAO;;AMkD/B,iBAAiC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQvB,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,mBAAmC;EAAE,OAAO,ENzI1B,GAAO;;AM0IzB,cAA8B;EAAE,OAAO,EN9O1B,GAAO;;AM+OpB,mBAAmC;EAAE,OAAO,EN3W1B,GAAO;;AM4WzB,gBAAgC;EAAE,OAAO,EN9T1B,GAAO;;AM+TtB,cAA8B;EAAE,OAAO,ENnE1B,GAAO;;AMoEpB,gBAAgC;EAAE,OAAO,ENoC1B,GAAO;;AMnCtB,eAA+B;EAAE,OAAO,ENjS1B,GAAO;;AMkSrB,gBAAgC;EAAE,OAAO,ENjS1B,GAAO;;AMkStB,kBAAkC;EAAE,OAAO,ENtY1B,GAAO;;AMuYxB,yBAAyC;EAAE,OAAO,ENtY1B,GAAO;;AMuY/B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,uBAAuC;EAAE,OAAO,EN2C1B,GAAO;;AM1C7B,kBAAkC;EAAE,OAAO,ENvC1B,GAAO;;AMwCxB;cAC8B;EAAE,OAAO,EN3W1B,GAAO;;AM4WpB;eAC+B;EAAE,OAAO,EN2D1B,GAAO;;AM1DrB,eAA+B;EAAE,OAAO,ENuF1B,GAAO;;AMtFrB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,qBAAqC;EAAE,OAAO,ENpS1B,GAAO;;AMqS3B,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,mBAAmC;EAAE,OAAO,EN1S1B,GAAO;;AM2SzB,qBAAqC;EAAE,OAAO,ENxP1B,GAAO;;AMyP3B,sBAAsC;EAAE,OAAO,ENjP1B,GAAO;;AMkP5B,uBAAuC;EAAE,OAAO,EN9P1B,GAAO;;AM+P7B,4BAA4C;EAAE,OAAO,ENxP1B,GAAO;;AMyPlC;;uBAEuC;EAAE,OAAO,ENjQ1B,GAAO;;AMkQ7B;yBACyC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQ/B;uBACuC;EAAE,OAAO,ENxQ1B,GAAO;;AMyQ7B;uBACuC;EAAE,OAAO,EN7P1B,GAAO;;AM8P7B,sBAAsC;EAAE,OAAO,EN1Q1B,GAAO;;AM2Q5B,eAA+B;EAAE,OAAO,ENsG1B,GAAO;;AMrGrB,kBAAkC;EAAE,OAAO,ENlV1B,GAAO;;AMmVxB,mBAAmC;EAAE,OAAO,ENnL1B,GAAO;;AMoLzB;;;;oBAIoC;EAAE,OAAO,ENxK1B,GAAO;;AMyK1B,yBAAyC;EAAE,OAAO,ENpW1B,GAAO;;AMqW/B;gBACgC;EAAE,OAAO,EN1E1B,GAAO;;AM2EtB;iBACiC;EAAE,OAAO,ENpT1B,GAAO;;AMqTvB,qBAAqC;EAAE,OAAO,EN1O1B,GAAO;;AM2O3B,cAA8B;EAAE,OAAO,EN5O1B,GAAO;;AM6OpB,sBAAsC;EAAE,OAAO,EN7N1B,GAAO;;AM8N5B,wBAAwC;EAAE,OAAO,ENwB1B,GAAO;;AMvB9B,aAA6B;EAAE,OAAO,ENzF1B,GAAO;;AM0FnB;iBACiC;EAAE,OAAO,EN2F1B,GAAO;;AM1FvB;sBACsC;EAAE,OAAO,EN9H1B,GAAO;;AM+H5B;wBACwC;EAAE,OAAO,EN/H1B,GAAO;;AMgI9B,kBAAkC;EAAE,OAAO,EN3N1B,GAAO;;AM4NxB;sBACsC;EAAE,OAAO,ENrX1B,GAAO;;AMsX5B,iBAAiC;EAAE,OAAO,ENnO1B,GAAO;;AMoOvB,oBAAoC;EAAE,OAAO,ENlI1B,GAAO;;AMmI1B,kBAAkC;EAAE,OAAO,EN1C1B,GAAO;;AM2CxB,oBAAoC;EAAE,OAAO,EN7D1B,GAAO;;AM8D1B,2BAA2C;EAAE,OAAO,EN7D1B,GAAO;;AM8DjC,eAA+B;EAAE,OAAO,ENpb1B,GAAO;;AMqbrB;mBACmC;EAAE,OAAO,ENzQ1B,GAAO;;AM0QzB,cAA8B;EAAE,OAAO,ENsC1B,GAAO;;AMrCpB,qBAAqC;EAAE,OAAO,EN/b1B,GAAO;;AMgc3B,eAA+B;EAAE,OAAO,ENrH1B,GAAO;;AMsHrB,qBAAqC;EAAE,OAAO,ENlD1B,GAAO;;AMmD3B,iBAAiC;EAAE,OAAO,ENsC1B,GAAO;;AMrCvB,eAA+B;EAAE,OAAO,ENiF1B,GAAO;;AMhFrB,sBAAsC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ5B,eAA+B;EAAE,OAAO,ENuE1B,GAAO;;AMtErB,qBAAqC;EAAE,OAAO,ENjb1B,GAAO;;AMkb3B,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,wBAAwC;EAAE,OAAO,ENhQ1B,GAAO;;AMiQ9B,kBAAkC;EAAE,OAAO,EN9Z1B,GAAO;;AM+ZxB,wBAAwC;EAAE,OAAO,ENla1B,GAAO;;AMma9B,sBAAsC;EAAE,OAAO,ENpa1B,GAAO;;AMqa5B,kBAAkC;EAAE,OAAO,ENta1B,GAAO;;AMuaxB,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,qBAAqC;EAAE,OAAO,ENld1B,GAAO;;AMmd3B,uBAAuC;EAAE,OAAO,ENld1B,GAAO;;AMmd7B,gBAAgC;EAAE,OAAO,ENY1B,GAAO;;AMXtB,oBAAoC;EAAE,OAAO,EN3X1B,GAAO;;AM4X1B,aAA6B;EAAE,OAAO,ENre1B,GAAO;;AMsenB,qBAAqC;EAAE,OAAO,ENjV1B,GAAO;;AMkV3B,sBAAsC;EAAE,OAAO,ENpK1B,GAAO;;AMqK5B,wBAAwC;EAAE,OAAO,ENrd1B,GAAO;;AMsd9B,qBAAqC;EAAE,OAAO,EN3f1B,GAAO;;AM4f3B,oBAAoC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ1B,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,iBAAiC;EAAE,OAAO,EN1O1B,GAAO;;AM2OvB,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,qBAAqC;EAAE,OAAO,ENN1B,GAAO;;AMO3B,oBAAoC;EAAE,OAAO,ENN1B,GAAO;;AMO1B,kBAAkC;EAAE,OAAO,EN/d1B,GAAO;;AMgexB,cAA8B;EAAE,OAAO,EN7c1B,GAAO;;AM8cpB,kBAAkC;EAAE,OAAO,EN1P1B,GAAO;;AM2PxB,oBAAoC;EAAE,OAAO,ENhhB1B,GAAO;;AMihB1B,aAA6B;EAAE,OAAO,EN7b1B,GAAO;;AM8bnB;;cAE8B;EAAE,OAAO,ENxQ1B,GAAO;;AMyQpB,mBAAmC;EAAE,OAAO,EN7M1B,GAAO;;AM8MzB,qBAAqC;EAAE,OAAO,ENpd1B,GAAO;;AMqd3B,yBAAyC;EAAE,OAAO,ENnZ1B,GAAO;;AMoZ/B,mBAAmC;EAAE,OAAO,ENxY1B,GAAO;;AMyYzB,mBAAmC;EAAE,OAAO,EN1T1B,GAAO;;AM2TzB,kBAAkC;EAAE,OAAO,ENxP1B,GAAO;;AMyPxB,iBAAiC;EAAE,OAAO,ENrH1B,GAAO;;AMsHvB,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,sBAAsC;EAAE,OAAO,ENrG1B,GAAO;;AMsG5B,mBAAmC;EAAE,OAAO,ENpG1B,GAAO;;AMqGzB,oBAAoC;EAAE,OAAO,EN5c1B,GAAO;;AM6c1B,0BAA0C;EAAE,OAAO,EN9c1B,GAAO;;AM+chC,kBAAkC;EAAE,OAAO,EN3Y1B,GAAO;;AM4YxB,eAA+B;EAAE,OAAO,ENhH1B,GAAO;;AMiHrB,sBAAsC;EAAE,OAAO,ENI1B,GAAO;;AMH5B,qBAAqC;EAAE,OAAO,EN5M1B,GAAO;;AM6M3B,sBAAsC;EAAE,OAAO,ENpE1B,GAAO;;AMqE5B,oBAAoC;EAAE,OAAO,ENhS1B,GAAO;;AMiS1B,gBAAgC;EAAE,OAAO,ENG1B,GAAO;;AMFtB,eAA+B;EAAE,OAAO,ENtO1B,GAAO;;AMuOrB,kBAAkC;EAAE,OAAO,EN7N1B,GAAO;;AM8NxB,sBAAsC;EAAE,OAAO,ENhC1B,GAAO;;AMiC5B,0BAA0C;EAAE,OAAO,ENhC1B,GAAO;;AMiChC,uBAAuC;EAAE,OAAO,END1B,GAAO;;AME7B,sBAAsC;EAAE,OAAO,EN1O1B,GAAO;;AM2O5B,qBAAqC;EAAE,OAAO,ENF1B,GAAO;;AMG3B,sBAAsC;EAAE,OAAO,EN3O1B,GAAO;;AM4O5B,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,wBAAwC;EAAE,OAAO,EN5O1B,GAAO;;AM6O9B,iBAAiC;EAAE,OAAO,ENvN1B,GAAO;;AMwNvB,4BAA4C;EAAE,OAAO,EN9X1B,GAAO;;AM+XlC,sBAAsC;EAAE,OAAO,ENhM1B,GAAO;;AMiM5B,mBAAmC;EAAE,OAAO,ENI1B,GAAO;;AMHzB,iBAAiC;EAAE,OAAO,EN7I1B,GAAO;;AM8IvB,oBAAoC;EAAE,OAAO,ENjB1B,GAAO;;AMkB1B,qBAAqC;EAAE,OAAO,ENhB1B,GAAO;;AMiB3B;cAC8B;EAAE,OAAO,ENphB1B,GAAO;;AMqhBpB,kBAAkC;EAAE,OAAO,ENd1B,GAAO;;AMexB,gBAAgC;EAAE,OAAO,ENnD1B,GAAO;;AMoDtB,iBAAiC;EAAE,OAAO,ENvF1B,GAAO;;AMwFvB,iBAAiC;EAAE,OAAO,ENrP1B,GAAO", +"sources": ["../scss/_path.scss","../scss/_core.scss","../scss/_larger.scss","../scss/_fixed-width.scss","../scss/_list.scss","../scss/_variables.scss","../scss/_bordered-pulled.scss","../scss/_animated.scss","../scss/_rotated-flipped.scss","../scss/_mixins.scss","../scss/_stacked.scss","../scss/_icons.scss"], +"names": [], +"file": "font-awesome.css" +} diff --git a/web/pgadmin/static/css/font-awesome.min.css b/web/pgadmin/static/vendor/font-awesome/css/font-awesome.min.css similarity index 100% rename from web/pgadmin/static/css/font-awesome.min.css rename to web/pgadmin/static/vendor/font-awesome/css/font-awesome.min.css diff --git a/web/pgadmin/static/fonts/FontAwesome.otf b/web/pgadmin/static/vendor/font-awesome/fonts/FontAwesome.otf similarity index 100% rename from web/pgadmin/static/fonts/FontAwesome.otf rename to web/pgadmin/static/vendor/font-awesome/fonts/FontAwesome.otf diff --git a/web/pgadmin/static/fonts/fontawesome-webfont.eot b/web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from web/pgadmin/static/fonts/fontawesome-webfont.eot rename to web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.eot diff --git a/web/pgadmin/static/fonts/fontawesome-webfont.svg b/web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from web/pgadmin/static/fonts/fontawesome-webfont.svg rename to web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.svg diff --git a/web/pgadmin/static/fonts/fontawesome-webfont.ttf b/web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from web/pgadmin/static/fonts/fontawesome-webfont.ttf rename to web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/web/pgadmin/static/fonts/fontawesome-webfont.woff b/web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from web/pgadmin/static/fonts/fontawesome-webfont.woff rename to web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.woff diff --git a/web/pgadmin/static/fonts/fontawesome-webfont.woff2 b/web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.woff2 similarity index 100% rename from web/pgadmin/static/fonts/fontawesome-webfont.woff2 rename to web/pgadmin/static/vendor/font-awesome/fonts/fontawesome-webfont.woff2 diff --git a/web/pgadmin/static/vendor/font-awesome/less/animated.less b/web/pgadmin/static/vendor/font-awesome/less/animated.less new file mode 100644 index 000000000..66ad52a5b --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/animated.less @@ -0,0 +1,34 @@ +// Animated Icons +// -------------------------- + +.@{fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.@{fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/bordered-pulled.less b/web/pgadmin/static/vendor/font-awesome/less/bordered-pulled.less new file mode 100644 index 000000000..f1c8ad75f --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/bordered-pulled.less @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.@{fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em @fa-border-color; + border-radius: .1em; +} + +.@{fa-css-prefix}-pull-left { float: left; } +.@{fa-css-prefix}-pull-right { float: right; } + +.@{fa-css-prefix} { + &.@{fa-css-prefix}-pull-left { margin-right: .3em; } + &.@{fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.@{fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/core.less b/web/pgadmin/static/vendor/font-awesome/less/core.less new file mode 100644 index 000000000..c577ac84a --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/core.less @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.@{fa-css-prefix} { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/fixed-width.less b/web/pgadmin/static/vendor/font-awesome/less/fixed-width.less new file mode 100644 index 000000000..110289f2f --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/fixed-width.less @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.@{fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/font-awesome.less b/web/pgadmin/static/vendor/font-awesome/less/font-awesome.less new file mode 100644 index 000000000..c35d3eeb9 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/font-awesome.less @@ -0,0 +1,17 @@ +/*! + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables.less"; +@import "mixins.less"; +@import "path.less"; +@import "core.less"; +@import "larger.less"; +@import "fixed-width.less"; +@import "list.less"; +@import "bordered-pulled.less"; +@import "animated.less"; +@import "rotated-flipped.less"; +@import "stacked.less"; +@import "icons.less"; diff --git a/web/pgadmin/static/vendor/font-awesome/less/icons.less b/web/pgadmin/static/vendor/font-awesome/less/icons.less new file mode 100644 index 000000000..ca60abd7e --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/icons.less @@ -0,0 +1,697 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.@{fa-css-prefix}-glass:before { content: @fa-var-glass; } +.@{fa-css-prefix}-music:before { content: @fa-var-music; } +.@{fa-css-prefix}-search:before { content: @fa-var-search; } +.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; } +.@{fa-css-prefix}-heart:before { content: @fa-var-heart; } +.@{fa-css-prefix}-star:before { content: @fa-var-star; } +.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; } +.@{fa-css-prefix}-user:before { content: @fa-var-user; } +.@{fa-css-prefix}-film:before { content: @fa-var-film; } +.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; } +.@{fa-css-prefix}-th:before { content: @fa-var-th; } +.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } +.@{fa-css-prefix}-check:before { content: @fa-var-check; } +.@{fa-css-prefix}-remove:before, +.@{fa-css-prefix}-close:before, +.@{fa-css-prefix}-times:before { content: @fa-var-times; } +.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } +.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } +.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; } +.@{fa-css-prefix}-signal:before { content: @fa-var-signal; } +.@{fa-css-prefix}-gear:before, +.@{fa-css-prefix}-cog:before { content: @fa-var-cog; } +.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; } +.@{fa-css-prefix}-home:before { content: @fa-var-home; } +.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; } +.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; } +.@{fa-css-prefix}-road:before { content: @fa-var-road; } +.@{fa-css-prefix}-download:before { content: @fa-var-download; } +.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; } +.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; } +.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; } +.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; } +.@{fa-css-prefix}-rotate-right:before, +.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; } +.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; } +.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; } +.@{fa-css-prefix}-lock:before { content: @fa-var-lock; } +.@{fa-css-prefix}-flag:before { content: @fa-var-flag; } +.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; } +.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; } +.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; } +.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; } +.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; } +.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; } +.@{fa-css-prefix}-tag:before { content: @fa-var-tag; } +.@{fa-css-prefix}-tags:before { content: @fa-var-tags; } +.@{fa-css-prefix}-book:before { content: @fa-var-book; } +.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; } +.@{fa-css-prefix}-print:before { content: @fa-var-print; } +.@{fa-css-prefix}-camera:before { content: @fa-var-camera; } +.@{fa-css-prefix}-font:before { content: @fa-var-font; } +.@{fa-css-prefix}-bold:before { content: @fa-var-bold; } +.@{fa-css-prefix}-italic:before { content: @fa-var-italic; } +.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; } +.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; } +.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; } +.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; } +.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; } +.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; } +.@{fa-css-prefix}-list:before { content: @fa-var-list; } +.@{fa-css-prefix}-dedent:before, +.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } +.@{fa-css-prefix}-indent:before { content: @fa-var-indent; } +.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } +.@{fa-css-prefix}-photo:before, +.@{fa-css-prefix}-image:before, +.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } +.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } +.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } +.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; } +.@{fa-css-prefix}-tint:before { content: @fa-var-tint; } +.@{fa-css-prefix}-edit:before, +.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } +.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } +.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } +.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } +.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } +.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } +.@{fa-css-prefix}-backward:before { content: @fa-var-backward; } +.@{fa-css-prefix}-play:before { content: @fa-var-play; } +.@{fa-css-prefix}-pause:before { content: @fa-var-pause; } +.@{fa-css-prefix}-stop:before { content: @fa-var-stop; } +.@{fa-css-prefix}-forward:before { content: @fa-var-forward; } +.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; } +.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; } +.@{fa-css-prefix}-eject:before { content: @fa-var-eject; } +.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; } +.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; } +.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; } +.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; } +.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; } +.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; } +.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; } +.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; } +.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; } +.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; } +.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; } +.@{fa-css-prefix}-ban:before { content: @fa-var-ban; } +.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; } +.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; } +.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; } +.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } +.@{fa-css-prefix}-mail-forward:before, +.@{fa-css-prefix}-share:before { content: @fa-var-share; } +.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } +.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } +.@{fa-css-prefix}-plus:before { content: @fa-var-plus; } +.@{fa-css-prefix}-minus:before { content: @fa-var-minus; } +.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } +.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; } +.@{fa-css-prefix}-gift:before { content: @fa-var-gift; } +.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; } +.@{fa-css-prefix}-fire:before { content: @fa-var-fire; } +.@{fa-css-prefix}-eye:before { content: @fa-var-eye; } +.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; } +.@{fa-css-prefix}-warning:before, +.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; } +.@{fa-css-prefix}-plane:before { content: @fa-var-plane; } +.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; } +.@{fa-css-prefix}-random:before { content: @fa-var-random; } +.@{fa-css-prefix}-comment:before { content: @fa-var-comment; } +.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; } +.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; } +.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; } +.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; } +.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } +.@{fa-css-prefix}-folder:before { content: @fa-var-folder; } +.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } +.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } +.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } +.@{fa-css-prefix}-bar-chart-o:before, +.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } +.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } +.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } +.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } +.@{fa-css-prefix}-key:before { content: @fa-var-key; } +.@{fa-css-prefix}-gears:before, +.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; } +.@{fa-css-prefix}-comments:before { content: @fa-var-comments; } +.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; } +.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; } +.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; } +.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; } +.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; } +.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; } +.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; } +.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; } +.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; } +.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; } +.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; } +.@{fa-css-prefix}-upload:before { content: @fa-var-upload; } +.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; } +.@{fa-css-prefix}-phone:before { content: @fa-var-phone; } +.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; } +.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } +.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } +.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } +.@{fa-css-prefix}-facebook-f:before, +.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } +.@{fa-css-prefix}-github:before { content: @fa-var-github; } +.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } +.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } +.@{fa-css-prefix}-feed:before, +.@{fa-css-prefix}-rss:before { content: @fa-var-rss; } +.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } +.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } +.@{fa-css-prefix}-bell:before { content: @fa-var-bell; } +.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; } +.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; } +.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; } +.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; } +.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; } +.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; } +.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; } +.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; } +.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; } +.@{fa-css-prefix}-globe:before { content: @fa-var-globe; } +.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; } +.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } +.@{fa-css-prefix}-filter:before { content: @fa-var-filter; } +.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } +.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } +.@{fa-css-prefix}-group:before, +.@{fa-css-prefix}-users:before { content: @fa-var-users; } +.@{fa-css-prefix}-chain:before, +.@{fa-css-prefix}-link:before { content: @fa-var-link; } +.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } +.@{fa-css-prefix}-flask:before { content: @fa-var-flask; } +.@{fa-css-prefix}-cut:before, +.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; } +.@{fa-css-prefix}-copy:before, +.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; } +.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; } +.@{fa-css-prefix}-save:before, +.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } +.@{fa-css-prefix}-square:before { content: @fa-var-square; } +.@{fa-css-prefix}-navicon:before, +.@{fa-css-prefix}-reorder:before, +.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } +.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } +.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } +.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } +.@{fa-css-prefix}-underline:before { content: @fa-var-underline; } +.@{fa-css-prefix}-table:before { content: @fa-var-table; } +.@{fa-css-prefix}-magic:before { content: @fa-var-magic; } +.@{fa-css-prefix}-truck:before { content: @fa-var-truck; } +.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; } +.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; } +.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; } +.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; } +.@{fa-css-prefix}-money:before { content: @fa-var-money; } +.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; } +.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; } +.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; } +.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; } +.@{fa-css-prefix}-columns:before { content: @fa-var-columns; } +.@{fa-css-prefix}-unsorted:before, +.@{fa-css-prefix}-sort:before { content: @fa-var-sort; } +.@{fa-css-prefix}-sort-down:before, +.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } +.@{fa-css-prefix}-sort-up:before, +.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } +.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } +.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } +.@{fa-css-prefix}-rotate-left:before, +.@{fa-css-prefix}-undo:before { content: @fa-var-undo; } +.@{fa-css-prefix}-legal:before, +.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; } +.@{fa-css-prefix}-dashboard:before, +.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; } +.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; } +.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; } +.@{fa-css-prefix}-flash:before, +.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; } +.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; } +.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; } +.@{fa-css-prefix}-paste:before, +.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; } +.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; } +.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; } +.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; } +.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; } +.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; } +.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; } +.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; } +.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; } +.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } +.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } +.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } +.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } +.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } +.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } +.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } +.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } +.@{fa-css-prefix}-beer:before { content: @fa-var-beer; } +.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; } +.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; } +.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; } +.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; } +.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; } +.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; } +.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; } +.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; } +.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; } +.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; } +.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; } +.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; } +.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; } +.@{fa-css-prefix}-mobile-phone:before, +.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; } +.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; } +.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; } +.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; } +.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; } +.@{fa-css-prefix}-circle:before { content: @fa-var-circle; } +.@{fa-css-prefix}-mail-reply:before, +.@{fa-css-prefix}-reply:before { content: @fa-var-reply; } +.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } +.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } +.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } +.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } +.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } +.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } +.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; } +.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; } +.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; } +.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } +.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } +.@{fa-css-prefix}-code:before { content: @fa-var-code; } +.@{fa-css-prefix}-mail-reply-all:before, +.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } +.@{fa-css-prefix}-star-half-empty:before, +.@{fa-css-prefix}-star-half-full:before, +.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } +.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; } +.@{fa-css-prefix}-crop:before { content: @fa-var-crop; } +.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; } +.@{fa-css-prefix}-unlink:before, +.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; } +.@{fa-css-prefix}-question:before { content: @fa-var-question; } +.@{fa-css-prefix}-info:before { content: @fa-var-info; } +.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; } +.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; } +.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; } +.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; } +.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; } +.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; } +.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; } +.@{fa-css-prefix}-shield:before { content: @fa-var-shield; } +.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; } +.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; } +.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; } +.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; } +.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; } +.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; } +.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; } +.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; } +.@{fa-css-prefix}-html5:before { content: @fa-var-html5; } +.@{fa-css-prefix}-css3:before { content: @fa-var-css3; } +.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } +.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } +.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } +.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } +.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } +.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } +.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } +.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } +.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; } +.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; } +.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; } +.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; } +.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; } +.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; } +.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; } +.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; } +.@{fa-css-prefix}-compass:before { content: @fa-var-compass; } +.@{fa-css-prefix}-toggle-down:before, +.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; } +.@{fa-css-prefix}-toggle-up:before, +.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; } +.@{fa-css-prefix}-toggle-right:before, +.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; } +.@{fa-css-prefix}-euro:before, +.@{fa-css-prefix}-eur:before { content: @fa-var-eur; } +.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; } +.@{fa-css-prefix}-dollar:before, +.@{fa-css-prefix}-usd:before { content: @fa-var-usd; } +.@{fa-css-prefix}-rupee:before, +.@{fa-css-prefix}-inr:before { content: @fa-var-inr; } +.@{fa-css-prefix}-cny:before, +.@{fa-css-prefix}-rmb:before, +.@{fa-css-prefix}-yen:before, +.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; } +.@{fa-css-prefix}-ruble:before, +.@{fa-css-prefix}-rouble:before, +.@{fa-css-prefix}-rub:before { content: @fa-var-rub; } +.@{fa-css-prefix}-won:before, +.@{fa-css-prefix}-krw:before { content: @fa-var-krw; } +.@{fa-css-prefix}-bitcoin:before, +.@{fa-css-prefix}-btc:before { content: @fa-var-btc; } +.@{fa-css-prefix}-file:before { content: @fa-var-file; } +.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; } +.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; } +.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; } +.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; } +.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; } +.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; } +.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; } +.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; } +.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; } +.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; } +.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; } +.@{fa-css-prefix}-xing:before { content: @fa-var-xing; } +.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; } +.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; } +.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; } +.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; } +.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; } +.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; } +.@{fa-css-prefix}-adn:before { content: @fa-var-adn; } +.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; } +.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; } +.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; } +.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; } +.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; } +.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; } +.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; } +.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; } +.@{fa-css-prefix}-apple:before { content: @fa-var-apple; } +.@{fa-css-prefix}-windows:before { content: @fa-var-windows; } +.@{fa-css-prefix}-android:before { content: @fa-var-android; } +.@{fa-css-prefix}-linux:before { content: @fa-var-linux; } +.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; } +.@{fa-css-prefix}-skype:before { content: @fa-var-skype; } +.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; } +.@{fa-css-prefix}-trello:before { content: @fa-var-trello; } +.@{fa-css-prefix}-female:before { content: @fa-var-female; } +.@{fa-css-prefix}-male:before { content: @fa-var-male; } +.@{fa-css-prefix}-gittip:before, +.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } +.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } +.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } +.@{fa-css-prefix}-archive:before { content: @fa-var-archive; } +.@{fa-css-prefix}-bug:before { content: @fa-var-bug; } +.@{fa-css-prefix}-vk:before { content: @fa-var-vk; } +.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; } +.@{fa-css-prefix}-renren:before { content: @fa-var-renren; } +.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; } +.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; } +.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; } +.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; } +.@{fa-css-prefix}-toggle-left:before, +.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; } +.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; } +.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; } +.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } +.@{fa-css-prefix}-turkish-lira:before, +.@{fa-css-prefix}-try:before { content: @fa-var-try; } +.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } +.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } +.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } +.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } +.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } +.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } +.@{fa-css-prefix}-institution:before, +.@{fa-css-prefix}-bank:before, +.@{fa-css-prefix}-university:before { content: @fa-var-university; } +.@{fa-css-prefix}-mortar-board:before, +.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } +.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } +.@{fa-css-prefix}-google:before { content: @fa-var-google; } +.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } +.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } +.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } +.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } +.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } +.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } +.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } +.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } +.@{fa-css-prefix}-language:before { content: @fa-var-language; } +.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } +.@{fa-css-prefix}-building:before { content: @fa-var-building; } +.@{fa-css-prefix}-child:before { content: @fa-var-child; } +.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } +.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } +.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } +.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } +.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } +.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } +.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } +.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } +.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } +.@{fa-css-prefix}-automobile:before, +.@{fa-css-prefix}-car:before { content: @fa-var-car; } +.@{fa-css-prefix}-cab:before, +.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } +.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } +.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } +.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } +.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } +.@{fa-css-prefix}-database:before { content: @fa-var-database; } +.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } +.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } +.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } +.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } +.@{fa-css-prefix}-file-photo-o:before, +.@{fa-css-prefix}-file-picture-o:before, +.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } +.@{fa-css-prefix}-file-zip-o:before, +.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } +.@{fa-css-prefix}-file-sound-o:before, +.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } +.@{fa-css-prefix}-file-movie-o:before, +.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } +.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } +.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } +.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } +.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } +.@{fa-css-prefix}-life-bouy:before, +.@{fa-css-prefix}-life-buoy:before, +.@{fa-css-prefix}-life-saver:before, +.@{fa-css-prefix}-support:before, +.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } +.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } +.@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } +.@{fa-css-prefix}-ge:before, +.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } +.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } +.@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-y-combinator-square:before, +.@{fa-css-prefix}-yc-square:before, +.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } +.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } +.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } +.@{fa-css-prefix}-wechat:before, +.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } +.@{fa-css-prefix}-send:before, +.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } +.@{fa-css-prefix}-send-o:before, +.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } +.@{fa-css-prefix}-history:before { content: @fa-var-history; } +.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } +.@{fa-css-prefix}-header:before { content: @fa-var-header; } +.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } +.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } +.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } +.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } +.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } +.@{fa-css-prefix}-soccer-ball-o:before, +.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } +.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } +.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } +.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } +.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } +.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } +.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } +.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } +.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } +.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } +.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } +.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } +.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } +.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } +.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } +.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } +.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } +.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } +.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } +.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } +.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } +.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } +.@{fa-css-prefix}-at:before { content: @fa-var-at; } +.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } +.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } +.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } +.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } +.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } +.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } +.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } +.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } +.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } +.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } +.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } +.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } +.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } +.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } +.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } +.@{fa-css-prefix}-shekel:before, +.@{fa-css-prefix}-sheqel:before, +.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } +.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } +.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } +.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } +.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } +.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } +.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } +.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } +.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } +.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } +.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } +.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } +.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } +.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } +.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } +.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } +.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } +.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } +.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } +.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } +.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } +.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } +.@{fa-css-prefix}-intersex:before, +.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } +.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } +.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } +.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } +.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } +.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } +.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } +.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } +.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } +.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } +.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } +.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } +.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } +.@{fa-css-prefix}-server:before { content: @fa-var-server; } +.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } +.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } +.@{fa-css-prefix}-hotel:before, +.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } +.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } +.@{fa-css-prefix}-train:before { content: @fa-var-train; } +.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } +.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } +.@{fa-css-prefix}-yc:before, +.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } +.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } +.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } +.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } +.@{fa-css-prefix}-battery-4:before, +.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } +.@{fa-css-prefix}-battery-3:before, +.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } +.@{fa-css-prefix}-battery-2:before, +.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } +.@{fa-css-prefix}-battery-1:before, +.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } +.@{fa-css-prefix}-battery-0:before, +.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } +.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } +.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } +.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } +.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } +.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } +.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } +.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } +.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } +.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } +.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } +.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } +.@{fa-css-prefix}-hourglass-1:before, +.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } +.@{fa-css-prefix}-hourglass-2:before, +.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } +.@{fa-css-prefix}-hourglass-3:before, +.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } +.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } +.@{fa-css-prefix}-hand-grab-o:before, +.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } +.@{fa-css-prefix}-hand-stop-o:before, +.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } +.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } +.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } +.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } +.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } +.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } +.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } +.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } +.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } +.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } +.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } +.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } +.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } +.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } +.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } +.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } +.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } +.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } +.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } +.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } +.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } +.@{fa-css-prefix}-tv:before, +.@{fa-css-prefix}-television:before { content: @fa-var-television; } +.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } +.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } +.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } +.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } +.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } +.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } +.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } +.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } +.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } +.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } +.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } +.@{fa-css-prefix}-map:before { content: @fa-var-map; } +.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } +.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } +.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } +.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } +.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } +.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } +.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } +.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } +.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } +.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } +.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } +.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } +.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } +.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } +.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } +.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } +.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } +.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } +.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } +.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } +.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } +.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } +.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } +.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } +.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } +.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } diff --git a/web/pgadmin/static/vendor/font-awesome/less/larger.less b/web/pgadmin/static/vendor/font-awesome/less/larger.less new file mode 100644 index 000000000..c9d646770 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/larger.less @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.@{fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.@{fa-css-prefix}-2x { font-size: 2em; } +.@{fa-css-prefix}-3x { font-size: 3em; } +.@{fa-css-prefix}-4x { font-size: 4em; } +.@{fa-css-prefix}-5x { font-size: 5em; } diff --git a/web/pgadmin/static/vendor/font-awesome/less/list.less b/web/pgadmin/static/vendor/font-awesome/less/list.less new file mode 100644 index 000000000..0b440382f --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/list.less @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.@{fa-css-prefix}-ul { + padding-left: 0; + margin-left: @fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.@{fa-css-prefix}-li { + position: absolute; + left: -@fa-li-width; + width: @fa-li-width; + top: (2em / 14); + text-align: center; + &.@{fa-css-prefix}-lg { + left: (-@fa-li-width + (4em / 14)); + } +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/mixins.less b/web/pgadmin/static/vendor/font-awesome/less/mixins.less new file mode 100644 index 000000000..d5a43a145 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/mixins.less @@ -0,0 +1,26 @@ +// Mixins +// -------------------------- + +.fa-icon() { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +.fa-icon-rotate(@degrees, @rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} + +.fa-icon-flip(@horiz, @vert, @rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); + -webkit-transform: scale(@horiz, @vert); + -ms-transform: scale(@horiz, @vert); + transform: scale(@horiz, @vert); +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/path.less b/web/pgadmin/static/vendor/font-awesome/less/path.less new file mode 100644 index 000000000..9211e6659 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/path.less @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); + src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), + url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), + url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), + url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), + url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); +// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/rotated-flipped.less b/web/pgadmin/static/vendor/font-awesome/less/rotated-flipped.less new file mode 100644 index 000000000..f6ba81475 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/rotated-flipped.less @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } +.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } +.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } + +.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } +.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .@{fa-css-prefix}-rotate-90, +:root .@{fa-css-prefix}-rotate-180, +:root .@{fa-css-prefix}-rotate-270, +:root .@{fa-css-prefix}-flip-horizontal, +:root .@{fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/web/pgadmin/static/vendor/font-awesome/less/stacked.less b/web/pgadmin/static/vendor/font-awesome/less/stacked.less new file mode 100644 index 000000000..fc53fb0e7 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/stacked.less @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.@{fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.@{fa-css-prefix}-stack-1x { line-height: inherit; } +.@{fa-css-prefix}-stack-2x { font-size: 2em; } +.@{fa-css-prefix}-inverse { color: @fa-inverse; } diff --git a/web/pgadmin/static/vendor/font-awesome/less/variables.less b/web/pgadmin/static/vendor/font-awesome/less/variables.less new file mode 100644 index 000000000..37c4b80ab --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/less/variables.less @@ -0,0 +1,708 @@ +// Variables +// -------------------------- + +@fa-font-path: "../fonts"; +@fa-font-size-base: 14px; +@fa-line-height-base: 1; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.5.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-css-prefix: fa; +@fa-version: "4.5.0"; +@fa-border-color: #eee; +@fa-inverse: #fff; +@fa-li-width: (30em / 14); + +@fa-var-500px: "\f26e"; +@fa-var-adjust: "\f042"; +@fa-var-adn: "\f170"; +@fa-var-align-center: "\f037"; +@fa-var-align-justify: "\f039"; +@fa-var-align-left: "\f036"; +@fa-var-align-right: "\f038"; +@fa-var-amazon: "\f270"; +@fa-var-ambulance: "\f0f9"; +@fa-var-anchor: "\f13d"; +@fa-var-android: "\f17b"; +@fa-var-angellist: "\f209"; +@fa-var-angle-double-down: "\f103"; +@fa-var-angle-double-left: "\f100"; +@fa-var-angle-double-right: "\f101"; +@fa-var-angle-double-up: "\f102"; +@fa-var-angle-down: "\f107"; +@fa-var-angle-left: "\f104"; +@fa-var-angle-right: "\f105"; +@fa-var-angle-up: "\f106"; +@fa-var-apple: "\f179"; +@fa-var-archive: "\f187"; +@fa-var-area-chart: "\f1fe"; +@fa-var-arrow-circle-down: "\f0ab"; +@fa-var-arrow-circle-left: "\f0a8"; +@fa-var-arrow-circle-o-down: "\f01a"; +@fa-var-arrow-circle-o-left: "\f190"; +@fa-var-arrow-circle-o-right: "\f18e"; +@fa-var-arrow-circle-o-up: "\f01b"; +@fa-var-arrow-circle-right: "\f0a9"; +@fa-var-arrow-circle-up: "\f0aa"; +@fa-var-arrow-down: "\f063"; +@fa-var-arrow-left: "\f060"; +@fa-var-arrow-right: "\f061"; +@fa-var-arrow-up: "\f062"; +@fa-var-arrows: "\f047"; +@fa-var-arrows-alt: "\f0b2"; +@fa-var-arrows-h: "\f07e"; +@fa-var-arrows-v: "\f07d"; +@fa-var-asterisk: "\f069"; +@fa-var-at: "\f1fa"; +@fa-var-automobile: "\f1b9"; +@fa-var-backward: "\f04a"; +@fa-var-balance-scale: "\f24e"; +@fa-var-ban: "\f05e"; +@fa-var-bank: "\f19c"; +@fa-var-bar-chart: "\f080"; +@fa-var-bar-chart-o: "\f080"; +@fa-var-barcode: "\f02a"; +@fa-var-bars: "\f0c9"; +@fa-var-battery-0: "\f244"; +@fa-var-battery-1: "\f243"; +@fa-var-battery-2: "\f242"; +@fa-var-battery-3: "\f241"; +@fa-var-battery-4: "\f240"; +@fa-var-battery-empty: "\f244"; +@fa-var-battery-full: "\f240"; +@fa-var-battery-half: "\f242"; +@fa-var-battery-quarter: "\f243"; +@fa-var-battery-three-quarters: "\f241"; +@fa-var-bed: "\f236"; +@fa-var-beer: "\f0fc"; +@fa-var-behance: "\f1b4"; +@fa-var-behance-square: "\f1b5"; +@fa-var-bell: "\f0f3"; +@fa-var-bell-o: "\f0a2"; +@fa-var-bell-slash: "\f1f6"; +@fa-var-bell-slash-o: "\f1f7"; +@fa-var-bicycle: "\f206"; +@fa-var-binoculars: "\f1e5"; +@fa-var-birthday-cake: "\f1fd"; +@fa-var-bitbucket: "\f171"; +@fa-var-bitbucket-square: "\f172"; +@fa-var-bitcoin: "\f15a"; +@fa-var-black-tie: "\f27e"; +@fa-var-bluetooth: "\f293"; +@fa-var-bluetooth-b: "\f294"; +@fa-var-bold: "\f032"; +@fa-var-bolt: "\f0e7"; +@fa-var-bomb: "\f1e2"; +@fa-var-book: "\f02d"; +@fa-var-bookmark: "\f02e"; +@fa-var-bookmark-o: "\f097"; +@fa-var-briefcase: "\f0b1"; +@fa-var-btc: "\f15a"; +@fa-var-bug: "\f188"; +@fa-var-building: "\f1ad"; +@fa-var-building-o: "\f0f7"; +@fa-var-bullhorn: "\f0a1"; +@fa-var-bullseye: "\f140"; +@fa-var-bus: "\f207"; +@fa-var-buysellads: "\f20d"; +@fa-var-cab: "\f1ba"; +@fa-var-calculator: "\f1ec"; +@fa-var-calendar: "\f073"; +@fa-var-calendar-check-o: "\f274"; +@fa-var-calendar-minus-o: "\f272"; +@fa-var-calendar-o: "\f133"; +@fa-var-calendar-plus-o: "\f271"; +@fa-var-calendar-times-o: "\f273"; +@fa-var-camera: "\f030"; +@fa-var-camera-retro: "\f083"; +@fa-var-car: "\f1b9"; +@fa-var-caret-down: "\f0d7"; +@fa-var-caret-left: "\f0d9"; +@fa-var-caret-right: "\f0da"; +@fa-var-caret-square-o-down: "\f150"; +@fa-var-caret-square-o-left: "\f191"; +@fa-var-caret-square-o-right: "\f152"; +@fa-var-caret-square-o-up: "\f151"; +@fa-var-caret-up: "\f0d8"; +@fa-var-cart-arrow-down: "\f218"; +@fa-var-cart-plus: "\f217"; +@fa-var-cc: "\f20a"; +@fa-var-cc-amex: "\f1f3"; +@fa-var-cc-diners-club: "\f24c"; +@fa-var-cc-discover: "\f1f2"; +@fa-var-cc-jcb: "\f24b"; +@fa-var-cc-mastercard: "\f1f1"; +@fa-var-cc-paypal: "\f1f4"; +@fa-var-cc-stripe: "\f1f5"; +@fa-var-cc-visa: "\f1f0"; +@fa-var-certificate: "\f0a3"; +@fa-var-chain: "\f0c1"; +@fa-var-chain-broken: "\f127"; +@fa-var-check: "\f00c"; +@fa-var-check-circle: "\f058"; +@fa-var-check-circle-o: "\f05d"; +@fa-var-check-square: "\f14a"; +@fa-var-check-square-o: "\f046"; +@fa-var-chevron-circle-down: "\f13a"; +@fa-var-chevron-circle-left: "\f137"; +@fa-var-chevron-circle-right: "\f138"; +@fa-var-chevron-circle-up: "\f139"; +@fa-var-chevron-down: "\f078"; +@fa-var-chevron-left: "\f053"; +@fa-var-chevron-right: "\f054"; +@fa-var-chevron-up: "\f077"; +@fa-var-child: "\f1ae"; +@fa-var-chrome: "\f268"; +@fa-var-circle: "\f111"; +@fa-var-circle-o: "\f10c"; +@fa-var-circle-o-notch: "\f1ce"; +@fa-var-circle-thin: "\f1db"; +@fa-var-clipboard: "\f0ea"; +@fa-var-clock-o: "\f017"; +@fa-var-clone: "\f24d"; +@fa-var-close: "\f00d"; +@fa-var-cloud: "\f0c2"; +@fa-var-cloud-download: "\f0ed"; +@fa-var-cloud-upload: "\f0ee"; +@fa-var-cny: "\f157"; +@fa-var-code: "\f121"; +@fa-var-code-fork: "\f126"; +@fa-var-codepen: "\f1cb"; +@fa-var-codiepie: "\f284"; +@fa-var-coffee: "\f0f4"; +@fa-var-cog: "\f013"; +@fa-var-cogs: "\f085"; +@fa-var-columns: "\f0db"; +@fa-var-comment: "\f075"; +@fa-var-comment-o: "\f0e5"; +@fa-var-commenting: "\f27a"; +@fa-var-commenting-o: "\f27b"; +@fa-var-comments: "\f086"; +@fa-var-comments-o: "\f0e6"; +@fa-var-compass: "\f14e"; +@fa-var-compress: "\f066"; +@fa-var-connectdevelop: "\f20e"; +@fa-var-contao: "\f26d"; +@fa-var-copy: "\f0c5"; +@fa-var-copyright: "\f1f9"; +@fa-var-creative-commons: "\f25e"; +@fa-var-credit-card: "\f09d"; +@fa-var-credit-card-alt: "\f283"; +@fa-var-crop: "\f125"; +@fa-var-crosshairs: "\f05b"; +@fa-var-css3: "\f13c"; +@fa-var-cube: "\f1b2"; +@fa-var-cubes: "\f1b3"; +@fa-var-cut: "\f0c4"; +@fa-var-cutlery: "\f0f5"; +@fa-var-dashboard: "\f0e4"; +@fa-var-dashcube: "\f210"; +@fa-var-database: "\f1c0"; +@fa-var-dedent: "\f03b"; +@fa-var-delicious: "\f1a5"; +@fa-var-desktop: "\f108"; +@fa-var-deviantart: "\f1bd"; +@fa-var-diamond: "\f219"; +@fa-var-digg: "\f1a6"; +@fa-var-dollar: "\f155"; +@fa-var-dot-circle-o: "\f192"; +@fa-var-download: "\f019"; +@fa-var-dribbble: "\f17d"; +@fa-var-dropbox: "\f16b"; +@fa-var-drupal: "\f1a9"; +@fa-var-edge: "\f282"; +@fa-var-edit: "\f044"; +@fa-var-eject: "\f052"; +@fa-var-ellipsis-h: "\f141"; +@fa-var-ellipsis-v: "\f142"; +@fa-var-empire: "\f1d1"; +@fa-var-envelope: "\f0e0"; +@fa-var-envelope-o: "\f003"; +@fa-var-envelope-square: "\f199"; +@fa-var-eraser: "\f12d"; +@fa-var-eur: "\f153"; +@fa-var-euro: "\f153"; +@fa-var-exchange: "\f0ec"; +@fa-var-exclamation: "\f12a"; +@fa-var-exclamation-circle: "\f06a"; +@fa-var-exclamation-triangle: "\f071"; +@fa-var-expand: "\f065"; +@fa-var-expeditedssl: "\f23e"; +@fa-var-external-link: "\f08e"; +@fa-var-external-link-square: "\f14c"; +@fa-var-eye: "\f06e"; +@fa-var-eye-slash: "\f070"; +@fa-var-eyedropper: "\f1fb"; +@fa-var-facebook: "\f09a"; +@fa-var-facebook-f: "\f09a"; +@fa-var-facebook-official: "\f230"; +@fa-var-facebook-square: "\f082"; +@fa-var-fast-backward: "\f049"; +@fa-var-fast-forward: "\f050"; +@fa-var-fax: "\f1ac"; +@fa-var-feed: "\f09e"; +@fa-var-female: "\f182"; +@fa-var-fighter-jet: "\f0fb"; +@fa-var-file: "\f15b"; +@fa-var-file-archive-o: "\f1c6"; +@fa-var-file-audio-o: "\f1c7"; +@fa-var-file-code-o: "\f1c9"; +@fa-var-file-excel-o: "\f1c3"; +@fa-var-file-image-o: "\f1c5"; +@fa-var-file-movie-o: "\f1c8"; +@fa-var-file-o: "\f016"; +@fa-var-file-pdf-o: "\f1c1"; +@fa-var-file-photo-o: "\f1c5"; +@fa-var-file-picture-o: "\f1c5"; +@fa-var-file-powerpoint-o: "\f1c4"; +@fa-var-file-sound-o: "\f1c7"; +@fa-var-file-text: "\f15c"; +@fa-var-file-text-o: "\f0f6"; +@fa-var-file-video-o: "\f1c8"; +@fa-var-file-word-o: "\f1c2"; +@fa-var-file-zip-o: "\f1c6"; +@fa-var-files-o: "\f0c5"; +@fa-var-film: "\f008"; +@fa-var-filter: "\f0b0"; +@fa-var-fire: "\f06d"; +@fa-var-fire-extinguisher: "\f134"; +@fa-var-firefox: "\f269"; +@fa-var-flag: "\f024"; +@fa-var-flag-checkered: "\f11e"; +@fa-var-flag-o: "\f11d"; +@fa-var-flash: "\f0e7"; +@fa-var-flask: "\f0c3"; +@fa-var-flickr: "\f16e"; +@fa-var-floppy-o: "\f0c7"; +@fa-var-folder: "\f07b"; +@fa-var-folder-o: "\f114"; +@fa-var-folder-open: "\f07c"; +@fa-var-folder-open-o: "\f115"; +@fa-var-font: "\f031"; +@fa-var-fonticons: "\f280"; +@fa-var-fort-awesome: "\f286"; +@fa-var-forumbee: "\f211"; +@fa-var-forward: "\f04e"; +@fa-var-foursquare: "\f180"; +@fa-var-frown-o: "\f119"; +@fa-var-futbol-o: "\f1e3"; +@fa-var-gamepad: "\f11b"; +@fa-var-gavel: "\f0e3"; +@fa-var-gbp: "\f154"; +@fa-var-ge: "\f1d1"; +@fa-var-gear: "\f013"; +@fa-var-gears: "\f085"; +@fa-var-genderless: "\f22d"; +@fa-var-get-pocket: "\f265"; +@fa-var-gg: "\f260"; +@fa-var-gg-circle: "\f261"; +@fa-var-gift: "\f06b"; +@fa-var-git: "\f1d3"; +@fa-var-git-square: "\f1d2"; +@fa-var-github: "\f09b"; +@fa-var-github-alt: "\f113"; +@fa-var-github-square: "\f092"; +@fa-var-gittip: "\f184"; +@fa-var-glass: "\f000"; +@fa-var-globe: "\f0ac"; +@fa-var-google: "\f1a0"; +@fa-var-google-plus: "\f0d5"; +@fa-var-google-plus-square: "\f0d4"; +@fa-var-google-wallet: "\f1ee"; +@fa-var-graduation-cap: "\f19d"; +@fa-var-gratipay: "\f184"; +@fa-var-group: "\f0c0"; +@fa-var-h-square: "\f0fd"; +@fa-var-hacker-news: "\f1d4"; +@fa-var-hand-grab-o: "\f255"; +@fa-var-hand-lizard-o: "\f258"; +@fa-var-hand-o-down: "\f0a7"; +@fa-var-hand-o-left: "\f0a5"; +@fa-var-hand-o-right: "\f0a4"; +@fa-var-hand-o-up: "\f0a6"; +@fa-var-hand-paper-o: "\f256"; +@fa-var-hand-peace-o: "\f25b"; +@fa-var-hand-pointer-o: "\f25a"; +@fa-var-hand-rock-o: "\f255"; +@fa-var-hand-scissors-o: "\f257"; +@fa-var-hand-spock-o: "\f259"; +@fa-var-hand-stop-o: "\f256"; +@fa-var-hashtag: "\f292"; +@fa-var-hdd-o: "\f0a0"; +@fa-var-header: "\f1dc"; +@fa-var-headphones: "\f025"; +@fa-var-heart: "\f004"; +@fa-var-heart-o: "\f08a"; +@fa-var-heartbeat: "\f21e"; +@fa-var-history: "\f1da"; +@fa-var-home: "\f015"; +@fa-var-hospital-o: "\f0f8"; +@fa-var-hotel: "\f236"; +@fa-var-hourglass: "\f254"; +@fa-var-hourglass-1: "\f251"; +@fa-var-hourglass-2: "\f252"; +@fa-var-hourglass-3: "\f253"; +@fa-var-hourglass-end: "\f253"; +@fa-var-hourglass-half: "\f252"; +@fa-var-hourglass-o: "\f250"; +@fa-var-hourglass-start: "\f251"; +@fa-var-houzz: "\f27c"; +@fa-var-html5: "\f13b"; +@fa-var-i-cursor: "\f246"; +@fa-var-ils: "\f20b"; +@fa-var-image: "\f03e"; +@fa-var-inbox: "\f01c"; +@fa-var-indent: "\f03c"; +@fa-var-industry: "\f275"; +@fa-var-info: "\f129"; +@fa-var-info-circle: "\f05a"; +@fa-var-inr: "\f156"; +@fa-var-instagram: "\f16d"; +@fa-var-institution: "\f19c"; +@fa-var-internet-explorer: "\f26b"; +@fa-var-intersex: "\f224"; +@fa-var-ioxhost: "\f208"; +@fa-var-italic: "\f033"; +@fa-var-joomla: "\f1aa"; +@fa-var-jpy: "\f157"; +@fa-var-jsfiddle: "\f1cc"; +@fa-var-key: "\f084"; +@fa-var-keyboard-o: "\f11c"; +@fa-var-krw: "\f159"; +@fa-var-language: "\f1ab"; +@fa-var-laptop: "\f109"; +@fa-var-lastfm: "\f202"; +@fa-var-lastfm-square: "\f203"; +@fa-var-leaf: "\f06c"; +@fa-var-leanpub: "\f212"; +@fa-var-legal: "\f0e3"; +@fa-var-lemon-o: "\f094"; +@fa-var-level-down: "\f149"; +@fa-var-level-up: "\f148"; +@fa-var-life-bouy: "\f1cd"; +@fa-var-life-buoy: "\f1cd"; +@fa-var-life-ring: "\f1cd"; +@fa-var-life-saver: "\f1cd"; +@fa-var-lightbulb-o: "\f0eb"; +@fa-var-line-chart: "\f201"; +@fa-var-link: "\f0c1"; +@fa-var-linkedin: "\f0e1"; +@fa-var-linkedin-square: "\f08c"; +@fa-var-linux: "\f17c"; +@fa-var-list: "\f03a"; +@fa-var-list-alt: "\f022"; +@fa-var-list-ol: "\f0cb"; +@fa-var-list-ul: "\f0ca"; +@fa-var-location-arrow: "\f124"; +@fa-var-lock: "\f023"; +@fa-var-long-arrow-down: "\f175"; +@fa-var-long-arrow-left: "\f177"; +@fa-var-long-arrow-right: "\f178"; +@fa-var-long-arrow-up: "\f176"; +@fa-var-magic: "\f0d0"; +@fa-var-magnet: "\f076"; +@fa-var-mail-forward: "\f064"; +@fa-var-mail-reply: "\f112"; +@fa-var-mail-reply-all: "\f122"; +@fa-var-male: "\f183"; +@fa-var-map: "\f279"; +@fa-var-map-marker: "\f041"; +@fa-var-map-o: "\f278"; +@fa-var-map-pin: "\f276"; +@fa-var-map-signs: "\f277"; +@fa-var-mars: "\f222"; +@fa-var-mars-double: "\f227"; +@fa-var-mars-stroke: "\f229"; +@fa-var-mars-stroke-h: "\f22b"; +@fa-var-mars-stroke-v: "\f22a"; +@fa-var-maxcdn: "\f136"; +@fa-var-meanpath: "\f20c"; +@fa-var-medium: "\f23a"; +@fa-var-medkit: "\f0fa"; +@fa-var-meh-o: "\f11a"; +@fa-var-mercury: "\f223"; +@fa-var-microphone: "\f130"; +@fa-var-microphone-slash: "\f131"; +@fa-var-minus: "\f068"; +@fa-var-minus-circle: "\f056"; +@fa-var-minus-square: "\f146"; +@fa-var-minus-square-o: "\f147"; +@fa-var-mixcloud: "\f289"; +@fa-var-mobile: "\f10b"; +@fa-var-mobile-phone: "\f10b"; +@fa-var-modx: "\f285"; +@fa-var-money: "\f0d6"; +@fa-var-moon-o: "\f186"; +@fa-var-mortar-board: "\f19d"; +@fa-var-motorcycle: "\f21c"; +@fa-var-mouse-pointer: "\f245"; +@fa-var-music: "\f001"; +@fa-var-navicon: "\f0c9"; +@fa-var-neuter: "\f22c"; +@fa-var-newspaper-o: "\f1ea"; +@fa-var-object-group: "\f247"; +@fa-var-object-ungroup: "\f248"; +@fa-var-odnoklassniki: "\f263"; +@fa-var-odnoklassniki-square: "\f264"; +@fa-var-opencart: "\f23d"; +@fa-var-openid: "\f19b"; +@fa-var-opera: "\f26a"; +@fa-var-optin-monster: "\f23c"; +@fa-var-outdent: "\f03b"; +@fa-var-pagelines: "\f18c"; +@fa-var-paint-brush: "\f1fc"; +@fa-var-paper-plane: "\f1d8"; +@fa-var-paper-plane-o: "\f1d9"; +@fa-var-paperclip: "\f0c6"; +@fa-var-paragraph: "\f1dd"; +@fa-var-paste: "\f0ea"; +@fa-var-pause: "\f04c"; +@fa-var-pause-circle: "\f28b"; +@fa-var-pause-circle-o: "\f28c"; +@fa-var-paw: "\f1b0"; +@fa-var-paypal: "\f1ed"; +@fa-var-pencil: "\f040"; +@fa-var-pencil-square: "\f14b"; +@fa-var-pencil-square-o: "\f044"; +@fa-var-percent: "\f295"; +@fa-var-phone: "\f095"; +@fa-var-phone-square: "\f098"; +@fa-var-photo: "\f03e"; +@fa-var-picture-o: "\f03e"; +@fa-var-pie-chart: "\f200"; +@fa-var-pied-piper: "\f1a7"; +@fa-var-pied-piper-alt: "\f1a8"; +@fa-var-pinterest: "\f0d2"; +@fa-var-pinterest-p: "\f231"; +@fa-var-pinterest-square: "\f0d3"; +@fa-var-plane: "\f072"; +@fa-var-play: "\f04b"; +@fa-var-play-circle: "\f144"; +@fa-var-play-circle-o: "\f01d"; +@fa-var-plug: "\f1e6"; +@fa-var-plus: "\f067"; +@fa-var-plus-circle: "\f055"; +@fa-var-plus-square: "\f0fe"; +@fa-var-plus-square-o: "\f196"; +@fa-var-power-off: "\f011"; +@fa-var-print: "\f02f"; +@fa-var-product-hunt: "\f288"; +@fa-var-puzzle-piece: "\f12e"; +@fa-var-qq: "\f1d6"; +@fa-var-qrcode: "\f029"; +@fa-var-question: "\f128"; +@fa-var-question-circle: "\f059"; +@fa-var-quote-left: "\f10d"; +@fa-var-quote-right: "\f10e"; +@fa-var-ra: "\f1d0"; +@fa-var-random: "\f074"; +@fa-var-rebel: "\f1d0"; +@fa-var-recycle: "\f1b8"; +@fa-var-reddit: "\f1a1"; +@fa-var-reddit-alien: "\f281"; +@fa-var-reddit-square: "\f1a2"; +@fa-var-refresh: "\f021"; +@fa-var-registered: "\f25d"; +@fa-var-remove: "\f00d"; +@fa-var-renren: "\f18b"; +@fa-var-reorder: "\f0c9"; +@fa-var-repeat: "\f01e"; +@fa-var-reply: "\f112"; +@fa-var-reply-all: "\f122"; +@fa-var-retweet: "\f079"; +@fa-var-rmb: "\f157"; +@fa-var-road: "\f018"; +@fa-var-rocket: "\f135"; +@fa-var-rotate-left: "\f0e2"; +@fa-var-rotate-right: "\f01e"; +@fa-var-rouble: "\f158"; +@fa-var-rss: "\f09e"; +@fa-var-rss-square: "\f143"; +@fa-var-rub: "\f158"; +@fa-var-ruble: "\f158"; +@fa-var-rupee: "\f156"; +@fa-var-safari: "\f267"; +@fa-var-save: "\f0c7"; +@fa-var-scissors: "\f0c4"; +@fa-var-scribd: "\f28a"; +@fa-var-search: "\f002"; +@fa-var-search-minus: "\f010"; +@fa-var-search-plus: "\f00e"; +@fa-var-sellsy: "\f213"; +@fa-var-send: "\f1d8"; +@fa-var-send-o: "\f1d9"; +@fa-var-server: "\f233"; +@fa-var-share: "\f064"; +@fa-var-share-alt: "\f1e0"; +@fa-var-share-alt-square: "\f1e1"; +@fa-var-share-square: "\f14d"; +@fa-var-share-square-o: "\f045"; +@fa-var-shekel: "\f20b"; +@fa-var-sheqel: "\f20b"; +@fa-var-shield: "\f132"; +@fa-var-ship: "\f21a"; +@fa-var-shirtsinbulk: "\f214"; +@fa-var-shopping-bag: "\f290"; +@fa-var-shopping-basket: "\f291"; +@fa-var-shopping-cart: "\f07a"; +@fa-var-sign-in: "\f090"; +@fa-var-sign-out: "\f08b"; +@fa-var-signal: "\f012"; +@fa-var-simplybuilt: "\f215"; +@fa-var-sitemap: "\f0e8"; +@fa-var-skyatlas: "\f216"; +@fa-var-skype: "\f17e"; +@fa-var-slack: "\f198"; +@fa-var-sliders: "\f1de"; +@fa-var-slideshare: "\f1e7"; +@fa-var-smile-o: "\f118"; +@fa-var-soccer-ball-o: "\f1e3"; +@fa-var-sort: "\f0dc"; +@fa-var-sort-alpha-asc: "\f15d"; +@fa-var-sort-alpha-desc: "\f15e"; +@fa-var-sort-amount-asc: "\f160"; +@fa-var-sort-amount-desc: "\f161"; +@fa-var-sort-asc: "\f0de"; +@fa-var-sort-desc: "\f0dd"; +@fa-var-sort-down: "\f0dd"; +@fa-var-sort-numeric-asc: "\f162"; +@fa-var-sort-numeric-desc: "\f163"; +@fa-var-sort-up: "\f0de"; +@fa-var-soundcloud: "\f1be"; +@fa-var-space-shuttle: "\f197"; +@fa-var-spinner: "\f110"; +@fa-var-spoon: "\f1b1"; +@fa-var-spotify: "\f1bc"; +@fa-var-square: "\f0c8"; +@fa-var-square-o: "\f096"; +@fa-var-stack-exchange: "\f18d"; +@fa-var-stack-overflow: "\f16c"; +@fa-var-star: "\f005"; +@fa-var-star-half: "\f089"; +@fa-var-star-half-empty: "\f123"; +@fa-var-star-half-full: "\f123"; +@fa-var-star-half-o: "\f123"; +@fa-var-star-o: "\f006"; +@fa-var-steam: "\f1b6"; +@fa-var-steam-square: "\f1b7"; +@fa-var-step-backward: "\f048"; +@fa-var-step-forward: "\f051"; +@fa-var-stethoscope: "\f0f1"; +@fa-var-sticky-note: "\f249"; +@fa-var-sticky-note-o: "\f24a"; +@fa-var-stop: "\f04d"; +@fa-var-stop-circle: "\f28d"; +@fa-var-stop-circle-o: "\f28e"; +@fa-var-street-view: "\f21d"; +@fa-var-strikethrough: "\f0cc"; +@fa-var-stumbleupon: "\f1a4"; +@fa-var-stumbleupon-circle: "\f1a3"; +@fa-var-subscript: "\f12c"; +@fa-var-subway: "\f239"; +@fa-var-suitcase: "\f0f2"; +@fa-var-sun-o: "\f185"; +@fa-var-superscript: "\f12b"; +@fa-var-support: "\f1cd"; +@fa-var-table: "\f0ce"; +@fa-var-tablet: "\f10a"; +@fa-var-tachometer: "\f0e4"; +@fa-var-tag: "\f02b"; +@fa-var-tags: "\f02c"; +@fa-var-tasks: "\f0ae"; +@fa-var-taxi: "\f1ba"; +@fa-var-television: "\f26c"; +@fa-var-tencent-weibo: "\f1d5"; +@fa-var-terminal: "\f120"; +@fa-var-text-height: "\f034"; +@fa-var-text-width: "\f035"; +@fa-var-th: "\f00a"; +@fa-var-th-large: "\f009"; +@fa-var-th-list: "\f00b"; +@fa-var-thumb-tack: "\f08d"; +@fa-var-thumbs-down: "\f165"; +@fa-var-thumbs-o-down: "\f088"; +@fa-var-thumbs-o-up: "\f087"; +@fa-var-thumbs-up: "\f164"; +@fa-var-ticket: "\f145"; +@fa-var-times: "\f00d"; +@fa-var-times-circle: "\f057"; +@fa-var-times-circle-o: "\f05c"; +@fa-var-tint: "\f043"; +@fa-var-toggle-down: "\f150"; +@fa-var-toggle-left: "\f191"; +@fa-var-toggle-off: "\f204"; +@fa-var-toggle-on: "\f205"; +@fa-var-toggle-right: "\f152"; +@fa-var-toggle-up: "\f151"; +@fa-var-trademark: "\f25c"; +@fa-var-train: "\f238"; +@fa-var-transgender: "\f224"; +@fa-var-transgender-alt: "\f225"; +@fa-var-trash: "\f1f8"; +@fa-var-trash-o: "\f014"; +@fa-var-tree: "\f1bb"; +@fa-var-trello: "\f181"; +@fa-var-tripadvisor: "\f262"; +@fa-var-trophy: "\f091"; +@fa-var-truck: "\f0d1"; +@fa-var-try: "\f195"; +@fa-var-tty: "\f1e4"; +@fa-var-tumblr: "\f173"; +@fa-var-tumblr-square: "\f174"; +@fa-var-turkish-lira: "\f195"; +@fa-var-tv: "\f26c"; +@fa-var-twitch: "\f1e8"; +@fa-var-twitter: "\f099"; +@fa-var-twitter-square: "\f081"; +@fa-var-umbrella: "\f0e9"; +@fa-var-underline: "\f0cd"; +@fa-var-undo: "\f0e2"; +@fa-var-university: "\f19c"; +@fa-var-unlink: "\f127"; +@fa-var-unlock: "\f09c"; +@fa-var-unlock-alt: "\f13e"; +@fa-var-unsorted: "\f0dc"; +@fa-var-upload: "\f093"; +@fa-var-usb: "\f287"; +@fa-var-usd: "\f155"; +@fa-var-user: "\f007"; +@fa-var-user-md: "\f0f0"; +@fa-var-user-plus: "\f234"; +@fa-var-user-secret: "\f21b"; +@fa-var-user-times: "\f235"; +@fa-var-users: "\f0c0"; +@fa-var-venus: "\f221"; +@fa-var-venus-double: "\f226"; +@fa-var-venus-mars: "\f228"; +@fa-var-viacoin: "\f237"; +@fa-var-video-camera: "\f03d"; +@fa-var-vimeo: "\f27d"; +@fa-var-vimeo-square: "\f194"; +@fa-var-vine: "\f1ca"; +@fa-var-vk: "\f189"; +@fa-var-volume-down: "\f027"; +@fa-var-volume-off: "\f026"; +@fa-var-volume-up: "\f028"; +@fa-var-warning: "\f071"; +@fa-var-wechat: "\f1d7"; +@fa-var-weibo: "\f18a"; +@fa-var-weixin: "\f1d7"; +@fa-var-whatsapp: "\f232"; +@fa-var-wheelchair: "\f193"; +@fa-var-wifi: "\f1eb"; +@fa-var-wikipedia-w: "\f266"; +@fa-var-windows: "\f17a"; +@fa-var-won: "\f159"; +@fa-var-wordpress: "\f19a"; +@fa-var-wrench: "\f0ad"; +@fa-var-xing: "\f168"; +@fa-var-xing-square: "\f169"; +@fa-var-y-combinator: "\f23b"; +@fa-var-y-combinator-square: "\f1d4"; +@fa-var-yahoo: "\f19e"; +@fa-var-yc: "\f23b"; +@fa-var-yc-square: "\f1d4"; +@fa-var-yelp: "\f1e9"; +@fa-var-yen: "\f157"; +@fa-var-youtube: "\f167"; +@fa-var-youtube-play: "\f16a"; +@fa-var-youtube-square: "\f166"; + diff --git a/web/pgadmin/static/vendor/font-awesome/package.json b/web/pgadmin/static/vendor/font-awesome/package.json new file mode 100644 index 000000000..6defd2811 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/package.json @@ -0,0 +1,104 @@ +{ + "_args": [ + [ + { + "raw": "font-awesome@4.5.0", + "scope": null, + "escapedName": "font-awesome", + "name": "font-awesome", + "rawSpec": "4.5.0", + "spec": "4.5.0", + "type": "version" + }, + "/Users/pivotal/workspace/pgadmin4" + ] + ], + "_from": "font-awesome@4.5.0", + "_id": "font-awesome@4.5.0", + "_inCache": true, + "_location": "/font-awesome", + "_nodeVersion": "3.3.1", + "_npmUser": { + "name": "juliankrispel", + "email": "julian@goodafternoon.co" + }, + "_npmVersion": "2.14.3", + "_phantomChildren": {}, + "_requested": { + "raw": "font-awesome@4.5.0", + "scope": null, + "escapedName": "font-awesome", + "name": "font-awesome", + "rawSpec": "4.5.0", + "spec": "4.5.0", + "type": "version" + }, + "_requiredBy": [ + "#USER" + ], + "_resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.5.0.tgz", + "_shasum": "1e9d7ccf7d63bdbe57000e18d5188cb2557e70f8", + "_shrinkwrap": null, + "_spec": "font-awesome@4.5.0", + "_where": "/Users/pivotal/workspace/pgadmin4", + "author": { + "name": "Dave Gandy", + "email": "dave@fontawesome.io", + "url": "http://twitter.com/davegandy" + }, + "bugs": { + "url": "http://github.com/FortAwesome/Font-Awesome/issues" + }, + "contributors": [ + { + "name": "Rob Madole", + "url": "http://twitter.com/robmadole" + }, + { + "name": "Geremia Taglialatela", + "url": "http://twitter.com/gtagliala" + }, + { + "name": "Travis Chase", + "url": "http://twitter.com/supercodepoet" + } + ], + "dependencies": {}, + "description": "The iconic font and CSS framework", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "1e9d7ccf7d63bdbe57000e18d5188cb2557e70f8", + "tarball": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.5.0.tgz" + }, + "engines": { + "node": ">=0.10.3" + }, + "gitHead": "fddd2c240452e6c8990c4ef75e0265b455aa7968", + "homepage": "http://fontawesome.io/", + "keywords": [ + "font", + "awesome", + "fontawesome", + "icon", + "font", + "bootstrap" + ], + "license": "(OFL-1.1 AND MIT)", + "maintainers": [ + { + "name": "juliankrispel", + "email": "julian@goodafternoon.co" + } + ], + "name": "font-awesome", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/FortAwesome/Font-Awesome.git" + }, + "scripts": {}, + "style": "css/font-awesome.css", + "version": "4.5.0" +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_animated.scss b/web/pgadmin/static/vendor/font-awesome/scss/_animated.scss new file mode 100644 index 000000000..8a020dbff --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_bordered-pulled.scss b/web/pgadmin/static/vendor/font-awesome/scss/_bordered-pulled.scss new file mode 100644 index 000000000..d4b85a02f --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_bordered-pulled.scss @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_core.scss b/web/pgadmin/static/vendor/font-awesome/scss/_core.scss new file mode 100644 index 000000000..7425ef85f --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_fixed-width.scss b/web/pgadmin/static/vendor/font-awesome/scss/_fixed-width.scss new file mode 100644 index 000000000..b221c9813 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_icons.scss b/web/pgadmin/static/vendor/font-awesome/scss/_icons.scss new file mode 100644 index 000000000..6f9375989 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_icons.scss @@ -0,0 +1,697 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_larger.scss b/web/pgadmin/static/vendor/font-awesome/scss/_larger.scss new file mode 100644 index 000000000..41e9a8184 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_list.scss b/web/pgadmin/static/vendor/font-awesome/scss/_list.scss new file mode 100644 index 000000000..7d1e4d54d --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_mixins.scss b/web/pgadmin/static/vendor/font-awesome/scss/_mixins.scss new file mode 100644 index 000000000..f96719b6a --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_mixins.scss @@ -0,0 +1,26 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_path.scss b/web/pgadmin/static/vendor/font-awesome/scss/_path.scss new file mode 100644 index 000000000..bb457c23a --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_rotated-flipped.scss b/web/pgadmin/static/vendor/font-awesome/scss/_rotated-flipped.scss new file mode 100644 index 000000000..a3558fd09 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_stacked.scss b/web/pgadmin/static/vendor/font-awesome/scss/_stacked.scss new file mode 100644 index 000000000..aef740366 --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/web/pgadmin/static/vendor/font-awesome/scss/_variables.scss b/web/pgadmin/static/vendor/font-awesome/scss/_variables.scss new file mode 100644 index 000000000..0a471102c --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/_variables.scss @@ -0,0 +1,708 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.5.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.5.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: "\f26e"; +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; +$fa-var-ambulance: "\f0f9"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; +$fa-var-ban: "\f05e"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; +$fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; +$fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; +$fa-var-edit: "\f044"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-square: "\f199"; +$fa-var-eraser: "\f12d"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-hashtag: "\f292"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; +$fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map: "\f279"; +$fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; +$fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f1a7"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-safari: "\f267"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; +$fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-television: "\f26c"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; +$fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/web/pgadmin/static/vendor/font-awesome/scss/font-awesome.scss b/web/pgadmin/static/vendor/font-awesome/scss/font-awesome.scss new file mode 100644 index 000000000..f4668a53c --- /dev/null +++ b/web/pgadmin/static/vendor/font-awesome/scss/font-awesome.scss @@ -0,0 +1,17 @@ +/*! + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; diff --git a/web/pgadmin/static/css/font-mfizz.css b/web/pgadmin/static/vendor/font-mfizz/font-mfizz.css old mode 100644 new mode 100755 similarity index 95% rename from web/pgadmin/static/css/font-mfizz.css rename to web/pgadmin/static/vendor/font-mfizz/font-mfizz.css index da006d85b..846ff50ab --- a/web/pgadmin/static/css/font-mfizz.css +++ b/web/pgadmin/static/vendor/font-mfizz/font-mfizz.css @@ -15,11 +15,11 @@ @font-face { font-family: "FontMfizz"; - src: url("../fonts/font-mfizz.eot"); - src: url("../fonts/font-mfizz.eot?#iefix") format("embedded-opentype"), - url("../fonts/font-mfizz.woff") format("woff"), - url("../fonts/font-mfizz.ttf") format("truetype"), - url("../fonts/font-mfizz.svg#font-mfizz") format("svg"); + src: url("./font-mfizz.eot"); + src: url("./font-mfizz.eot?#iefix") format("embedded-opentype"), + url("./font-mfizz.woff") format("woff"), + url("./font-mfizz.ttf") format("truetype"), + url("./font-mfizz.svg#font-mfizz") format("svg"); font-weight: normal; font-style: normal; } @@ -27,7 +27,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: "FontMfizz"; - src: url("../fonts/font-mfizz.svg#font-mfizz") format("svg"); + src: url("./font-mfizz.svg#font-mfizz") format("svg"); } } diff --git a/web/pgadmin/static/fonts/font-mfizz.eot b/web/pgadmin/static/vendor/font-mfizz/font-mfizz.eot old mode 100644 new mode 100755 similarity index 100% rename from web/pgadmin/static/fonts/font-mfizz.eot rename to web/pgadmin/static/vendor/font-mfizz/font-mfizz.eot diff --git a/web/pgadmin/static/fonts/font-mfizz.svg b/web/pgadmin/static/vendor/font-mfizz/font-mfizz.svg old mode 100644 new mode 100755 similarity index 100% rename from web/pgadmin/static/fonts/font-mfizz.svg rename to web/pgadmin/static/vendor/font-mfizz/font-mfizz.svg diff --git a/web/pgadmin/static/fonts/font-mfizz.ttf b/web/pgadmin/static/vendor/font-mfizz/font-mfizz.ttf old mode 100644 new mode 100755 similarity index 100% rename from web/pgadmin/static/fonts/font-mfizz.ttf rename to web/pgadmin/static/vendor/font-mfizz/font-mfizz.ttf diff --git a/web/pgadmin/static/fonts/font-mfizz.woff b/web/pgadmin/static/vendor/font-mfizz/font-mfizz.woff old mode 100644 new mode 100755 similarity index 100% rename from web/pgadmin/static/fonts/font-mfizz.woff rename to web/pgadmin/static/vendor/font-mfizz/font-mfizz.woff diff --git a/web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.eot b/web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.eot similarity index 100% rename from web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.eot rename to web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.eot diff --git a/web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.ttf b/web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.ttf similarity index 100% rename from web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.ttf rename to web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.ttf diff --git a/web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.woff b/web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.woff similarity index 100% rename from web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.woff rename to web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.woff diff --git a/web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.woff2 b/web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.woff2 similarity index 100% rename from web/pgadmin/static/css/jQuery-contextMenu/font/context-menu-icons.woff2 rename to web/pgadmin/static/vendor/jQuery-contextMenu/font/context-menu-icons.woff2 diff --git a/web/pgadmin/static/css/jQuery-contextMenu/jquery.contextMenu.css b/web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.css similarity index 100% rename from web/pgadmin/static/css/jQuery-contextMenu/jquery.contextMenu.css rename to web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.css diff --git a/web/pgadmin/static/js/jQuery-contextMenu/jquery.contextMenu.js b/web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.js similarity index 100% rename from web/pgadmin/static/js/jQuery-contextMenu/jquery.contextMenu.js rename to web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.js diff --git a/web/pgadmin/static/css/jQuery-contextMenu/jquery.contextMenu.min.css b/web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.min.css similarity index 100% rename from web/pgadmin/static/css/jQuery-contextMenu/jquery.contextMenu.min.css rename to web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.min.css diff --git a/web/pgadmin/static/css/jQuery-contextMenu/jquery.contextMenu.min.css.map b/web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.min.css.map similarity index 100% rename from web/pgadmin/static/css/jQuery-contextMenu/jquery.contextMenu.min.css.map rename to web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.min.css.map diff --git a/web/pgadmin/static/js/jQuery-contextMenu/jquery.contextMenu.min.js b/web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.min.js similarity index 100% rename from web/pgadmin/static/js/jQuery-contextMenu/jquery.contextMenu.min.js rename to web/pgadmin/static/vendor/jQuery-contextMenu/jquery.contextMenu.min.js diff --git a/web/pgadmin/static/js/jQuery-contextMenu/jquery.ui.position.js b/web/pgadmin/static/vendor/jQuery-contextMenu/jquery.ui.position.js similarity index 100% rename from web/pgadmin/static/js/jQuery-contextMenu/jquery.ui.position.js rename to web/pgadmin/static/vendor/jQuery-contextMenu/jquery.ui.position.js diff --git a/web/pgadmin/static/js/jQuery-contextMenu/jquery.ui.position.min.js b/web/pgadmin/static/vendor/jQuery-contextMenu/jquery.ui.position.min.js similarity index 100% rename from web/pgadmin/static/js/jQuery-contextMenu/jquery.ui.position.min.js rename to web/pgadmin/static/vendor/jQuery-contextMenu/jquery.ui.position.min.js diff --git a/web/pgadmin/static/js/jquery-ui/jquery-ui-1.11.3.js b/web/pgadmin/static/vendor/jquery-ui/jquery-ui-1.11.3.js similarity index 100% rename from web/pgadmin/static/js/jquery-ui/jquery-ui-1.11.3.js rename to web/pgadmin/static/vendor/jquery-ui/jquery-ui-1.11.3.js diff --git a/web/pgadmin/static/js/jquery-ui/jquery-ui-1.11.3.min.js b/web/pgadmin/static/vendor/jquery-ui/jquery-ui-1.11.3.min.js similarity index 100% rename from web/pgadmin/static/js/jquery-ui/jquery-ui-1.11.3.min.js rename to web/pgadmin/static/vendor/jquery-ui/jquery-ui-1.11.3.min.js diff --git a/web/pgadmin/static/js/jquery-ui/jquery.event.drag-2.2.js b/web/pgadmin/static/vendor/jquery-ui/jquery.event.drag-2.2.js similarity index 100% rename from web/pgadmin/static/js/jquery-ui/jquery.event.drag-2.2.js rename to web/pgadmin/static/vendor/jquery-ui/jquery.event.drag-2.2.js diff --git a/web/pgadmin/static/js/jquery-ui/jquery.event.drop-2.2.js b/web/pgadmin/static/vendor/jquery-ui/jquery.event.drop-2.2.js similarity index 100% rename from web/pgadmin/static/js/jquery-ui/jquery.event.drop-2.2.js rename to web/pgadmin/static/vendor/jquery-ui/jquery.event.drop-2.2.js diff --git a/web/pgadmin/static/css/jquery.dropzone/dropzone.css b/web/pgadmin/static/vendor/jquery.dropzone/dropzone.css similarity index 100% rename from web/pgadmin/static/css/jquery.dropzone/dropzone.css rename to web/pgadmin/static/vendor/jquery.dropzone/dropzone.css diff --git a/web/pgadmin/static/js/jquery.dropzone/dropzone.js b/web/pgadmin/static/vendor/jquery.dropzone/dropzone.js similarity index 100% rename from web/pgadmin/static/js/jquery.dropzone/dropzone.js rename to web/pgadmin/static/vendor/jquery.dropzone/dropzone.js diff --git a/web/pgadmin/static/js/jquery-1.11.2.js b/web/pgadmin/static/vendor/jquery/jquery-1.11.2.js similarity index 100% rename from web/pgadmin/static/js/jquery-1.11.2.js rename to web/pgadmin/static/vendor/jquery/jquery-1.11.2.js diff --git a/web/pgadmin/static/js/jquery-1.11.2.min.js b/web/pgadmin/static/vendor/jquery/jquery-1.11.2.min.js similarity index 100% rename from web/pgadmin/static/js/jquery-1.11.2.min.js rename to web/pgadmin/static/vendor/jquery/jquery-1.11.2.min.js diff --git a/web/pgadmin/static/js/modernizr-2.6.2-respond-1.1.0.min.js b/web/pgadmin/static/vendor/modernizr/modernizr-2.6.2-respond-1.1.0.min.js similarity index 100% rename from web/pgadmin/static/js/modernizr-2.6.2-respond-1.1.0.min.js rename to web/pgadmin/static/vendor/modernizr/modernizr-2.6.2-respond-1.1.0.min.js diff --git a/web/pgadmin/static/js/moment-with-locales.js b/web/pgadmin/static/vendor/moment/moment-with-locales.js similarity index 100% rename from web/pgadmin/static/js/moment-with-locales.js rename to web/pgadmin/static/vendor/moment/moment-with-locales.js diff --git a/web/pgadmin/static/js/moment-with-locales.min.js b/web/pgadmin/static/vendor/moment/moment-with-locales.min.js similarity index 100% rename from web/pgadmin/static/js/moment-with-locales.min.js rename to web/pgadmin/static/vendor/moment/moment-with-locales.min.js diff --git a/web/pgadmin/static/js/require.js b/web/pgadmin/static/vendor/require/require.js similarity index 100% rename from web/pgadmin/static/js/require.js rename to web/pgadmin/static/vendor/require/require.js diff --git a/web/pgadmin/static/js/require.min.js b/web/pgadmin/static/vendor/require/require.min.js similarity index 100% rename from web/pgadmin/static/js/require.min.js rename to web/pgadmin/static/vendor/require/require.min.js diff --git a/web/pgadmin/static/js/select2/i18n/ar.js b/web/pgadmin/static/vendor/select2/i18n/ar.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/ar.js rename to web/pgadmin/static/vendor/select2/i18n/ar.js diff --git a/web/pgadmin/static/js/select2/i18n/az.js b/web/pgadmin/static/vendor/select2/i18n/az.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/az.js rename to web/pgadmin/static/vendor/select2/i18n/az.js diff --git a/web/pgadmin/static/js/select2/i18n/bg.js b/web/pgadmin/static/vendor/select2/i18n/bg.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/bg.js rename to web/pgadmin/static/vendor/select2/i18n/bg.js diff --git a/web/pgadmin/static/js/select2/i18n/ca.js b/web/pgadmin/static/vendor/select2/i18n/ca.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/ca.js rename to web/pgadmin/static/vendor/select2/i18n/ca.js diff --git a/web/pgadmin/static/js/select2/i18n/cs.js b/web/pgadmin/static/vendor/select2/i18n/cs.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/cs.js rename to web/pgadmin/static/vendor/select2/i18n/cs.js diff --git a/web/pgadmin/static/js/select2/i18n/da.js b/web/pgadmin/static/vendor/select2/i18n/da.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/da.js rename to web/pgadmin/static/vendor/select2/i18n/da.js diff --git a/web/pgadmin/static/js/select2/i18n/de.js b/web/pgadmin/static/vendor/select2/i18n/de.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/de.js rename to web/pgadmin/static/vendor/select2/i18n/de.js diff --git a/web/pgadmin/static/js/select2/i18n/en.js b/web/pgadmin/static/vendor/select2/i18n/en.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/en.js rename to web/pgadmin/static/vendor/select2/i18n/en.js diff --git a/web/pgadmin/static/js/select2/i18n/es.js b/web/pgadmin/static/vendor/select2/i18n/es.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/es.js rename to web/pgadmin/static/vendor/select2/i18n/es.js diff --git a/web/pgadmin/static/js/select2/i18n/et.js b/web/pgadmin/static/vendor/select2/i18n/et.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/et.js rename to web/pgadmin/static/vendor/select2/i18n/et.js diff --git a/web/pgadmin/static/js/select2/i18n/eu.js b/web/pgadmin/static/vendor/select2/i18n/eu.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/eu.js rename to web/pgadmin/static/vendor/select2/i18n/eu.js diff --git a/web/pgadmin/static/js/select2/i18n/fa.js b/web/pgadmin/static/vendor/select2/i18n/fa.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/fa.js rename to web/pgadmin/static/vendor/select2/i18n/fa.js diff --git a/web/pgadmin/static/js/select2/i18n/fi.js b/web/pgadmin/static/vendor/select2/i18n/fi.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/fi.js rename to web/pgadmin/static/vendor/select2/i18n/fi.js diff --git a/web/pgadmin/static/js/select2/i18n/fr.js b/web/pgadmin/static/vendor/select2/i18n/fr.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/fr.js rename to web/pgadmin/static/vendor/select2/i18n/fr.js diff --git a/web/pgadmin/static/js/select2/i18n/gl.js b/web/pgadmin/static/vendor/select2/i18n/gl.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/gl.js rename to web/pgadmin/static/vendor/select2/i18n/gl.js diff --git a/web/pgadmin/static/js/select2/i18n/he.js b/web/pgadmin/static/vendor/select2/i18n/he.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/he.js rename to web/pgadmin/static/vendor/select2/i18n/he.js diff --git a/web/pgadmin/static/js/select2/i18n/hi.js b/web/pgadmin/static/vendor/select2/i18n/hi.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/hi.js rename to web/pgadmin/static/vendor/select2/i18n/hi.js diff --git a/web/pgadmin/static/js/select2/i18n/hr.js b/web/pgadmin/static/vendor/select2/i18n/hr.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/hr.js rename to web/pgadmin/static/vendor/select2/i18n/hr.js diff --git a/web/pgadmin/static/js/select2/i18n/hu.js b/web/pgadmin/static/vendor/select2/i18n/hu.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/hu.js rename to web/pgadmin/static/vendor/select2/i18n/hu.js diff --git a/web/pgadmin/static/js/select2/i18n/id.js b/web/pgadmin/static/vendor/select2/i18n/id.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/id.js rename to web/pgadmin/static/vendor/select2/i18n/id.js diff --git a/web/pgadmin/static/js/select2/i18n/is.js b/web/pgadmin/static/vendor/select2/i18n/is.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/is.js rename to web/pgadmin/static/vendor/select2/i18n/is.js diff --git a/web/pgadmin/static/js/select2/i18n/it.js b/web/pgadmin/static/vendor/select2/i18n/it.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/it.js rename to web/pgadmin/static/vendor/select2/i18n/it.js diff --git a/web/pgadmin/static/js/select2/i18n/ja.js b/web/pgadmin/static/vendor/select2/i18n/ja.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/ja.js rename to web/pgadmin/static/vendor/select2/i18n/ja.js diff --git a/web/pgadmin/static/js/select2/i18n/ko.js b/web/pgadmin/static/vendor/select2/i18n/ko.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/ko.js rename to web/pgadmin/static/vendor/select2/i18n/ko.js diff --git a/web/pgadmin/static/js/select2/i18n/lt.js b/web/pgadmin/static/vendor/select2/i18n/lt.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/lt.js rename to web/pgadmin/static/vendor/select2/i18n/lt.js diff --git a/web/pgadmin/static/js/select2/i18n/lv.js b/web/pgadmin/static/vendor/select2/i18n/lv.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/lv.js rename to web/pgadmin/static/vendor/select2/i18n/lv.js diff --git a/web/pgadmin/static/js/select2/i18n/mk.js b/web/pgadmin/static/vendor/select2/i18n/mk.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/mk.js rename to web/pgadmin/static/vendor/select2/i18n/mk.js diff --git a/web/pgadmin/static/js/select2/i18n/ms.js b/web/pgadmin/static/vendor/select2/i18n/ms.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/ms.js rename to web/pgadmin/static/vendor/select2/i18n/ms.js diff --git a/web/pgadmin/static/js/select2/i18n/nb.js b/web/pgadmin/static/vendor/select2/i18n/nb.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/nb.js rename to web/pgadmin/static/vendor/select2/i18n/nb.js diff --git a/web/pgadmin/static/js/select2/i18n/nl.js b/web/pgadmin/static/vendor/select2/i18n/nl.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/nl.js rename to web/pgadmin/static/vendor/select2/i18n/nl.js diff --git a/web/pgadmin/static/js/select2/i18n/pl.js b/web/pgadmin/static/vendor/select2/i18n/pl.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/pl.js rename to web/pgadmin/static/vendor/select2/i18n/pl.js diff --git a/web/pgadmin/static/js/select2/i18n/pt-BR.js b/web/pgadmin/static/vendor/select2/i18n/pt-BR.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/pt-BR.js rename to web/pgadmin/static/vendor/select2/i18n/pt-BR.js diff --git a/web/pgadmin/static/js/select2/i18n/pt.js b/web/pgadmin/static/vendor/select2/i18n/pt.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/pt.js rename to web/pgadmin/static/vendor/select2/i18n/pt.js diff --git a/web/pgadmin/static/js/select2/i18n/ro.js b/web/pgadmin/static/vendor/select2/i18n/ro.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/ro.js rename to web/pgadmin/static/vendor/select2/i18n/ro.js diff --git a/web/pgadmin/static/js/select2/i18n/ru.js b/web/pgadmin/static/vendor/select2/i18n/ru.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/ru.js rename to web/pgadmin/static/vendor/select2/i18n/ru.js diff --git a/web/pgadmin/static/js/select2/i18n/sk.js b/web/pgadmin/static/vendor/select2/i18n/sk.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/sk.js rename to web/pgadmin/static/vendor/select2/i18n/sk.js diff --git a/web/pgadmin/static/js/select2/i18n/sr-Cyrl.js b/web/pgadmin/static/vendor/select2/i18n/sr-Cyrl.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/sr-Cyrl.js rename to web/pgadmin/static/vendor/select2/i18n/sr-Cyrl.js diff --git a/web/pgadmin/static/js/select2/i18n/sr.js b/web/pgadmin/static/vendor/select2/i18n/sr.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/sr.js rename to web/pgadmin/static/vendor/select2/i18n/sr.js diff --git a/web/pgadmin/static/js/select2/i18n/sv.js b/web/pgadmin/static/vendor/select2/i18n/sv.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/sv.js rename to web/pgadmin/static/vendor/select2/i18n/sv.js diff --git a/web/pgadmin/static/js/select2/i18n/th.js b/web/pgadmin/static/vendor/select2/i18n/th.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/th.js rename to web/pgadmin/static/vendor/select2/i18n/th.js diff --git a/web/pgadmin/static/js/select2/i18n/tr.js b/web/pgadmin/static/vendor/select2/i18n/tr.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/tr.js rename to web/pgadmin/static/vendor/select2/i18n/tr.js diff --git a/web/pgadmin/static/js/select2/i18n/uk.js b/web/pgadmin/static/vendor/select2/i18n/uk.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/uk.js rename to web/pgadmin/static/vendor/select2/i18n/uk.js diff --git a/web/pgadmin/static/js/select2/i18n/vi.js b/web/pgadmin/static/vendor/select2/i18n/vi.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/vi.js rename to web/pgadmin/static/vendor/select2/i18n/vi.js diff --git a/web/pgadmin/static/js/select2/i18n/zh-CN.js b/web/pgadmin/static/vendor/select2/i18n/zh-CN.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/zh-CN.js rename to web/pgadmin/static/vendor/select2/i18n/zh-CN.js diff --git a/web/pgadmin/static/js/select2/i18n/zh-TW.js b/web/pgadmin/static/vendor/select2/i18n/zh-TW.js similarity index 100% rename from web/pgadmin/static/js/select2/i18n/zh-TW.js rename to web/pgadmin/static/vendor/select2/i18n/zh-TW.js diff --git a/web/pgadmin/static/css/select2/select2.css b/web/pgadmin/static/vendor/select2/select2.css similarity index 100% rename from web/pgadmin/static/css/select2/select2.css rename to web/pgadmin/static/vendor/select2/select2.css diff --git a/web/pgadmin/static/js/select2/select2.full.js b/web/pgadmin/static/vendor/select2/select2.full.js similarity index 100% rename from web/pgadmin/static/js/select2/select2.full.js rename to web/pgadmin/static/vendor/select2/select2.full.js diff --git a/web/pgadmin/static/js/select2/select2.full.min.js b/web/pgadmin/static/vendor/select2/select2.full.min.js similarity index 100% rename from web/pgadmin/static/js/select2/select2.full.min.js rename to web/pgadmin/static/vendor/select2/select2.full.min.js diff --git a/web/pgadmin/static/css/select2/select2.min.css b/web/pgadmin/static/vendor/select2/select2.min.css similarity index 100% rename from web/pgadmin/static/css/select2/select2.min.css rename to web/pgadmin/static/vendor/select2/select2.min.css diff --git a/web/pgadmin/static/js/slickgrid/README b/web/pgadmin/static/vendor/slickgrid/README similarity index 100% rename from web/pgadmin/static/js/slickgrid/README rename to web/pgadmin/static/vendor/slickgrid/README diff --git a/web/pgadmin/static/js/slickgrid/controls/slick.columnpicker.css b/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.css similarity index 100% rename from web/pgadmin/static/js/slickgrid/controls/slick.columnpicker.css rename to web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.css diff --git a/web/pgadmin/static/js/slickgrid/controls/slick.columnpicker.js b/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/controls/slick.columnpicker.js rename to web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.js diff --git a/web/pgadmin/static/js/slickgrid/controls/slick.pager.css b/web/pgadmin/static/vendor/slickgrid/controls/slick.pager.css similarity index 100% rename from web/pgadmin/static/js/slickgrid/controls/slick.pager.css rename to web/pgadmin/static/vendor/slickgrid/controls/slick.pager.css diff --git a/web/pgadmin/static/js/slickgrid/controls/slick.pager.js b/web/pgadmin/static/vendor/slickgrid/controls/slick.pager.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/controls/slick.pager.js rename to web/pgadmin/static/vendor/slickgrid/controls/slick.pager.js diff --git a/web/pgadmin/static/css/slickgrid/images/actions.gif b/web/pgadmin/static/vendor/slickgrid/images/actions.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/actions.gif rename to web/pgadmin/static/vendor/slickgrid/images/actions.gif diff --git a/web/pgadmin/static/css/slickgrid/images/ajax-loader-small.gif b/web/pgadmin/static/vendor/slickgrid/images/ajax-loader-small.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/ajax-loader-small.gif rename to web/pgadmin/static/vendor/slickgrid/images/ajax-loader-small.gif diff --git a/web/pgadmin/static/css/slickgrid/images/arrow_redo.png b/web/pgadmin/static/vendor/slickgrid/images/arrow_redo.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/arrow_redo.png rename to web/pgadmin/static/vendor/slickgrid/images/arrow_redo.png diff --git a/web/pgadmin/static/css/slickgrid/images/arrow_right_peppermint.png b/web/pgadmin/static/vendor/slickgrid/images/arrow_right_peppermint.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/arrow_right_peppermint.png rename to web/pgadmin/static/vendor/slickgrid/images/arrow_right_peppermint.png diff --git a/web/pgadmin/static/css/slickgrid/images/arrow_right_spearmint.png b/web/pgadmin/static/vendor/slickgrid/images/arrow_right_spearmint.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/arrow_right_spearmint.png rename to web/pgadmin/static/vendor/slickgrid/images/arrow_right_spearmint.png diff --git a/web/pgadmin/static/css/slickgrid/images/arrow_undo.png b/web/pgadmin/static/vendor/slickgrid/images/arrow_undo.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/arrow_undo.png rename to web/pgadmin/static/vendor/slickgrid/images/arrow_undo.png diff --git a/web/pgadmin/static/css/slickgrid/images/bullet_blue.png b/web/pgadmin/static/vendor/slickgrid/images/bullet_blue.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/bullet_blue.png rename to web/pgadmin/static/vendor/slickgrid/images/bullet_blue.png diff --git a/web/pgadmin/static/css/slickgrid/images/bullet_star.png b/web/pgadmin/static/vendor/slickgrid/images/bullet_star.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/bullet_star.png rename to web/pgadmin/static/vendor/slickgrid/images/bullet_star.png diff --git a/web/pgadmin/static/css/slickgrid/images/bullet_toggle_minus.png b/web/pgadmin/static/vendor/slickgrid/images/bullet_toggle_minus.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/bullet_toggle_minus.png rename to web/pgadmin/static/vendor/slickgrid/images/bullet_toggle_minus.png diff --git a/web/pgadmin/static/css/slickgrid/images/bullet_toggle_plus.png b/web/pgadmin/static/vendor/slickgrid/images/bullet_toggle_plus.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/bullet_toggle_plus.png rename to web/pgadmin/static/vendor/slickgrid/images/bullet_toggle_plus.png diff --git a/web/pgadmin/static/css/slickgrid/images/calendar.gif b/web/pgadmin/static/vendor/slickgrid/images/calendar.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/calendar.gif rename to web/pgadmin/static/vendor/slickgrid/images/calendar.gif diff --git a/web/pgadmin/static/css/slickgrid/images/collapse.gif b/web/pgadmin/static/vendor/slickgrid/images/collapse.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/collapse.gif rename to web/pgadmin/static/vendor/slickgrid/images/collapse.gif diff --git a/web/pgadmin/static/css/slickgrid/images/comment_yellow.gif b/web/pgadmin/static/vendor/slickgrid/images/comment_yellow.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/comment_yellow.gif rename to web/pgadmin/static/vendor/slickgrid/images/comment_yellow.gif diff --git a/web/pgadmin/static/css/slickgrid/images/down.gif b/web/pgadmin/static/vendor/slickgrid/images/down.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/down.gif rename to web/pgadmin/static/vendor/slickgrid/images/down.gif diff --git a/web/pgadmin/static/css/slickgrid/images/drag-handle.png b/web/pgadmin/static/vendor/slickgrid/images/drag-handle.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/drag-handle.png rename to web/pgadmin/static/vendor/slickgrid/images/drag-handle.png diff --git a/web/pgadmin/static/css/slickgrid/images/editor-helper-bg.gif b/web/pgadmin/static/vendor/slickgrid/images/editor-helper-bg.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/editor-helper-bg.gif rename to web/pgadmin/static/vendor/slickgrid/images/editor-helper-bg.gif diff --git a/web/pgadmin/static/css/slickgrid/images/expand.gif b/web/pgadmin/static/vendor/slickgrid/images/expand.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/expand.gif rename to web/pgadmin/static/vendor/slickgrid/images/expand.gif diff --git a/web/pgadmin/static/css/slickgrid/images/header-bg.gif b/web/pgadmin/static/vendor/slickgrid/images/header-bg.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/header-bg.gif rename to web/pgadmin/static/vendor/slickgrid/images/header-bg.gif diff --git a/web/pgadmin/static/css/slickgrid/images/header-columns-bg.gif b/web/pgadmin/static/vendor/slickgrid/images/header-columns-bg.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/header-columns-bg.gif rename to web/pgadmin/static/vendor/slickgrid/images/header-columns-bg.gif diff --git a/web/pgadmin/static/css/slickgrid/images/header-columns-over-bg.gif b/web/pgadmin/static/vendor/slickgrid/images/header-columns-over-bg.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/header-columns-over-bg.gif rename to web/pgadmin/static/vendor/slickgrid/images/header-columns-over-bg.gif diff --git a/web/pgadmin/static/css/slickgrid/images/help.png b/web/pgadmin/static/vendor/slickgrid/images/help.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/help.png rename to web/pgadmin/static/vendor/slickgrid/images/help.png diff --git a/web/pgadmin/static/css/slickgrid/images/info.gif b/web/pgadmin/static/vendor/slickgrid/images/info.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/info.gif rename to web/pgadmin/static/vendor/slickgrid/images/info.gif diff --git a/web/pgadmin/static/css/slickgrid/images/listview.gif b/web/pgadmin/static/vendor/slickgrid/images/listview.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/listview.gif rename to web/pgadmin/static/vendor/slickgrid/images/listview.gif diff --git a/web/pgadmin/static/css/slickgrid/images/pencil.gif b/web/pgadmin/static/vendor/slickgrid/images/pencil.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/pencil.gif rename to web/pgadmin/static/vendor/slickgrid/images/pencil.gif diff --git a/web/pgadmin/static/css/slickgrid/images/row-over-bg.gif b/web/pgadmin/static/vendor/slickgrid/images/row-over-bg.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/row-over-bg.gif rename to web/pgadmin/static/vendor/slickgrid/images/row-over-bg.gif diff --git a/web/pgadmin/static/css/slickgrid/images/sort-asc.gif b/web/pgadmin/static/vendor/slickgrid/images/sort-asc.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/sort-asc.gif rename to web/pgadmin/static/vendor/slickgrid/images/sort-asc.gif diff --git a/web/pgadmin/static/css/slickgrid/images/sort-asc.png b/web/pgadmin/static/vendor/slickgrid/images/sort-asc.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/sort-asc.png rename to web/pgadmin/static/vendor/slickgrid/images/sort-asc.png diff --git a/web/pgadmin/static/css/slickgrid/images/sort-desc.gif b/web/pgadmin/static/vendor/slickgrid/images/sort-desc.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/sort-desc.gif rename to web/pgadmin/static/vendor/slickgrid/images/sort-desc.gif diff --git a/web/pgadmin/static/css/slickgrid/images/sort-desc.png b/web/pgadmin/static/vendor/slickgrid/images/sort-desc.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/sort-desc.png rename to web/pgadmin/static/vendor/slickgrid/images/sort-desc.png diff --git a/web/pgadmin/static/css/slickgrid/images/stripes.png b/web/pgadmin/static/vendor/slickgrid/images/stripes.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/stripes.png rename to web/pgadmin/static/vendor/slickgrid/images/stripes.png diff --git a/web/pgadmin/static/css/slickgrid/images/tag_red.png b/web/pgadmin/static/vendor/slickgrid/images/tag_red.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/tag_red.png rename to web/pgadmin/static/vendor/slickgrid/images/tag_red.png diff --git a/web/pgadmin/static/css/slickgrid/images/tick.png b/web/pgadmin/static/vendor/slickgrid/images/tick.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/tick.png rename to web/pgadmin/static/vendor/slickgrid/images/tick.png diff --git a/web/pgadmin/static/css/slickgrid/images/user_identity.gif b/web/pgadmin/static/vendor/slickgrid/images/user_identity.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/user_identity.gif rename to web/pgadmin/static/vendor/slickgrid/images/user_identity.gif diff --git a/web/pgadmin/static/css/slickgrid/images/user_identity_plus.gif b/web/pgadmin/static/vendor/slickgrid/images/user_identity_plus.gif similarity index 100% rename from web/pgadmin/static/css/slickgrid/images/user_identity_plus.gif rename to web/pgadmin/static/vendor/slickgrid/images/user_identity_plus.gif diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.autotooltips.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.autotooltips.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.autotooltips.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.autotooltips.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.cellcopymanager.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.cellcopymanager.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.cellcopymanager.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.cellcopymanager.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.cellrangedecorator.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.cellrangedecorator.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.cellrangedecorator.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.cellrangedecorator.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.cellrangeselector.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.cellrangeselector.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.cellrangeselector.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.cellrangeselector.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.cellselectionmodel.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.cellselectionmodel.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.cellselectionmodel.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.cellselectionmodel.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.checkboxselectcolumn.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.checkboxselectcolumn.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.checkboxselectcolumn.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.checkboxselectcolumn.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.headerbuttons.css b/web/pgadmin/static/vendor/slickgrid/plugins/slick.headerbuttons.css similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.headerbuttons.css rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.headerbuttons.css diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.headerbuttons.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.headerbuttons.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.headerbuttons.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.headerbuttons.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.headermenu.css b/web/pgadmin/static/vendor/slickgrid/plugins/slick.headermenu.css similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.headermenu.css rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.headermenu.css diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.headermenu.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.headermenu.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.headermenu.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.headermenu.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.rowmovemanager.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.rowmovemanager.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.rowmovemanager.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.rowmovemanager.js diff --git a/web/pgadmin/static/js/slickgrid/plugins/slick.rowselectionmodel.js b/web/pgadmin/static/vendor/slickgrid/plugins/slick.rowselectionmodel.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/plugins/slick.rowselectionmodel.js rename to web/pgadmin/static/vendor/slickgrid/plugins/slick.rowselectionmodel.js diff --git a/web/pgadmin/static/css/slickgrid/slick-default-theme.css b/web/pgadmin/static/vendor/slickgrid/slick-default-theme.css similarity index 100% rename from web/pgadmin/static/css/slickgrid/slick-default-theme.css rename to web/pgadmin/static/vendor/slickgrid/slick-default-theme.css diff --git a/web/pgadmin/static/js/slickgrid/slick.core.js b/web/pgadmin/static/vendor/slickgrid/slick.core.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/slick.core.js rename to web/pgadmin/static/vendor/slickgrid/slick.core.js diff --git a/web/pgadmin/static/js/slickgrid/slick.dataview.js b/web/pgadmin/static/vendor/slickgrid/slick.dataview.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/slick.dataview.js rename to web/pgadmin/static/vendor/slickgrid/slick.dataview.js diff --git a/web/pgadmin/static/js/slickgrid/slick.editors.js b/web/pgadmin/static/vendor/slickgrid/slick.editors.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/slick.editors.js rename to web/pgadmin/static/vendor/slickgrid/slick.editors.js diff --git a/web/pgadmin/static/js/slickgrid/slick.formatters.js b/web/pgadmin/static/vendor/slickgrid/slick.formatters.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/slick.formatters.js rename to web/pgadmin/static/vendor/slickgrid/slick.formatters.js diff --git a/web/pgadmin/static/css/slickgrid/slick.grid.css b/web/pgadmin/static/vendor/slickgrid/slick.grid.css similarity index 100% rename from web/pgadmin/static/css/slickgrid/slick.grid.css rename to web/pgadmin/static/vendor/slickgrid/slick.grid.css diff --git a/web/pgadmin/static/js/slickgrid/slick.grid.js b/web/pgadmin/static/vendor/slickgrid/slick.grid.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/slick.grid.js rename to web/pgadmin/static/vendor/slickgrid/slick.grid.js diff --git a/web/pgadmin/static/js/slickgrid/slick.pgadmin.editors.js b/web/pgadmin/static/vendor/slickgrid/slick.pgadmin.editors.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/slick.pgadmin.editors.js rename to web/pgadmin/static/vendor/slickgrid/slick.pgadmin.editors.js diff --git a/web/pgadmin/static/js/slickgrid/slick.pgadmin.formatters.js b/web/pgadmin/static/vendor/slickgrid/slick.pgadmin.formatters.js similarity index 100% rename from web/pgadmin/static/js/slickgrid/slick.pgadmin.formatters.js rename to web/pgadmin/static/vendor/slickgrid/slick.pgadmin.formatters.js diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_flat_75_ffffff_40x100.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_65_ffffff_1x400.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_75_dadada_1x400.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_222222_256x240.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_222222_256x240.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_222222_256x240.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_222222_256x240.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_2e83ff_256x240.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_2e83ff_256x240.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_2e83ff_256x240.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_454545_256x240.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_454545_256x240.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_454545_256x240.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_454545_256x240.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_888888_256x240.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_888888_256x240.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_888888_256x240.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_888888_256x240.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_cd0a0a_256x240.png b/web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/images/ui-icons_cd0a0a_256x240.png rename to web/pgadmin/static/vendor/slickgrid/smoothness/images/ui-icons_cd0a0a_256x240.png diff --git a/web/pgadmin/static/css/slickgrid/smoothness/jquery-ui-1.11.3.custom.css b/web/pgadmin/static/vendor/slickgrid/smoothness/jquery-ui-1.11.3.custom.css similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/jquery-ui-1.11.3.custom.css rename to web/pgadmin/static/vendor/slickgrid/smoothness/jquery-ui-1.11.3.custom.css diff --git a/web/pgadmin/static/css/slickgrid/smoothness/jquery-ui-1.11.3.custom.min.css b/web/pgadmin/static/vendor/slickgrid/smoothness/jquery-ui-1.11.3.custom.min.css similarity index 100% rename from web/pgadmin/static/css/slickgrid/smoothness/jquery-ui-1.11.3.custom.min.css rename to web/pgadmin/static/vendor/slickgrid/smoothness/jquery-ui-1.11.3.custom.min.css diff --git a/web/pgadmin/static/js/underscore-min.js b/web/pgadmin/static/vendor/underscore/underscore-min.js similarity index 100% rename from web/pgadmin/static/js/underscore-min.js rename to web/pgadmin/static/vendor/underscore/underscore-min.js diff --git a/web/pgadmin/static/js/underscore.js b/web/pgadmin/static/vendor/underscore/underscore.js similarity index 100% rename from web/pgadmin/static/js/underscore.js rename to web/pgadmin/static/vendor/underscore/underscore.js diff --git a/web/pgadmin/static/js/underscore.string.js b/web/pgadmin/static/vendor/underscore/underscore.string.js similarity index 100% rename from web/pgadmin/static/js/underscore.string.js rename to web/pgadmin/static/vendor/underscore/underscore.string.js diff --git a/web/pgadmin/static/js/underscore.string.min.js b/web/pgadmin/static/vendor/underscore/underscore.string.min.js similarity index 100% rename from web/pgadmin/static/js/underscore.string.min.js rename to web/pgadmin/static/vendor/underscore/underscore.string.min.js diff --git a/web/pgadmin/static/js/wcDocker/README b/web/pgadmin/static/vendor/wcDocker/README similarity index 100% rename from web/pgadmin/static/js/wcDocker/README rename to web/pgadmin/static/vendor/wcDocker/README diff --git a/web/pgadmin/static/css/wcDocker/Themes/default.css b/web/pgadmin/static/vendor/wcDocker/Themes/default.css similarity index 100% rename from web/pgadmin/static/css/wcDocker/Themes/default.css rename to web/pgadmin/static/vendor/wcDocker/Themes/default.css diff --git a/web/pgadmin/static/css/wcDocker/Themes/default.min.css b/web/pgadmin/static/vendor/wcDocker/Themes/default.min.css similarity index 100% rename from web/pgadmin/static/css/wcDocker/Themes/default.min.css rename to web/pgadmin/static/vendor/wcDocker/Themes/default.min.css diff --git a/web/pgadmin/static/css/wcDocker/wcDocker.css b/web/pgadmin/static/vendor/wcDocker/wcDocker.css similarity index 100% rename from web/pgadmin/static/css/wcDocker/wcDocker.css rename to web/pgadmin/static/vendor/wcDocker/wcDocker.css diff --git a/web/pgadmin/static/js/wcDocker/wcDocker.js b/web/pgadmin/static/vendor/wcDocker/wcDocker.js similarity index 100% rename from web/pgadmin/static/js/wcDocker/wcDocker.js rename to web/pgadmin/static/vendor/wcDocker/wcDocker.js diff --git a/web/pgadmin/static/css/wcDocker/wcDocker.min.css b/web/pgadmin/static/vendor/wcDocker/wcDocker.min.css similarity index 100% rename from web/pgadmin/static/css/wcDocker/wcDocker.min.css rename to web/pgadmin/static/vendor/wcDocker/wcDocker.min.css diff --git a/web/pgadmin/static/js/wcDocker/wcDocker.min.js b/web/pgadmin/static/vendor/wcDocker/wcDocker.min.js similarity index 100% rename from web/pgadmin/static/js/wcDocker/wcDocker.min.js rename to web/pgadmin/static/vendor/wcDocker/wcDocker.min.js diff --git a/web/pgadmin/templates/base.html b/web/pgadmin/templates/base.html index da907d3ec..32ccc5e03 100755 --- a/web/pgadmin/templates/base.html +++ b/web/pgadmin/templates/base.html @@ -20,63 +20,63 @@ + href="{{ url_for('static', filename='vendor/bootstrap/bootstrap.css' if config.DEBUG else 'vendor/bootstrap/bootstrap.min.css')}}"/> + href="{{ url_for('static', filename='vendor/alertifyjs/alertify.css' if config.DEBUG else 'vendor/alertifyjs/alertify.min.css') }}"/> + href="{{ url_for('static', filename='vendor/alertifyjs/themes/bootstrap.css' if config.DEBUG else 'vendor/alertifyjs/themes/bootstrap.min.css') }}"/> + href="{{ url_for('static', filename='vendor/bootstrap/bootstrap-theme.css' if config.DEBUG else 'vendor/bootstrap/bootstrap-theme.min.css') }}"/> - - - - - + href="{{ url_for('static', filename='vendor/font-awesome/css/font-awesome.css' if config.DEBUG else 'vendor/font-awesome/css/font-awesome.min.css') }}"/> + + + + + + href="{{ url_for('static', filename='vendor/backgrid/backgrid-select-all.css' if config.DEBUG else 'vendor/backgrid/backgrid-select-all.min.css')}}"/> + href="{{ url_for('static', filename='vendor/backgrid/backgrid-paginator.css' if config.DEBUG else 'vendor/backgrid/backgrid-paginator.min.css')}}"/> + href="{{ url_for('static', filename='vendor/backgrid/backgrid-filter.css' if config.DEBUG else 'vendor/backgrid/backgrid-filter.min.css')}}"/> + href="{{ url_for('static', filename='vendor/backgrid/backgrid-sizeable-columns.css')}}"/> + href="{{ url_for('static', filename='vendor/select2/select2.css' if config.DEBUG else 'vendor/select2/select2.min.css')}}"/> + href="{{ url_for('static', filename='vendor/slickgrid/slick.grid.css')}}"/> + href="{{ url_for('static', filename='vendor/slickgrid/slick-default-theme.css')}}"/> + href="{{ url_for('static', filename='vendor/slickgrid/smoothness/jquery-ui-1.11.3.custom.css' if config.DEBUG else 'vendor/slickgrid/smoothness/jquery-ui-1.11.3.custom.min.css')}}"/> + href="{{ url_for('static', filename='vendor/codemirror/addon/scroll/simplescrollbars.css')}}"/> {% for stylesheet in current_app.stylesheets %} {% endfor %} - + {% block css_link %}{% endblock %} + src="{{ url_for('static', filename='vendor/require/require.js' if config.DEBUG else 'vendor/require/require.min.js') }}">