`, and ``.
-$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace !default;
-$font-family-base: $font-family-sans-serif !default;
-
-$font-size-base: 14px !default;
-$font-size-large: ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-small: ceil(($font-size-base * 0.85)) !default; // ~12px
-
-$font-size-h1: floor(($font-size-base * 2.6)) !default; // ~36px
-$font-size-h2: floor(($font-size-base * 2.15)) !default; // ~30px
-$font-size-h3: ceil(($font-size-base * 1.7)) !default; // ~24px
-$font-size-h4: ceil(($font-size-base * 1.25)) !default; // ~18px
-$font-size-h5: $font-size-base !default;
-$font-size-h6: ceil(($font-size-base * 0.85)) !default; // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-$line-height-base: 1.428571429 !default; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px
-
-//** By default, this inherits from the ``.
-$headings-font-family: inherit !default;
-$headings-font-weight: 500 !default;
-$headings-line-height: 1.1 !default;
-$headings-color: inherit !default;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-
-// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
-// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
-$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
-
-//** File name for all font files.
-$icon-font-name: "glyphicons-halflings-regular" !default;
-//** Element ID within SVG icon file.
-$icon-font-svg-id: "glyphicons_halflingsregular" !default;
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-$padding-base-vertical: 6px !default;
-$padding-base-horizontal: 12px !default;
-
-$padding-large-vertical: 10px !default;
-$padding-large-horizontal: 16px !default;
-
-$padding-small-vertical: 5px !default;
-$padding-small-horizontal: 10px !default;
-
-$padding-xs-vertical: 1px !default;
-$padding-xs-horizontal: 5px !default;
-
-$line-height-large: 1.3333333 !default; // extra decimals for Win 8.1 Chrome
-$line-height-small: 1.5 !default;
-
-$border-radius-base: 4px !default;
-$border-radius-large: 6px !default;
-$border-radius-small: 3px !default;
-
-//** Global color for active items (e.g., navs or dropdowns).
-$component-active-color: #fff !default;
-//** Global background color for active items (e.g., navs or dropdowns).
-$component-active-bg: $brand-primary !default;
-
-//** Width of the `border` for generating carets that indicator dropdowns.
-$caret-width-base: 4px !default;
-//** Carets increase slightly in size for larger components.
-$caret-width-large: 5px !default;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for ``s and ` `s.
-$table-cell-padding: 8px !default;
-//** Padding for cells in `.table-condensed`.
-$table-condensed-cell-padding: 5px !default;
-
-//** Default background color used for all tables.
-$table-bg: transparent !default;
-//** Background color used for `.table-striped`.
-$table-bg-accent: #f9f9f9 !default;
-//** Background color used for `.table-hover`.
-$table-bg-hover: #f5f5f5 !default;
-$table-bg-active: $table-bg-hover !default;
-
-//** Border color for table and cell borders.
-$table-border-color: #ddd !default;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-font-weight: normal !default;
-
-$btn-default-color: #333 !default;
-$btn-default-bg: #fff !default;
-$btn-default-border: #ccc !default;
-
-$btn-primary-color: #fff !default;
-$btn-primary-bg: $brand-primary !default;
-$btn-primary-border: darken($btn-primary-bg, 5%) !default;
-
-$btn-success-color: #fff !default;
-$btn-success-bg: $brand-success !default;
-$btn-success-border: darken($btn-success-bg, 5%) !default;
-
-$btn-info-color: #fff !default;
-$btn-info-bg: $brand-info !default;
-$btn-info-border: darken($btn-info-bg, 5%) !default;
-
-$btn-warning-color: #fff !default;
-$btn-warning-bg: $brand-warning !default;
-$btn-warning-border: darken($btn-warning-bg, 5%) !default;
-
-$btn-danger-color: #fff !default;
-$btn-danger-bg: $brand-danger !default;
-$btn-danger-border: darken($btn-danger-bg, 5%) !default;
-
-$btn-link-disabled-color: $gray-light !default;
-
-// Allows for customizing button radius independently from global border radius
-$btn-border-radius-base: $border-radius-base !default;
-$btn-border-radius-large: $border-radius-large !default;
-$btn-border-radius-small: $border-radius-small !default;
-
-
-//== Forms
-//
-//##
-
-//** ` ` background color
-$input-bg: #fff !default;
-//** ` ` background color
-$input-bg-disabled: $gray-lighter !default;
-
-//** Text color for ` `s
-$input-color: $gray !default;
-//** ` ` border color
-$input-border: #ccc !default;
-
-// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
-//** Default `.form-control` border radius
-// This has no effect on ``s in some browsers, due to the limited stylability of ``s in CSS.
-$input-border-radius: $border-radius-base !default;
-//** Large `.form-control` border radius
-$input-border-radius-large: $border-radius-large !default;
-//** Small `.form-control` border radius
-$input-border-radius-small: $border-radius-small !default;
-
-//** Border color for inputs on focus
-$input-border-focus: #66afe9 !default;
-
-//** Placeholder text color
-$input-color-placeholder: #999 !default;
-
-//** Default `.form-control` height
-$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
-//** Large `.form-control` height
-$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
-//** Small `.form-control` height
-$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
-
-//** `.form-group` margin
-$form-group-margin-bottom: 15px !default;
-
-$legend-color: $gray-dark !default;
-$legend-border-color: #e5e5e5 !default;
-
-//** Background color for textual input addons
-$input-group-addon-bg: $gray-lighter !default;
-//** Border color for textual input addons
-$input-group-addon-border-color: $input-border !default;
-
-//** Disabled cursor for form controls and buttons.
-$cursor-disabled: not-allowed !default;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-$dropdown-bg: #fff !default;
-//** Dropdown menu `border-color`.
-$dropdown-border: rgba(0,0,0,.15) !default;
-//** Dropdown menu `border-color` **for IE8**.
-$dropdown-fallback-border: #ccc !default;
-//** Divider color for between dropdown items.
-$dropdown-divider-bg: #e5e5e5 !default;
-
-//** Dropdown link text color.
-$dropdown-link-color: $gray-dark !default;
-//** Hover color for dropdown links.
-$dropdown-link-hover-color: darken($gray-dark, 5%) !default;
-//** Hover background for dropdown links.
-$dropdown-link-hover-bg: #f5f5f5 !default;
-
-//** Active dropdown menu item text color.
-$dropdown-link-active-color: $component-active-color !default;
-//** Active dropdown menu item background color.
-$dropdown-link-active-bg: $component-active-bg !default;
-
-//** Disabled dropdown menu item background color.
-$dropdown-link-disabled-color: $gray-light !default;
-
-//** Text color for headers within dropdown menus.
-$dropdown-header-color: $gray-light !default;
-
-//** Deprecated `$dropdown-caret-color` as of v3.1.0
-$dropdown-caret-color: #000 !default;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-$zindex-navbar: 1000 !default;
-$zindex-dropdown: 1000 !default;
-$zindex-popover: 1060 !default;
-$zindex-tooltip: 1070 !default;
-$zindex-navbar-fixed: 1030 !default;
-$zindex-modal-background: 1040 !default;
-$zindex-modal: 1050 !default;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `$screen-xs` as of v3.0.1
-$screen-xs: 480px !default;
-//** Deprecated `$screen-xs-min` as of v3.2.0
-$screen-xs-min: $screen-xs !default;
-//** Deprecated `$screen-phone` as of v3.0.1
-$screen-phone: $screen-xs-min !default;
-
-// Small screen / tablet
-//** Deprecated `$screen-sm` as of v3.0.1
-$screen-sm: 768px !default;
-$screen-sm-min: $screen-sm !default;
-//** Deprecated `$screen-tablet` as of v3.0.1
-$screen-tablet: $screen-sm-min !default;
-
-// Medium screen / desktop
-//** Deprecated `$screen-md` as of v3.0.1
-$screen-md: 992px !default;
-$screen-md-min: $screen-md !default;
-//** Deprecated `$screen-desktop` as of v3.0.1
-$screen-desktop: $screen-md-min !default;
-
-// Large screen / wide desktop
-//** Deprecated `$screen-lg` as of v3.0.1
-$screen-lg: 1200px !default;
-$screen-lg-min: $screen-lg !default;
-//** Deprecated `$screen-lg-desktop` as of v3.0.1
-$screen-lg-desktop: $screen-lg-min !default;
-
-// So media queries don't overlap when required, provide a maximum
-$screen-xs-max: ($screen-sm-min - 1) !default;
-$screen-sm-max: ($screen-md-min - 1) !default;
-$screen-md-max: ($screen-lg-min - 1) !default;
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-$grid-columns: 12 !default;
-//** Padding between columns. Gets divided in half for the left and right.
-$grid-gutter-width: 30px !default;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-$grid-float-breakpoint: $screen-sm-min !default;
-//** Point at which the navbar begins collapsing.
-$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-$container-tablet: (720px + $grid-gutter-width) !default;
-//** For `$screen-sm-min` and up.
-$container-sm: $container-tablet !default;
-
-// Medium screen / desktop
-$container-desktop: (940px + $grid-gutter-width) !default;
-//** For `$screen-md-min` and up.
-$container-md: $container-desktop !default;
-
-// Large screen / wide desktop
-$container-large-desktop: (1140px + $grid-gutter-width) !default;
-//** For `$screen-lg-min` and up.
-$container-lg: $container-large-desktop !default;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-$navbar-height: 50px !default;
-$navbar-margin-bottom: $line-height-computed !default;
-$navbar-border-radius: $border-radius-base !default;
-$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default;
-$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default;
-$navbar-collapse-max-height: 340px !default;
-
-$navbar-default-color: #777 !default;
-$navbar-default-bg: #f8f8f8 !default;
-$navbar-default-border: darken($navbar-default-bg, 6.5%) !default;
-
-// Navbar links
-$navbar-default-link-color: #777 !default;
-$navbar-default-link-hover-color: #333 !default;
-$navbar-default-link-hover-bg: transparent !default;
-$navbar-default-link-active-color: #555 !default;
-$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default;
-$navbar-default-link-disabled-color: #ccc !default;
-$navbar-default-link-disabled-bg: transparent !default;
-
-// Navbar brand label
-$navbar-default-brand-color: $navbar-default-link-color !default;
-$navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default;
-$navbar-default-brand-hover-bg: transparent !default;
-
-// Navbar toggle
-$navbar-default-toggle-hover-bg: #ddd !default;
-$navbar-default-toggle-icon-bar-bg: #888 !default;
-$navbar-default-toggle-border-color: #ddd !default;
-
-
-//=== Inverted navbar
-// Reset inverted navbar basics
-$navbar-inverse-color: lighten($gray-light, 15%) !default;
-$navbar-inverse-bg: #222 !default;
-$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default;
-
-// Inverted navbar links
-$navbar-inverse-link-color: lighten($gray-light, 15%) !default;
-$navbar-inverse-link-hover-color: #fff !default;
-$navbar-inverse-link-hover-bg: transparent !default;
-$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default;
-$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default;
-$navbar-inverse-link-disabled-color: #444 !default;
-$navbar-inverse-link-disabled-bg: transparent !default;
-
-// Inverted navbar brand label
-$navbar-inverse-brand-color: $navbar-inverse-link-color !default;
-$navbar-inverse-brand-hover-color: #fff !default;
-$navbar-inverse-brand-hover-bg: transparent !default;
-
-// Inverted navbar toggle
-$navbar-inverse-toggle-hover-bg: #333 !default;
-$navbar-inverse-toggle-icon-bar-bg: #fff !default;
-$navbar-inverse-toggle-border-color: #333 !default;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-$nav-link-padding: 10px 15px !default;
-$nav-link-hover-bg: $gray-lighter !default;
-
-$nav-disabled-link-color: $gray-light !default;
-$nav-disabled-link-hover-color: $gray-light !default;
-
-//== Tabs
-$nav-tabs-border-color: #ddd !default;
-
-$nav-tabs-link-hover-border-color: $gray-lighter !default;
-
-$nav-tabs-active-link-hover-bg: $body-bg !default;
-$nav-tabs-active-link-hover-color: $gray !default;
-$nav-tabs-active-link-hover-border-color: #ddd !default;
-
-$nav-tabs-justified-link-border-color: #ddd !default;
-$nav-tabs-justified-active-link-border-color: $body-bg !default;
-
-//== Pills
-$nav-pills-border-radius: $border-radius-base !default;
-$nav-pills-active-link-hover-bg: $component-active-bg !default;
-$nav-pills-active-link-hover-color: $component-active-color !default;
-
-
-//== Pagination
-//
-//##
-
-$pagination-color: $link-color !default;
-$pagination-bg: #fff !default;
-$pagination-border: #ddd !default;
-
-$pagination-hover-color: $link-hover-color !default;
-$pagination-hover-bg: $gray-lighter !default;
-$pagination-hover-border: #ddd !default;
-
-$pagination-active-color: #fff !default;
-$pagination-active-bg: $brand-primary !default;
-$pagination-active-border: $brand-primary !default;
-
-$pagination-disabled-color: $gray-light !default;
-$pagination-disabled-bg: #fff !default;
-$pagination-disabled-border: #ddd !default;
-
-
-//== Pager
-//
-//##
-
-$pager-bg: $pagination-bg !default;
-$pager-border: $pagination-border !default;
-$pager-border-radius: 15px !default;
-
-$pager-hover-bg: $pagination-hover-bg !default;
-
-$pager-active-bg: $pagination-active-bg !default;
-$pager-active-color: $pagination-active-color !default;
-
-$pager-disabled-color: $pagination-disabled-color !default;
-
-
-//== Jumbotron
-//
-//##
-
-$jumbotron-padding: 30px !default;
-$jumbotron-color: inherit !default;
-$jumbotron-bg: $gray-lighter !default;
-$jumbotron-heading-color: inherit !default;
-$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default;
-$jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default;
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-$state-success-text: #3c763d !default;
-$state-success-bg: #dff0d8 !default;
-$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default;
-
-$state-info-text: #31708f !default;
-$state-info-bg: #d9edf7 !default;
-$state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default;
-
-$state-warning-text: #8a6d3b !default;
-$state-warning-bg: #fcf8e3 !default;
-$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default;
-
-$state-danger-text: #a94442 !default;
-$state-danger-bg: #f2dede !default;
-$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default;
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-$tooltip-max-width: 200px !default;
-//** Tooltip text color
-$tooltip-color: #fff !default;
-//** Tooltip background color
-$tooltip-bg: #000 !default;
-$tooltip-opacity: .9 !default;
-
-//** Tooltip arrow width
-$tooltip-arrow-width: 5px !default;
-//** Tooltip arrow color
-$tooltip-arrow-color: $tooltip-bg !default;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-$popover-bg: #fff !default;
-//** Popover maximum width
-$popover-max-width: 276px !default;
-//** Popover border color
-$popover-border-color: rgba(0,0,0,.2) !default;
-//** Popover fallback border color
-$popover-fallback-border-color: #ccc !default;
-
-//** Popover title background color
-$popover-title-bg: darken($popover-bg, 3%) !default;
-
-//** Popover arrow width
-$popover-arrow-width: 10px !default;
-//** Popover arrow color
-$popover-arrow-color: $popover-bg !default;
-
-//** Popover outer arrow width
-$popover-arrow-outer-width: ($popover-arrow-width + 1) !default;
-//** Popover outer arrow color
-$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default;
-//** Popover outer arrow fallback color
-$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default;
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-$label-default-bg: $gray-light !default;
-//** Primary label background color
-$label-primary-bg: $brand-primary !default;
-//** Success label background color
-$label-success-bg: $brand-success !default;
-//** Info label background color
-$label-info-bg: $brand-info !default;
-//** Warning label background color
-$label-warning-bg: $brand-warning !default;
-//** Danger label background color
-$label-danger-bg: $brand-danger !default;
-
-//** Default label text color
-$label-color: #fff !default;
-//** Default text color of a linked label
-$label-link-hover-color: #fff !default;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-$modal-inner-padding: 15px !default;
-
-//** Padding applied to the modal title
-$modal-title-padding: 15px !default;
-//** Modal title line-height
-$modal-title-line-height: $line-height-base !default;
-
-//** Background color of modal content area
-$modal-content-bg: #fff !default;
-//** Modal content border color
-$modal-content-border-color: rgba(0,0,0,.2) !default;
-//** Modal content border color **for IE8**
-$modal-content-fallback-border-color: #999 !default;
-
-//** Modal backdrop background color
-$modal-backdrop-bg: #000 !default;
-//** Modal backdrop opacity
-$modal-backdrop-opacity: .5 !default;
-//** Modal header border color
-$modal-header-border-color: #e5e5e5 !default;
-//** Modal footer border color
-$modal-footer-border-color: $modal-header-border-color !default;
-
-$modal-lg: 900px !default;
-$modal-md: 600px !default;
-$modal-sm: 300px !default;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-$alert-padding: 15px !default;
-$alert-border-radius: $border-radius-base !default;
-$alert-link-font-weight: bold !default;
-
-$alert-success-bg: $state-success-bg !default;
-$alert-success-text: $state-success-text !default;
-$alert-success-border: $state-success-border !default;
-
-$alert-info-bg: $state-info-bg !default;
-$alert-info-text: $state-info-text !default;
-$alert-info-border: $state-info-border !default;
-
-$alert-warning-bg: $state-warning-bg !default;
-$alert-warning-text: $state-warning-text !default;
-$alert-warning-border: $state-warning-border !default;
-
-$alert-danger-bg: $state-danger-bg !default;
-$alert-danger-text: $state-danger-text !default;
-$alert-danger-border: $state-danger-border !default;
-
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-$progress-bg: #f5f5f5 !default;
-//** Progress bar text color
-$progress-bar-color: #fff !default;
-//** Variable for setting rounded corners on progress bar.
-$progress-border-radius: $border-radius-base !default;
-
-//** Default progress bar color
-$progress-bar-bg: $brand-primary !default;
-//** Success progress bar color
-$progress-bar-success-bg: $brand-success !default;
-//** Warning progress bar color
-$progress-bar-warning-bg: $brand-warning !default;
-//** Danger progress bar color
-$progress-bar-danger-bg: $brand-danger !default;
-//** Info progress bar color
-$progress-bar-info-bg: $brand-info !default;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-$list-group-bg: #fff !default;
-//** `.list-group-item` border color
-$list-group-border: #ddd !default;
-//** List group border radius
-$list-group-border-radius: $border-radius-base !default;
-
-//** Background color of single list items on hover
-$list-group-hover-bg: #f5f5f5 !default;
-//** Text color of active list items
-$list-group-active-color: $component-active-color !default;
-//** Background color of active list items
-$list-group-active-bg: $component-active-bg !default;
-//** Border color of active list elements
-$list-group-active-border: $list-group-active-bg !default;
-//** Text color for content within active list items
-$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default;
-
-//** Text color of disabled list items
-$list-group-disabled-color: $gray-light !default;
-//** Background color of disabled list items
-$list-group-disabled-bg: $gray-lighter !default;
-//** Text color for content within disabled list items
-$list-group-disabled-text-color: $list-group-disabled-color !default;
-
-$list-group-link-color: #555 !default;
-$list-group-link-hover-color: $list-group-link-color !default;
-$list-group-link-heading-color: #333 !default;
-
-
-//== Panels
-//
-//##
-
-$panel-bg: #fff !default;
-$panel-body-padding: 15px !default;
-$panel-heading-padding: 10px 15px !default;
-$panel-footer-padding: $panel-heading-padding !default;
-$panel-border-radius: $border-radius-base !default;
-
-//** Border color for elements within panels
-$panel-inner-border: #ddd !default;
-$panel-footer-bg: #f5f5f5 !default;
-
-$panel-default-text: $gray-dark !default;
-$panel-default-border: #ddd !default;
-$panel-default-heading-bg: #f5f5f5 !default;
-
-$panel-primary-text: #fff !default;
-$panel-primary-border: $brand-primary !default;
-$panel-primary-heading-bg: $brand-primary !default;
-
-$panel-success-text: $state-success-text !default;
-$panel-success-border: $state-success-border !default;
-$panel-success-heading-bg: $state-success-bg !default;
-
-$panel-info-text: $state-info-text !default;
-$panel-info-border: $state-info-border !default;
-$panel-info-heading-bg: $state-info-bg !default;
-
-$panel-warning-text: $state-warning-text !default;
-$panel-warning-border: $state-warning-border !default;
-$panel-warning-heading-bg: $state-warning-bg !default;
-
-$panel-danger-text: $state-danger-text !default;
-$panel-danger-border: $state-danger-border !default;
-$panel-danger-heading-bg: $state-danger-bg !default;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-$thumbnail-padding: 4px !default;
-//** Thumbnail background color
-$thumbnail-bg: $body-bg !default;
-//** Thumbnail border color
-$thumbnail-border: #ddd !default;
-//** Thumbnail border radius
-$thumbnail-border-radius: $border-radius-base !default;
-
-//** Custom text color for thumbnail captions
-$thumbnail-caption-color: $text-color !default;
-//** Padding around the thumbnail caption
-$thumbnail-caption-padding: 9px !default;
-
-
-//== Wells
-//
-//##
-
-$well-bg: #f5f5f5 !default;
-$well-border: darken($well-bg, 7%) !default;
-
-
-//== Badges
-//
-//##
-
-$badge-color: #fff !default;
-//** Linked badge text color on hover
-$badge-link-hover-color: #fff !default;
-$badge-bg: $gray-light !default;
-
-//** Badge text color in active nav link
-$badge-active-color: $link-color !default;
-//** Badge background color in active nav link
-$badge-active-bg: #fff !default;
-
-$badge-font-weight: bold !default;
-$badge-line-height: 1 !default;
-$badge-border-radius: 10px !default;
-
-
-//== Breadcrumbs
-//
-//##
-
-$breadcrumb-padding-vertical: 8px !default;
-$breadcrumb-padding-horizontal: 15px !default;
-//** Breadcrumb background color
-$breadcrumb-bg: #f5f5f5 !default;
-//** Breadcrumb text color
-$breadcrumb-color: #ccc !default;
-//** Text color of current page in the breadcrumb
-$breadcrumb-active-color: $gray-light !default;
-//** Textual separator for between breadcrumb elements
-$breadcrumb-separator: "/" !default;
-
-
-//== Carousel
-//
-//##
-
-$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default;
-
-$carousel-control-color: #fff !default;
-$carousel-control-width: 15% !default;
-$carousel-control-opacity: .5 !default;
-$carousel-control-font-size: 20px !default;
-
-$carousel-indicator-active-bg: #fff !default;
-$carousel-indicator-border-color: #fff !default;
-
-$carousel-caption-color: #fff !default;
-
-
-//== Close
-//
-//##
-
-$close-font-weight: bold !default;
-$close-color: #000 !default;
-$close-text-shadow: 0 1px 0 #fff !default;
-
-
-//== Code
-//
-//##
-
-$code-color: #c7254e !default;
-$code-bg: #f9f2f4 !default;
-
-$kbd-color: #fff !default;
-$kbd-bg: #333 !default;
-
-$pre-bg: #f5f5f5 !default;
-$pre-color: $gray-dark !default;
-$pre-border-color: #ccc !default;
-$pre-scrollable-max-height: 340px !default;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-$component-offset-horizontal: 180px !default;
-//** Text muted color
-$text-muted: $gray-light !default;
-//** Abbreviations and acronyms border color
-$abbr-border-color: $gray-light !default;
-//** Headings small color
-$headings-small-color: $gray-light !default;
-//** Blockquote small color
-$blockquote-small-color: $gray-light !default;
-//** Blockquote font size
-$blockquote-font-size: ($font-size-base * 1.25) !default;
-//** Blockquote border color
-$blockquote-border-color: $gray-lighter !default;
-//** Page header border color
-$page-header-border-color: $gray-lighter !default;
-//** Width of horizontal description list titles
-$dl-horizontal-offset: $component-offset-horizontal !default;
-//** Point at which .dl-horizontal becomes horizontal
-$dl-horizontal-breakpoint: $grid-float-breakpoint !default;
-//** Horizontal line color.
-$hr-border: $gray-lighter !default;
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/_wells.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/_wells.scss
deleted file mode 100644
index b8657118a6..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/_wells.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// Wells
-// --------------------------------------------------
-
-
-// Base class
-.well {
- min-height: 20px;
- padding: 19px;
- margin-bottom: 20px;
- background-color: $well-bg;
- border: 1px solid $well-border;
- border-radius: $border-radius-base;
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
- blockquote {
- border-color: #ddd;
- border-color: rgba(0,0,0,.15);
- }
-}
-
-// Sizes
-.well-lg {
- padding: 24px;
- border-radius: $border-radius-large;
-}
-.well-sm {
- padding: 9px;
- border-radius: $border-radius-small;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_alerts.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_alerts.scss
deleted file mode 100644
index 3faf0b5a50..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_alerts.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-// Alerts
-
-@mixin alert-variant($background, $border, $text-color) {
- background-color: $background;
- border-color: $border;
- color: $text-color;
-
- hr {
- border-top-color: darken($border, 5%);
- }
- .alert-link {
- color: darken($text-color, 10%);
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_background-variant.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_background-variant.scss
deleted file mode 100644
index 4c7769e13a..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_background-variant.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// Contextual backgrounds
-
-// [converter] $parent hack
-@mixin bg-variant($parent, $color) {
- #{$parent} {
- background-color: $color;
- }
- a#{$parent}:hover,
- a#{$parent}:focus {
- background-color: darken($color, 10%);
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_border-radius.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_border-radius.scss
deleted file mode 100644
index ce19499875..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_border-radius.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-// Single side border-radius
-
-@mixin border-top-radius($radius) {
- border-top-right-radius: $radius;
- border-top-left-radius: $radius;
-}
-@mixin border-right-radius($radius) {
- border-bottom-right-radius: $radius;
- border-top-right-radius: $radius;
-}
-@mixin border-bottom-radius($radius) {
- border-bottom-right-radius: $radius;
- border-bottom-left-radius: $radius;
-}
-@mixin border-left-radius($radius) {
- border-bottom-left-radius: $radius;
- border-top-left-radius: $radius;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_buttons.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_buttons.scss
deleted file mode 100644
index b93f84b2cb..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_buttons.scss
+++ /dev/null
@@ -1,65 +0,0 @@
-// Button variants
-//
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-
-@mixin button-variant($color, $background, $border) {
- color: $color;
- background-color: $background;
- border-color: $border;
-
- &:focus,
- &.focus {
- color: $color;
- background-color: darken($background, 10%);
- border-color: darken($border, 25%);
- }
- &:hover {
- color: $color;
- background-color: darken($background, 10%);
- border-color: darken($border, 12%);
- }
- &:active,
- &.active,
- .open > &.dropdown-toggle {
- color: $color;
- background-color: darken($background, 10%);
- border-color: darken($border, 12%);
-
- &:hover,
- &:focus,
- &.focus {
- color: $color;
- background-color: darken($background, 17%);
- border-color: darken($border, 25%);
- }
- }
- &:active,
- &.active,
- .open > &.dropdown-toggle {
- background-image: none;
- }
- &.disabled,
- &[disabled],
- fieldset[disabled] & {
- &:hover,
- &:focus,
- &.focus {
- background-color: $background;
- border-color: $border;
- }
- }
-
- .badge {
- color: $background;
- background-color: $color;
- }
-}
-
-// Button sizes
-@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
- padding: $padding-vertical $padding-horizontal;
- font-size: $font-size;
- line-height: $line-height;
- border-radius: $border-radius;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_center-block.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_center-block.scss
deleted file mode 100644
index e06fb5e276..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_center-block.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-// Center-align a block level element
-
-@mixin center-block() {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_clearfix.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_clearfix.scss
deleted file mode 100644
index dc3e2ab426..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_clearfix.scss
+++ /dev/null
@@ -1,22 +0,0 @@
-// Clearfix
-//
-// For modern browsers
-// 1. The space content is one way to avoid an Opera bug when the
-// contenteditable attribute is included anywhere else in the document.
-// Otherwise it causes space to appear at the top and bottom of elements
-// that are clearfixed.
-// 2. The use of `table` rather than `block` is only necessary if using
-// `:before` to contain the top-margins of child elements.
-//
-// Source: http://nicolasgallagher.com/micro-clearfix-hack/
-
-@mixin clearfix() {
- &:before,
- &:after {
- content: " "; // 1
- display: table; // 2
- }
- &:after {
- clear: both;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_forms.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_forms.scss
deleted file mode 100644
index 277aa5f8e1..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_forms.scss
+++ /dev/null
@@ -1,88 +0,0 @@
-// Form validation states
-//
-// Used in forms.less to generate the form validation CSS for warnings, errors,
-// and successes.
-
-@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
- // Color the label and help text
- .help-block,
- .control-label,
- .radio,
- .checkbox,
- .radio-inline,
- .checkbox-inline,
- &.radio label,
- &.checkbox label,
- &.radio-inline label,
- &.checkbox-inline label {
- color: $text-color;
- }
- // Set the border and box shadow on specific inputs to match
- .form-control {
- border-color: $border-color;
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
- &:focus {
- border-color: darken($border-color, 10%);
- $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
- @include box-shadow($shadow);
- }
- }
- // Set validation states also for addons
- .input-group-addon {
- color: $text-color;
- border-color: $border-color;
- background-color: $background-color;
- }
- // Optional feedback icon
- .form-control-feedback {
- color: $text-color;
- }
-}
-
-
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `$input-border-focus` variable.
-//
-// We highly encourage you to not customize the default value, but instead use
-// this to tweak colors on an as-needed basis. This aesthetic change is based on
-// WebKit's default styles, but applicable to a wider range of browsers. Its
-// usability and accessibility should be taken into account with any change.
-//
-// Example usage: change the default blue border and shadow to white for better
-// contrast against a dark gray background.
-@mixin form-control-focus($color: $input-border-focus) {
- $color-rgba: rgba(red($color), green($color), blue($color), .6);
- &:focus {
- border-color: $color;
- outline: 0;
- @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
- }
-}
-
-// Form control sizing
-//
-// Relative text size, padding, and border-radii changes for form controls. For
-// horizontal sizing, wrap controls in the predefined grid classes. ``
-// element gets special love because it's special, and that's a fact!
-// [converter] $parent hack
-@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
- #{$parent} {
- height: $input-height;
- padding: $padding-vertical $padding-horizontal;
- font-size: $font-size;
- line-height: $line-height;
- border-radius: $border-radius;
- }
-
- select#{$parent} {
- height: $input-height;
- line-height: $input-height;
- }
-
- textarea#{$parent},
- select[multiple]#{$parent} {
- height: auto;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_gradients.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_gradients.scss
deleted file mode 100644
index a8939f5ae6..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_gradients.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-// Gradients
-
-
-
-// Horizontal gradient, from left to right
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
-// Color stops are not available in IE9 and below.
-@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
- background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
- background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
-}
-
-// Vertical gradient, from top to bottom
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
-// Color stops are not available in IE9 and below.
-@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
- background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12
- background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
-}
-
-@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
- background-repeat: repeat-x;
- background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
- background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
- background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
-}
-@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
- background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
- background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
- background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
-}
-@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
- background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
- background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
- background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
- background-repeat: no-repeat;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
-}
-@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
- background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
- background-image: radial-gradient(circle, $inner-color, $outer-color);
- background-repeat: no-repeat;
-}
-@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
- background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
- background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_grid-framework.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_grid-framework.scss
deleted file mode 100644
index 16d038c04f..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_grid-framework.scss
+++ /dev/null
@@ -1,81 +0,0 @@
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `$grid-columns`.
-
-// [converter] This is defined recursively in LESS, but Sass supports real loops
-@mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
- @for $i from (1 + 1) through $grid-columns {
- $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
- }
- #{$list} {
- position: relative;
- // Prevent columns from collapsing when empty
- min-height: 1px;
- // Inner gutter via padding
- padding-left: ceil(($grid-gutter-width / 2));
- padding-right: floor(($grid-gutter-width / 2));
- }
-}
-
-
-// [converter] This is defined recursively in LESS, but Sass supports real loops
-@mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
- @for $i from (1 + 1) through $grid-columns {
- $list: "#{$list}, .col-#{$class}-#{$i}";
- }
- #{$list} {
- float: left;
- }
-}
-
-
-@mixin calc-grid-column($index, $class, $type) {
- @if ($type == width) and ($index > 0) {
- .col-#{$class}-#{$index} {
- width: percentage(($index / $grid-columns));
- }
- }
- @if ($type == push) and ($index > 0) {
- .col-#{$class}-push-#{$index} {
- left: percentage(($index / $grid-columns));
- }
- }
- @if ($type == push) and ($index == 0) {
- .col-#{$class}-push-0 {
- left: auto;
- }
- }
- @if ($type == pull) and ($index > 0) {
- .col-#{$class}-pull-#{$index} {
- right: percentage(($index / $grid-columns));
- }
- }
- @if ($type == pull) and ($index == 0) {
- .col-#{$class}-pull-0 {
- right: auto;
- }
- }
- @if ($type == offset) {
- .col-#{$class}-offset-#{$index} {
- margin-left: percentage(($index / $grid-columns));
- }
- }
-}
-
-// [converter] This is defined recursively in LESS, but Sass supports real loops
-@mixin loop-grid-columns($columns, $class, $type) {
- @for $i from 0 through $columns {
- @include calc-grid-column($i, $class, $type);
- }
-}
-
-
-// Create grid for specific class
-@mixin make-grid($class) {
- @include float-grid-columns($class);
- @include loop-grid-columns($grid-columns, $class, width);
- @include loop-grid-columns($grid-columns, $class, pull);
- @include loop-grid-columns($grid-columns, $class, push);
- @include loop-grid-columns($grid-columns, $class, offset);
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_grid.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_grid.scss
deleted file mode 100644
index 59551dac1e..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_grid.scss
+++ /dev/null
@@ -1,122 +0,0 @@
-// Grid system
-//
-// Generate semantic grid columns with these mixins.
-
-// Centered container element
-@mixin container-fixed($gutter: $grid-gutter-width) {
- margin-right: auto;
- margin-left: auto;
- padding-left: floor(($gutter / 2));
- padding-right: ceil(($gutter / 2));
- @include clearfix;
-}
-
-// Creates a wrapper for a series of columns
-@mixin make-row($gutter: $grid-gutter-width) {
- margin-left: ceil(($gutter / -2));
- margin-right: floor(($gutter / -2));
- @include clearfix;
-}
-
-// Generate the extra small columns
-@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
- position: relative;
- float: left;
- width: percentage(($columns / $grid-columns));
- min-height: 1px;
- padding-left: ($gutter / 2);
- padding-right: ($gutter / 2);
-}
-@mixin make-xs-column-offset($columns) {
- margin-left: percentage(($columns / $grid-columns));
-}
-@mixin make-xs-column-push($columns) {
- left: percentage(($columns / $grid-columns));
-}
-@mixin make-xs-column-pull($columns) {
- right: percentage(($columns / $grid-columns));
-}
-
-// Generate the small columns
-@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: ($gutter / 2);
- padding-right: ($gutter / 2);
-
- @media (min-width: $screen-sm-min) {
- float: left;
- width: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-sm-column-offset($columns) {
- @media (min-width: $screen-sm-min) {
- margin-left: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-sm-column-push($columns) {
- @media (min-width: $screen-sm-min) {
- left: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-sm-column-pull($columns) {
- @media (min-width: $screen-sm-min) {
- right: percentage(($columns / $grid-columns));
- }
-}
-
-// Generate the medium columns
-@mixin make-md-column($columns, $gutter: $grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: ($gutter / 2);
- padding-right: ($gutter / 2);
-
- @media (min-width: $screen-md-min) {
- float: left;
- width: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-md-column-offset($columns) {
- @media (min-width: $screen-md-min) {
- margin-left: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-md-column-push($columns) {
- @media (min-width: $screen-md-min) {
- left: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-md-column-pull($columns) {
- @media (min-width: $screen-md-min) {
- right: percentage(($columns / $grid-columns));
- }
-}
-
-// Generate the large columns
-@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
- position: relative;
- min-height: 1px;
- padding-left: ($gutter / 2);
- padding-right: ($gutter / 2);
-
- @media (min-width: $screen-lg-min) {
- float: left;
- width: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-lg-column-offset($columns) {
- @media (min-width: $screen-lg-min) {
- margin-left: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-lg-column-push($columns) {
- @media (min-width: $screen-lg-min) {
- left: percentage(($columns / $grid-columns));
- }
-}
-@mixin make-lg-column-pull($columns) {
- @media (min-width: $screen-lg-min) {
- right: percentage(($columns / $grid-columns));
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_hide-text.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_hide-text.scss
deleted file mode 100644
index 1767e029c5..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_hide-text.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-// CSS image replacement
-//
-// Heads up! v3 launched with only `.hide-text()`, but per our pattern for
-// mixins being reused as classes with the same name, this doesn't hold up. As
-// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
-//
-// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
-
-// Deprecated as of v3.0.1 (has been removed in v4)
-@mixin hide-text() {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-
-// New mixin to use as of v3.0.1
-@mixin text-hide() {
- @include hide-text;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_image.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_image.scss
deleted file mode 100644
index c8dcf5e9cd..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_image.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-// Image Mixins
-// - Responsive image
-// - Retina image
-
-
-// Responsive image
-//
-// Keep images from scaling beyond the width of their parents.
-@mixin img-responsive($display: block) {
- display: $display;
- max-width: 100%; // Part 1: Set a maximum relative to the parent
- height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
-}
-
-
-// Retina image
-//
-// Short retina mixin for setting background-image and -size. Note that the
-// spelling of `min--moz-device-pixel-ratio` is intentional.
-@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
- background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
-
- @media
- only screen and (-webkit-min-device-pixel-ratio: 2),
- only screen and ( min--moz-device-pixel-ratio: 2),
- only screen and ( -o-min-device-pixel-ratio: 2/1),
- only screen and ( min-device-pixel-ratio: 2),
- only screen and ( min-resolution: 192dpi),
- only screen and ( min-resolution: 2dppx) {
- background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
- background-size: $width-1x $height-1x;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_labels.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_labels.scss
deleted file mode 100644
index eda6dfd29e..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_labels.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// Labels
-
-@mixin label-variant($color) {
- background-color: $color;
-
- &[href] {
- &:hover,
- &:focus {
- background-color: darken($color, 10%);
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_list-group.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_list-group.scss
deleted file mode 100644
index c478eeb31e..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_list-group.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-// List Groups
-
-@mixin list-group-item-variant($state, $background, $color) {
- .list-group-item-#{$state} {
- color: $color;
- background-color: $background;
-
- // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state}
- }
-
- a.list-group-item-#{$state},
- button.list-group-item-#{$state} {
- color: $color;
-
- .list-group-item-heading {
- color: inherit;
- }
-
- &:hover,
- &:focus {
- color: $color;
- background-color: darken($background, 5%);
- }
- &.active,
- &.active:hover,
- &.active:focus {
- color: #fff;
- background-color: $color;
- border-color: $color;
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_nav-divider.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_nav-divider.scss
deleted file mode 100644
index 2e6da02a47..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_nav-divider.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-// Horizontal dividers
-//
-// Dividers (basically an hr) within dropdowns and nav lists
-
-@mixin nav-divider($color: #e5e5e5) {
- height: 1px;
- margin: (($line-height-computed / 2) - 1) 0;
- overflow: hidden;
- background-color: $color;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_nav-vertical-align.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_nav-vertical-align.scss
deleted file mode 100644
index c8fbf1a7d6..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_nav-vertical-align.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-// Navbar vertical align
-//
-// Vertically center elements in the navbar.
-// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
-
-@mixin navbar-vertical-align($element-height) {
- margin-top: (($navbar-height - $element-height) / 2);
- margin-bottom: (($navbar-height - $element-height) / 2);
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_opacity.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_opacity.scss
deleted file mode 100644
index 88e9a576ab..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_opacity.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Opacity
-
-@mixin opacity($opacity) {
- opacity: $opacity;
- // IE8 filter
- $opacity-ie: ($opacity * 100);
- filter: alpha(opacity=$opacity-ie);
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_pagination.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_pagination.scss
deleted file mode 100644
index d4a5404fce..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_pagination.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-// Pagination
-
-@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
- > li {
- > a,
- > span {
- padding: $padding-vertical $padding-horizontal;
- font-size: $font-size;
- line-height: $line-height;
- }
- &:first-child {
- > a,
- > span {
- @include border-left-radius($border-radius);
- }
- }
- &:last-child {
- > a,
- > span {
- @include border-right-radius($border-radius);
- }
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_panels.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_panels.scss
deleted file mode 100644
index 3ff31ae51e..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_panels.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-// Panels
-
-@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
- border-color: $border;
-
- & > .panel-heading {
- color: $heading-text-color;
- background-color: $heading-bg-color;
- border-color: $heading-border;
-
- + .panel-collapse > .panel-body {
- border-top-color: $border;
- }
- .badge {
- color: $heading-bg-color;
- background-color: $heading-text-color;
- }
- }
- & > .panel-footer {
- + .panel-collapse > .panel-body {
- border-bottom-color: $border;
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_progress-bar.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_progress-bar.scss
deleted file mode 100644
index 90a62afc2d..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_progress-bar.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-// Progress bars
-
-@mixin progress-bar-variant($color) {
- background-color: $color;
-
- // Deprecated parent class requirement as of v3.2.0
- .progress-striped & {
- @include gradient-striped;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_reset-filter.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_reset-filter.scss
deleted file mode 100644
index bf73051200..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_reset-filter.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Reset filters for IE
-//
-// When you need to remove a gradient background, do not forget to use this to reset
-// the IE filter for IE9 and below.
-
-@mixin reset-filter() {
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_reset-text.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_reset-text.scss
deleted file mode 100644
index c9c28417fa..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_reset-text.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-@mixin reset-text() {
- font-family: $font-family-base;
- // We deliberately do NOT reset font-size.
- font-style: normal;
- font-weight: normal;
- letter-spacing: normal;
- line-break: auto;
- line-height: $line-height-base;
- text-align: left; // Fallback for where `start` is not supported
- text-align: start;
- text-decoration: none;
- text-shadow: none;
- text-transform: none;
- white-space: normal;
- word-break: normal;
- word-spacing: normal;
- word-wrap: normal;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_resize.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_resize.scss
deleted file mode 100644
index 83fa637917..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_resize.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Resize anything
-
-@mixin resizable($direction) {
- resize: $direction; // Options: horizontal, vertical, both
- overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_responsive-visibility.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_responsive-visibility.scss
deleted file mode 100644
index cbdf777239..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_responsive-visibility.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-// Responsive utilities
-
-//
-// More easily include all the states for responsive-utilities.less.
-// [converter] $parent hack
-@mixin responsive-visibility($parent) {
- #{$parent} {
- display: block !important;
- }
- table#{$parent} { display: table !important; }
- tr#{$parent} { display: table-row !important; }
- th#{$parent},
- td#{$parent} { display: table-cell !important; }
-}
-
-// [converter] $parent hack
-@mixin responsive-invisibility($parent) {
- #{$parent} {
- display: none !important;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_size.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_size.scss
deleted file mode 100644
index abbe2463ce..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_size.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-// Sizing shortcuts
-
-@mixin size($width, $height) {
- width: $width;
- height: $height;
-}
-
-@mixin square($size) {
- @include size($size, $size);
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_tab-focus.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_tab-focus.scss
deleted file mode 100644
index 7df0ae7ca1..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_tab-focus.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-// WebKit-style focus
-
-@mixin tab-focus() {
- // Default
- outline: thin dotted;
- // WebKit
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_table-row.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_table-row.scss
deleted file mode 100644
index 136795081e..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_table-row.scss
+++ /dev/null
@@ -1,28 +0,0 @@
-// Tables
-
-@mixin table-row-variant($state, $background) {
- // Exact selectors below required to override `.table-striped` and prevent
- // inheritance to nested tables.
- .table > thead > tr,
- .table > tbody > tr,
- .table > tfoot > tr {
- > td.#{$state},
- > th.#{$state},
- &.#{$state} > td,
- &.#{$state} > th {
- background-color: $background;
- }
- }
-
- // Hover states for `.table-hover`
- // Note: this is not available for cells or rows within `thead` or `tfoot`.
- .table-hover > tbody > tr {
- > td.#{$state}:hover,
- > th.#{$state}:hover,
- &.#{$state}:hover > td,
- &:hover > .#{$state},
- &.#{$state}:hover > th {
- background-color: darken($background, 5%);
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_text-emphasis.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_text-emphasis.scss
deleted file mode 100644
index 3b446c4152..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_text-emphasis.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// Typography
-
-// [converter] $parent hack
-@mixin text-emphasis-variant($parent, $color) {
- #{$parent} {
- color: $color;
- }
- a#{$parent}:hover,
- a#{$parent}:focus {
- color: darken($color, 10%);
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_text-overflow.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_text-overflow.scss
deleted file mode 100644
index 1593b25ea5..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_text-overflow.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Text overflow
-// Requires inline-block or block for proper styling
-
-@mixin text-overflow() {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_vendor-prefixes.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_vendor-prefixes.scss
deleted file mode 100644
index b3d0371fa8..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/bootstrap/mixins/_vendor-prefixes.scss
+++ /dev/null
@@ -1,222 +0,0 @@
-// Vendor Prefixes
-//
-// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
-// Autoprefixer in our Gruntfile. They have been removed in v4.
-
-// - Animations
-// - Backface visibility
-// - Box shadow
-// - Box sizing
-// - Content columns
-// - Hyphens
-// - Placeholder text
-// - Transformations
-// - Transitions
-// - User Select
-
-
-// Animations
-@mixin animation($animation) {
- -webkit-animation: $animation;
- -o-animation: $animation;
- animation: $animation;
-}
-@mixin animation-name($name) {
- -webkit-animation-name: $name;
- animation-name: $name;
-}
-@mixin animation-duration($duration) {
- -webkit-animation-duration: $duration;
- animation-duration: $duration;
-}
-@mixin animation-timing-function($timing-function) {
- -webkit-animation-timing-function: $timing-function;
- animation-timing-function: $timing-function;
-}
-@mixin animation-delay($delay) {
- -webkit-animation-delay: $delay;
- animation-delay: $delay;
-}
-@mixin animation-iteration-count($iteration-count) {
- -webkit-animation-iteration-count: $iteration-count;
- animation-iteration-count: $iteration-count;
-}
-@mixin animation-direction($direction) {
- -webkit-animation-direction: $direction;
- animation-direction: $direction;
-}
-@mixin animation-fill-mode($fill-mode) {
- -webkit-animation-fill-mode: $fill-mode;
- animation-fill-mode: $fill-mode;
-}
-
-// Backface visibility
-// Prevent browsers from flickering when using CSS 3D transforms.
-// Default value is `visible`, but can be changed to `hidden`
-
-@mixin backface-visibility($visibility) {
- -webkit-backface-visibility: $visibility;
- -moz-backface-visibility: $visibility;
- backface-visibility: $visibility;
-}
-
-// Drop shadows
-//
-// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
-// supported browsers that have box shadow capabilities now support it.
-
-@mixin box-shadow($shadow...) {
- -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
- box-shadow: $shadow;
-}
-
-// Box sizing
-@mixin box-sizing($boxmodel) {
- -webkit-box-sizing: $boxmodel;
- -moz-box-sizing: $boxmodel;
- box-sizing: $boxmodel;
-}
-
-// CSS3 Content Columns
-@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
- -webkit-column-count: $column-count;
- -moz-column-count: $column-count;
- column-count: $column-count;
- -webkit-column-gap: $column-gap;
- -moz-column-gap: $column-gap;
- column-gap: $column-gap;
-}
-
-// Optional hyphenation
-@mixin hyphens($mode: auto) {
- word-wrap: break-word;
- -webkit-hyphens: $mode;
- -moz-hyphens: $mode;
- -ms-hyphens: $mode; // IE10+
- -o-hyphens: $mode;
- hyphens: $mode;
-}
-
-// Placeholder text
-@mixin placeholder($color: $input-color-placeholder) {
- // Firefox
- &::-moz-placeholder {
- color: $color;
- opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
- }
- &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
- &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
-}
-
-// Transformations
-@mixin scale($ratio...) {
- -webkit-transform: scale($ratio);
- -ms-transform: scale($ratio); // IE9 only
- -o-transform: scale($ratio);
- transform: scale($ratio);
-}
-
-@mixin scaleX($ratio) {
- -webkit-transform: scaleX($ratio);
- -ms-transform: scaleX($ratio); // IE9 only
- -o-transform: scaleX($ratio);
- transform: scaleX($ratio);
-}
-@mixin scaleY($ratio) {
- -webkit-transform: scaleY($ratio);
- -ms-transform: scaleY($ratio); // IE9 only
- -o-transform: scaleY($ratio);
- transform: scaleY($ratio);
-}
-@mixin skew($x, $y) {
- -webkit-transform: skewX($x) skewY($y);
- -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
- -o-transform: skewX($x) skewY($y);
- transform: skewX($x) skewY($y);
-}
-@mixin translate($x, $y) {
- -webkit-transform: translate($x, $y);
- -ms-transform: translate($x, $y); // IE9 only
- -o-transform: translate($x, $y);
- transform: translate($x, $y);
-}
-@mixin translate3d($x, $y, $z) {
- -webkit-transform: translate3d($x, $y, $z);
- transform: translate3d($x, $y, $z);
-}
-@mixin rotate($degrees) {
- -webkit-transform: rotate($degrees);
- -ms-transform: rotate($degrees); // IE9 only
- -o-transform: rotate($degrees);
- transform: rotate($degrees);
-}
-@mixin rotateX($degrees) {
- -webkit-transform: rotateX($degrees);
- -ms-transform: rotateX($degrees); // IE9 only
- -o-transform: rotateX($degrees);
- transform: rotateX($degrees);
-}
-@mixin rotateY($degrees) {
- -webkit-transform: rotateY($degrees);
- -ms-transform: rotateY($degrees); // IE9 only
- -o-transform: rotateY($degrees);
- transform: rotateY($degrees);
-}
-@mixin perspective($perspective) {
- -webkit-perspective: $perspective;
- -moz-perspective: $perspective;
- perspective: $perspective;
-}
-@mixin perspective-origin($perspective) {
- -webkit-perspective-origin: $perspective;
- -moz-perspective-origin: $perspective;
- perspective-origin: $perspective;
-}
-@mixin transform-origin($origin) {
- -webkit-transform-origin: $origin;
- -moz-transform-origin: $origin;
- -ms-transform-origin: $origin; // IE9 only
- transform-origin: $origin;
-}
-
-
-// Transitions
-
-@mixin transition($transition...) {
- -webkit-transition: $transition;
- -o-transition: $transition;
- transition: $transition;
-}
-@mixin transition-property($transition-property...) {
- -webkit-transition-property: $transition-property;
- transition-property: $transition-property;
-}
-@mixin transition-delay($transition-delay) {
- -webkit-transition-delay: $transition-delay;
- transition-delay: $transition-delay;
-}
-@mixin transition-duration($transition-duration...) {
- -webkit-transition-duration: $transition-duration;
- transition-duration: $transition-duration;
-}
-@mixin transition-timing-function($timing-function) {
- -webkit-transition-timing-function: $timing-function;
- transition-timing-function: $timing-function;
-}
-@mixin transition-transform($transition...) {
- -webkit-transition: -webkit-transform $transition;
- -moz-transition: -moz-transform $transition;
- -o-transition: -o-transform $transition;
- transition: transform $transition;
-}
-
-
-// User select
-// For selecting text on the page
-
-@mixin user-select($select) {
- -webkit-user-select: $select;
- -moz-user-select: $select;
- -ms-user-select: $select; // IE10+
- user-select: $select;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_animated.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_animated.scss
deleted file mode 100644
index 8a020dbfff..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_animated.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_bordered-pulled.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_bordered-pulled.scss
deleted file mode 100644
index d4b85a02f2..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_bordered-pulled.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_core.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_core.scss
deleted file mode 100644
index 7425ef85fc..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_core.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_fixed-width.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_fixed-width.scss
deleted file mode 100644
index b221c98133..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_fixed-width.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Fixed Width Icons
-// -------------------------
-.#{$fa-css-prefix}-fw {
- width: (18em / 14);
- text-align: center;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_icons.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_icons.scss
deleted file mode 100644
index 6f9375989a..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_icons.scss
+++ /dev/null
@@ -1,697 +0,0 @@
-/* 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_larger.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_larger.scss
deleted file mode 100644
index 41e9a8184a..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_larger.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_list.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_list.scss
deleted file mode 100644
index 7d1e4d54d6..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_list.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_mixins.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_mixins.scss
deleted file mode 100644
index f96719b6a0..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_mixins.scss
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_path.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_path.scss
deleted file mode 100644
index bb457c23a8..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_path.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-/* 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_rotated-flipped.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_rotated-flipped.scss
deleted file mode 100644
index a3558fd09c..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_rotated-flipped.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_stacked.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_stacked.scss
deleted file mode 100644
index aef7403660..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_stacked.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_variables.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_variables.scss
deleted file mode 100644
index 0a471102c4..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/_sass/vendor/font-awesome/_variables.scss
+++ /dev/null
@@ -1,708 +0,0 @@
-// 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/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/announcements-4.0.html b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/announcements-4.0.html
deleted file mode 100644
index 165af9ee85..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/announcements-4.0.html
+++ /dev/null
@@ -1,752 +0,0 @@
----
-layout: default
-title: Select2 4.0.0 Released
-slug: announcements-4.0
----
-
-
-
Announcing Select2 4.0.0
-
-
-
-
-
-
-
-
-
-
-
- The 4.0 release of Select2 is the result of three years of working on the
- code base and watching where it needs to go. At the core, it is a full
- rewrite that addresses many of the extensibility and usability problems
- that could not be addressed in previous versions.
-
-
-
- This release contains many breaking changes, but easy-upgrade paths have
- been created as well as helper modules that will allow for backwards
- compatibility to be maintained with past versions of Select2. Upgrading
- will require you to read the release notes carefully, but the
- migration path should be relatively straightforward. You can view a list
- of the most common changes that you will need to make
- in the release notes .
-
-
-
- Below is an in-depth review of what is new in Select2, as well as some of
- the major changes that have been made.
-
-
-
-
- New features
-
-
- The notable features of this new release include:
-
-
-
-
- A more flexible plugin framework that allows you to override Select2 to
- behave exactly how you want it to.
-
-
- Consistency with standard <select> elements for all
- data adapters, removing the need for hidden <input>
- elements.
-
-
- A new build system that uses AMD to keep everything organized.
-
-
- Less specific selectors allowing for Select2 to be styled to fit the
- rest of your application.
-
-
-
-
-
- Plugin system
-
-
- Select2 now provides interfaces that allow for it to be easily extended,
- allowing for anyone to create a plugin that changes the way Select2 works.
- This is the result of Select2 being broken into four distinct sections,
- each of which can be extended and used together to create your unique
- Select2.
-
-
-
- The adapters implement a consistent interface that is documented in the
- options section for adapters , allowing
- you to customize Select2 to do exactly what you are looking for. Select2
- is designed such that you can mix and match plugins, with most of the core
- options being built as decorators that wrap the standard adapters.
-
-
-
-
- AMD-based build system
-
-
- Select2 now uses an
- AMD-based build system ,
- allowing for builds that only require the parts of Select2 that you need.
- While a custom build system has not yet been created, Select2 is open
- source and will gladly accept a pull request for one.
-
-
-
- Select2 includes the minimal almond
- AMD loader, but a custom select2.amd.js build is available
- if you already use an AMD loader. The code base (available in the
- src directory) also uses AMD, allowing you to include Select2
- in your own build system and generate your own builds alongside your
- existing infrastructure.
-
-
-
- The AMD methods used by Select2 are available as
- jQuery.fn.select2.amd.define()/require(), allowing you to use the
- included almond loader. These methods are primarily used by the
- translations, but they are the recommended way to access custom modules
- that Select2 provides.
-
-
-
-
- Migrating from Select2 3.5
-
-
- There are a few breaking changes that migrators should be aware of when
- they are coming from older versions of Select2.
-
-
-
- If you use the full build of Select2 (select2.full.js), you
- will be automatically notified of the major breaking changes, and
- compatibility modules will be used in some cases to ensure that your code
- still behaves how you were expecting.
-
-
-
-
-
- In past versions of Select2, an <input type="hidden" />
- tag was recommended if you wanted to do anything advanced with Select2,
- such as work with remote data sources or allow users to add their own
- tags. This had the unfortunate side-effect of servers not receiving the
- data from Select2 as an array, like a standard <select>
- element does, but instead sending a string containing the comma-separated
- strings. The code base ended up being littered with special cases for the
- hidden input, and libraries using Select2 had to work around the
- differences it caused.
-
-
-
- In Select2 4.0, the <select> element supports all core
- options, and support for the old
- <input type="hidden" /> has been deprecated. This means
- that if you previously declared an AJAX field with some pre-selected
- options that looked like…
-
-
-{% highlight html linenos %}
-
-{% endhighlight %}
-
-
- It will need to be recreated as a <select> element with
- some <option> tags that have value
- attributes that match the old value.
-
-
-{% highlight html linenos %}
-
- Select2
- Chosen
- selectize.js
- typeahead.js
-
-{% endhighlight %}
-
-
- The options that you create should have selected="selected"
- set so Select2 and the browser knows that they should be selected. The
- value attribute of the option should also be set to the value
- that will be returned from the server for the result, so Select2 can
- highlight it as selected in the dropdown. The text within the option
- should also reflect the value that should be displayed by default for the
- option.
-
-
- Advanced matching of searches
-
-
- In past versions of Select2, when matching search terms to individual
- options, which limited the control that you had when displaying results,
- especially in cases where there was nested data. The matcher
- function was only given the individual option, even if it was a nested
- options, without any context.
-
-
-
- With the new matcher function, only the root-level options are matched and
- matchers are expected to limit the results of any children options that
- they contain. This allows developers to customize how options within
- groups can be displayed, and modify how the results are returned.
-
-
-
- A function has been created that allows old-style matcher functions to be
- converted to the new style. You can retrieve the function from the
- select2/compat/matcher module, which should just wrap the old
- matcher function.
-
-
-
- So if your old code used a matcher that only displayed options if they
- started with the term that was entered, it would look something like…
-
-
-{% highlight js linenos %}
-function matchStart (term, text) {
- if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) {
- return true;
- }
-
- return false;
-}
-
-$("select").select2({
- matcher: matchStart
-})
-{% endhighlight %}
-
-
- Then in Select2 4.0, you would need to wrap the matchStart
- method (or the name of the matcher you created) with a
- oldMatcher method that we have created.
-
-
-{% highlight js linenos %}
-function matchStart (term, text) {
- if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) {
- return true;
- }
-
- return false;
-}
-
-$.fn.select2.amd.require(['select2/compat/matcher'], function (oldMatcher) {
- $("select").select2({
- matcher: oldMatcher(matchStart)
- })
-});
-{% endhighlight %}
-
-
- This will work for any matchers that only took in the search term and the
- text of the option as parameters. If your matcher relied on the third
- parameter containing the jQuery element representing the original
- <option> tag, then you may need to slightly change
- your matcher to expect the full JavaScript data object being passed in
- instead. You can still retrieve the jQuery element from the data object
- using the data.element property.
-
-
- More flexible placeholders
-
-
- In the most recent versions of Select2, placeholders could only be
- applied to the first (typically the default) option in a
- <select> if it was blank. The
- placeholderOption option was added to Select2 to allow users
- using the select tag to select a different option, typically
- an automatically generated option with a different value.
-
-
-
- The placeholder option can now take an object as well as just
- a string. This replaces the need for the old
- placeholderOption, as now the id of the object
- can be set to the value attribute of the
- <option> tag.
-
-
-
- For a select that looks like the following, where the first option (with a
- value of -1) is the placeholder option…
-
-
-{% highlight html linenos %}
-
- Select an option
- Something else
-
-{% endhighlight %}
-
-
- You would have previously had to get the placeholder option through the
- placeholderOption, but now you can do it through the
- placeholder option by setting an id.
-
-
-{% highlight js linenos %}
-$("select").select2({
- placeholder: {
- id: "-1",
- placeholder: "Select an option"
- }
-})
-{% endhighlight %}
-
-
- And Select2 will automatically display the placeholder when the value of
- the select is -1, which it will be by default. This does not
- break the old functionality of Select2 where the placeholder option was
- blank by default.
-
-
- Display reflects the actual order of the values
-
-
- In past versions of Select2, choices were displayed in the order that
- they were selected. In cases where Select2 was used on a
- <select> element, the order that the server received
- the selections did not always match the order that the choices were
- displayed, resulting in confusion in situations where the order is
- important.
-
-
-
- Select2 will now order selected choices in the same order that will be
- sent to the server.
-
-
- Changed method and option names
-
-
- When designing the future option set for Select2 4.0, special care was
- taken to ensure that the most commonly used options were brought over.
- For the most part, the commonly used options of Select2 can still be
- referenced under their previous names, but there were some changes which
- have been noted.
-
-
-
- Removed the requirement of initSelection
-
-
-
- In the past, whenever you wanted to use a custom data adapter, such as
- AJAX or tagging, you needed to help Select2 out in determining the initial
- values that were selected. This was typically done through the
- initSelection option, which took the underlying data of the
- input and converted it into data objects that Select2 could use.
-
-
-
- This is now handled by
- the data adapter in the
- current method, which allows Select2 to convert the currently
- selected values into data objects that can be displayed. The default
- implementation converts the text and value of option elements
- into data objects, and is probably suitable for most cases. An example of
- the old initSelection option is included below, which
- converts the value of the selected options into a data object with both
- the id and text matching the selected value.
-
-
-{% highlight js linenos %}
-{
- initSelection : function (element, callback) {
- var data = [];
- $(element.val()).each(function () {
- data.push({id: this, text: this});
- });
- callback(data);
- }
-}
-{% endhighlight %}
-
-
- When using the new current method of the custom data adapter,
- this method is called any time Select2 needs a list of
- the currently selected options. This is different from the old
- initSelection in that it was only called once, so it could
- suffer from being relatively slow to process the data (such as from a
- remote data source).
-
-
-{% highlight js linenos %}
-$.fn.select2.amd.require([
- 'select2/data/array',
- 'select2/utils'
-], function (ArrayData, Utils) {
- function CustomData ($element, options) {
- CustomData.__super__.constructor.call(this, $element, options);
- }
-
- Utils.Extend(CustomData, ArrayData);
-
- CustomData.prototype.current = function (callback) {
- var data = [];
- var currentVal = this.$element.val();
-
- if (!this.$element.prop('multiple')) {
- currentVal = [currentVal];
- }
-
- for (var v = 0; v < currentVal.length; v++) {
- data.push({
- id: currentVal[v],
- text: currentVal[v]
- });
- }
-
- callback(data);
- };
-
- $("#select").select2({
- dataAdapter: CustomData
- });
-}
-{% endhighlight %}
-
-
- The new current method of the data adapter works in a similar
- way to the old initSelection method, with three notable
- differences. The first, and most important, is that it is called
- whenever the current selections are needed to ensure that Select2
- is always displaying the most accurate and up to date data. No matter
- what type of element Select2 is attached to, whether it supports a
- single or multiple selections, the data passed to the callback
- must be an array, even if it contains one selection .
- The last is that there is only one parameter, the callback to be
- executed with the latest data, and the current element that Select2 is
- attached to is available on the class itself as
- this.$element.
-
-
-
- If you only need to load in the initial options once, and otherwise will
- be letting Select2 handle the state of the selections, you don't need to
- use a custom data adapter. You can just create the
- <option> tags on your own, and Select2 will pick up
- the changes.
-
-
-{% highlight js linenos %}
-var $element = $('select').select2(); // the select element you are working with
-
-var $request = $.ajax({
- url: '/my/remote/source' // wherever your data is actually coming from
-});
-
-$request.then(function (data) {
- // This assumes that the data comes back as an array of data objects
- // The idea is that you are using the same callback as the old `initSelection`
-
- for (var d = 0; d < data.length; d++) {
- var item = data[d];
-
- // Create the DOM option that is pre-selected by default
- var option = new Option(item.text, item.id, true, true);
-
- // Append it to the select
- $element.append(option);
- }
-
- // Update the selected options that are displayed
- $element.trigger('change');
-});
-{% endhighlight %}
-
-
- Custom data adapters instead of query
-
-
-
- In the past , any time
- you wanted to hook Select2 up to a different data source you would be
- required to implement custom query and
- initSelection methods. This allowed Select2 to determine the
- initial selection and the list of results to display, and it would handle
- everything else internally, which was fine more most people.
-
-
-
- The custom query and initSelection methods have
- been replaced by
- custom data adapters that handle
- how Select2 stores and retrieves the data that will be displayed to the
- user. An example of the old query option is provided below,
- which is
- the same as the old example ,
- and it generates results that contain the search term repeated a certain
- number of times.
-
-
-{% highlight js linenos %}
-{
- query: function (query) {
- var data = {results: []}, i, j, s;
- for (i = 1; i < 5; i++) {
- s = "";
- for (j = 0; j < i; j++) {s = s + query.term;}
- data.results.push({id: query.term + i, text: s});
- }
- query.callback(data);
- }
-}
-{% endhighlight %}
-
-
- This has been replaced by custom data adapters which define a similarly
- named query method. The comparable data adapter is provided
- below as an example.
-
-
-{% highlight js linenos %}
-$.fn.select2.amd.require([
- 'select2/data/array',
- 'select2/utils'
-], function (ArrayData, Utils) {
- function CustomData ($element, options) {
- CustomData.__super__.constructor.call(this, $element, options);
- }
-
- Utils.Extend(CustomData, ArrayData);
-
- CustomData.prototype.query = function (params, callback) {
- var data = {
- results: []
- };
-
- for (var i = 1; i < 5; i++) {
- var s = "";
-
- for (var j = 0; j < i; j++) {
- s = s + params.term;
- }
-
- data.results.push({
- id: params.term + i,
- text: s
- });
- }
-
- callback(data);
- };
-
- $("#select").select2({
- dataAdapter: CustomData
- });
-}
-{% endhighlight %}
-
-
- The new query method of the data adapter is very similar to
- the old query option that was passed into Select2 when
- initializing it. The old query argument is mostly the same as
- the new params that are passed in to query on, and the
- callback that should be used to return the results is now passed in as the
- second parameter.
-
-
- Renamed templating options
-
-
- Select2 previously provided multiple options for formatting the results
- list and selected options, commonly referred to as "formatters", using the
- formatSelection and formatResult options. As the
- "formatters" were also used for things such as localization,
- which has also changed , they have been
- renamed to templateSelection and templateResult
- and their signatures have changed as well.
-
-
-
- You should refer to the updated
- documentation on templates when
- migrating from previous versions of Select2.
-
-
-
- The id and text properties are strictly enforced
-
-
-
- When working with array and AJAX data in the past, Select2 allowed a
- custom id function or attribute to be set in various places,
- ranging from the initialization of Select2 to when the remote data was
- being returned. This allowed Select2 to better integrate with existing
- data sources that did not necessarily use the id attribute to
- indicate the unique identifier for an object.
-
-
-
- Select2 no longer supports a custom id or text
- to be used, but provides integration points for converting incorrect data
- to the expected format.
-
-
-
- When working with array data
-
-
-
- Select2 previously supported defining array data as an object that matched
- the signature of an AJAX response. A text property could be
- specified that would map the given property to the text
- property on the individual objects. You can now do this when initializing
- Select2 by using the following jQuery code to map the old
- text and id properties to the new ones.
-
-
-{% highlight js linenos %}
-var data = $.map([
- {
- pk: 1,
- word: 'one'
- },
- {
- pk: 2,
- word: 'two'
- }
-], function (obj) {
- obj.id = obj.id || obj.pk;
- obj.text = obj.text || obj.word;
-
- return obj;
-});
-{% endhighlight %}
-
-
- This will result in an array of data objects that have the id
- properties that match the existing pk properties and
- text properties that match the existing word
- properties.
-
-
-
- When working with remote data
-
-
-
- The same code that was given above can be used in the
- processResults method of an AJAX call to map properties there
- as well.
-
-
- Renamed translation options
-
-
- In previous versions of Select2, the default messages provided to users
- could be localized to fit the language of the website that it was being
- used on. Select2 only comes with the English language by default, but
- provides
- community-contributed translations for
- many common languages. Many of the formatters have been moved to the
- language option and the signatures of the formatters have
- been changed to handle future additions.
-
-
-
- Declaring options using data-* attributes
-
-
-
- In the past, Select2 has only supported declaring a subset of options
- using data-* attributes. Select2 now supports declaring all
- options using the attributes, using
- the format specified in the documentation .
-
-
-
- You could previously declare the URL that was used for AJAX requests using
- the data-ajax-url attribute. While Select2 still allows for
- this, the new attribute that should be used is the
- data-ajax--url attribute. Support for the old attribute will
- be removed in Select2 4.1.
-
-
-
- Although it was not documented, a list of possible tags could also be
- provided using the data-select2-tags attribute and passing in
- a JSON-formatted array of objects for tags. As the method for specifying
- tags has changed in 4.0, you should now provide the array of objects using
- the data-data attribute, which maps to
- the array data option. You should also
- enable tags by setting data-tags="true" on the object, to
- maintain the ability for users to create their own options as well.
-
-
-
- If you previously declared the list of tags as…
-
-
-{% highlight html linenos %}
-
-{% endhighlight %}
-
-
- …then you should now declare it as…
-
-
-{% highlight html linenos %}
-
-{% endhighlight %}
-
- Deprecated and removed methods
-
-
- As Select2 now uses a <select> element for all data
- sources, a few methods that were available by calling
- .select2() are no longer required.
-
-
- .select2("val")
-
-
- The "val" method has been deprecated and will be removed in
- Select2 4.1. The deprecated method no longer includes the
- triggerChange parameter.
-
-
-
- You should directly call .val on the underlying
- <select> element instead. If you needed the second
- parameter (triggerChange), you should also call
- .trigger("change") on the element.
-
-
-{% highlight js linenos %}
-$("select").val("1").trigger("change"); // instead of $("select").select2("val", "1");
-{% endhighlight %}
-
- .select2("enable")
-
-
- Select2 will respect the disabled property of the underlying
- select element. In order to enable or disable Select2, you should call
- .prop('disabled', true/false) on the
- <select> element. Support for the old methods will be
- completely removed in Select2 4.1.
-
-
-{% highlight js linenos %}
-$("select").prop("disabled", true); // instead of $("select").enable(false);
-{% endhighlight %}
-
-
-
-
-
- {% include nav/announcements-4.0.html %}
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/browserconfig.xml b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/browserconfig.xml
deleted file mode 100644
index beca4f5f92..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/browserconfig.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
- #da532c
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/community.html b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/community.html
deleted file mode 100644
index 54830af089..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/community.html
+++ /dev/null
@@ -1,154 +0,0 @@
----
-layout: default
-title: Community - Select2
-slug: community
----
-
-
-
-
- Community
-
-
- Select2 has an active community that enjoys helping each other out.
-
-
-
-
-
-
-
-
-
- Having trouble getting Select2 working on your website? Is it not working
- together with another plugin, even though you think it should? Select2 has a
- few communities that you can go to for help getting it all working together.
-
-
-
-
- Try sending a message to the
-
- Select2 discussion group
-
- or searching the archives.
-
-
- Ask in the #select2 channel on
- chat.freenode.net or use the
-
- web irc client.
-
-
-
- Raise a question on
- Stack Overflow ,
- make sure to include the
-
- "jquery-select2"
-
- tag.
-
-
-
-
-
-
-
-
- Found a problem with Select2? Feel free to open a ticket on the Select2
- repository on GitHub, but you should keep a few things in mind:
-
-
-
-
- Use the
-
- GitHub issue search
-
- to check if your issue has already been reported.
-
-
- Try to isolate your problem as much as possible, so we can easily test if
- the issue has been fixed.
-
-
- Once you are sure the issue is with Select2, and not a third party
- library,
-
- submit a ticket
-
- to the repository.
-
-
-
-
- You can find more information on reporting bugs in the
-
- contributing guide,
-
- including tips on what information to include.
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/bootstrap.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/bootstrap.scss
deleted file mode 100644
index 83fc0c7b11..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/bootstrap.scss
+++ /dev/null
@@ -1,51 +0,0 @@
----
----
-
-/*!
- * Bootstrap v3.3.6 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-// Core variables and mixins
-@import "vendor/bootstrap/variables";
-@import "vendor/bootstrap/mixins";
-
-// Reset and dependencies
-@import "vendor/bootstrap/normalize";
-@import "vendor/bootstrap/print";
-
-// Core CSS
-@import "vendor/bootstrap/scaffolding";
-@import "vendor/bootstrap/type";
-@import "vendor/bootstrap/code";
-@import "vendor/bootstrap/grid";
-@import "vendor/bootstrap/tables";
-@import "vendor/bootstrap/forms";
-@import "vendor/bootstrap/buttons";
-
-// Components
-@import "vendor/bootstrap/component-animations";
-@import "vendor/bootstrap/dropdowns";
-@import "vendor/bootstrap/button-groups";
-@import "vendor/bootstrap/input-groups";
-@import "vendor/bootstrap/navs";
-@import "vendor/bootstrap/navbar";
-@import "vendor/bootstrap/breadcrumbs";
-@import "vendor/bootstrap/pagination";
-@import "vendor/bootstrap/pager";
-@import "vendor/bootstrap/labels";
-@import "vendor/bootstrap/badges";
-@import "vendor/bootstrap/jumbotron";
-@import "vendor/bootstrap/thumbnails";
-@import "vendor/bootstrap/alerts";
-@import "vendor/bootstrap/media";
-@import "vendor/bootstrap/list-group";
-@import "vendor/bootstrap/panels";
-@import "vendor/bootstrap/responsive-embed";
-@import "vendor/bootstrap/wells";
-@import "vendor/bootstrap/close";
-
-// Utility classes
-@import "vendor/bootstrap/utilities";
-@import "vendor/bootstrap/responsive-utilities";
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/font-awesome.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/font-awesome.scss
deleted file mode 100644
index d72cf940fd..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/font-awesome.scss
+++ /dev/null
@@ -1,16 +0,0 @@
----
----
-
-/*!
- * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-
-$fa-font-path: "../vendor/fonts";
-
-@import "vendor/font-awesome/variables";
-@import "vendor/font-awesome/mixins";
-@import "vendor/font-awesome/path";
-@import "vendor/font-awesome/core";
-@import "vendor/font-awesome/list";
-@import "vendor/font-awesome/icons";
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/s2-docs.scss b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/s2-docs.scss
deleted file mode 100644
index 6b66a37c1f..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/css/s2-docs.scss
+++ /dev/null
@@ -1,24 +0,0 @@
----
----
-
-@import "vendor/bootstrap/variables";
-
-@import "result-repository";
-@import "sidenav";
-@import "hamburger";
-@import "code";
-@import "featurette";
-@import "layout";
-@import "nav";
-@import "footer";
-@import "alert";
-@import "home";
-@import "examples";
-@import "social";
-@import "buttons";
-@import "anchorjs";
-@import "jumbotron";
-@import "prettify";
-@import "syntax-highlighting";
-@import "typography";
-@import "dl-panels";
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/examples.html b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/examples.html
deleted file mode 100644
index aeb329ba15..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/examples.html
+++ /dev/null
@@ -1,256 +0,0 @@
----
-layout: default
-title: Examples - Select2
-slug: examples
----
-
-
-
-
-
-
-
-
-
-
-
-
- {% include examples/basics.html %}
- {% include examples/placeholders.html %}
- {% include examples/data.html %}
- {% include examples/disabled-mode.html %}
- {% include examples/disabled-results.html %}
- {% include examples/multiple-max.html %}
- {% include examples/hide-search.html %}
- {% include examples/programmatic-control.html %}
- {% include examples/tags.html %}
- {% include examples/tokenizer.html %}
- {% include examples/matcher.html %}
- {% include examples/localization-rtl-diacritics.html %}
- {% include examples/themes-templating-responsive-design.html %}
-
-
-
-
- {% include nav/examples.html %}
-
-
-
-
-
-{% include js-source-states.html %}
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-36x36.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-36x36.png
deleted file mode 100644
index 12a3dc6b4e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-36x36.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-48x48.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-48x48.png
deleted file mode 100644
index 64aa46a47a..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-48x48.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-72x72.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-72x72.png
deleted file mode 100644
index 2c2c829ba5..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/android-chrome-72x72.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-57x57.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-57x57.png
deleted file mode 100644
index ae24323d40..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-57x57.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-60x60.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-60x60.png
deleted file mode 100644
index e3f8d21fc5..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-60x60.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-72x72.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-72x72.png
deleted file mode 100644
index e5399209d9..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-72x72.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-precomposed.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-precomposed.png
deleted file mode 100644
index 31b912e71d..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon-precomposed.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon.png
deleted file mode 100644
index e5399209d9..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/apple-touch-icon.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon-16x16.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon-16x16.png
deleted file mode 100644
index ab60a1d139..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon-16x16.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon-32x32.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon-32x32.png
deleted file mode 100644
index 5319e04a7b..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon-32x32.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon.ico b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon.ico
deleted file mode 100644
index 91dcfd50e8..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/favicon.ico and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/logo.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/logo.png
deleted file mode 100644
index 8de094fc94..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/logo.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/manifest.json b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/manifest.json
deleted file mode 100644
index 99bc8aa42d..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/manifest.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "Select2",
- "icons": [
- {
- "src": "\/images\/android-chrome-36x36.png?v=699Nxpjr2A",
- "sizes": "36x36",
- "type": "image\/png",
- "density": 0.75
- },
- {
- "src": "\/images\/android-chrome-48x48.png?v=699Nxpjr2A",
- "sizes": "48x48",
- "type": "image\/png",
- "density": 1
- },
- {
- "src": "\/images\/android-chrome-72x72.png?v=699Nxpjr2A",
- "sizes": "72x72",
- "type": "image\/png",
- "density": 1.5
- }
- ]
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-150x150.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-150x150.png
deleted file mode 100644
index 9dede7da16..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-150x150.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-310x150.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-310x150.png
deleted file mode 100644
index a266af2ea5..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-310x150.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-70x70.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-70x70.png
deleted file mode 100644
index f2efb68c9c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/mstile-70x70.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/safari-pinned-tab.svg b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/safari-pinned-tab.svg
deleted file mode 100644
index 700213c40d..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/images/safari-pinned-tab.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-Created by potrace 1.11, written by Peter Selinger 2001-2013
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/index.html b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/index.html
deleted file mode 100644
index accd1db992..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/index.html
+++ /dev/null
@@ -1,237 +0,0 @@
----
-layout: home
-title: Select2 - The jQuery replacement for select boxes
-slug: home
----
-
-
-
-
Select2
-
- The jQuery replacement for select boxes
-
-
-
- Download Select2
-
-
-
- Currently v4.0.3
-
-
-
-
-{% include notice-previous.html %}
-
-
-
- Select2 gives you a customizable select box with support for searching,
- tagging, remote data sets, infinite scrolling, and many other highly used
- options.
-
-
-
-
-
-
-
-
-
-
-
Remote data support
-
- Using AJAX you can efficiently
- search large lists of items.
-
-
-
-
-
-
-
-
-
-
Fully extensible
-
- The plugin system
- allows you to easily customize Select2 to work exactly how you want it
- to.
-
-
-
-
-
-
Dynamic item creation
-
- Allow users to type in a new option and
- add it on the fly .
-
-
-
-
-
-
Full browser support
-
Support for both modern and legacy browsers is built-in, even including Internet Explorer 8.
-
-
-
-
-
-
-
-
- Getting started with Select2
-
-
-
- In order to use Select2, you must include the JavaScript and CSS file on
- your website. You can get these files built for you from many different
- locations.
-
-
-
- Using Select2 from a CDN
-
-
-
- Select2 is hosted on both the
- cdnjs and
- jsDelivr CDNs, allowing
- you to quickly include Select2 on your website.
-
-
-
-
-
- Include the following lines of code in the <head>
- section of your HTML.
-
-
-{% highlight html %}
-
-
-{% endhighlight %}
-
-
-
- Immediately following a new release, it takes some time for CDNs to
- catch up and get the new versions live on the CDN.
-
-
-
-
- Initialize Select2 on the <select> element that you
- want to make awesome.
-
-
-{% highlight html %}
-
-{% endhighlight %}
-
-
-
- Check out the examples page to start using
- the additional features of Select2.
-
-
-
-
- Downloading the code locally
-
-
-
- In some situations, you can't use Select2 from a CDN and you must include
- the files through your own static file servers.
-
-
-
-
-
-
- Download the code
-
- from GitHub and copy the dist directory to your project.
-
-
-
-
- Include the following lines of code in the <head>
- section of your HTML.
-
-
-{% highlight html %}
-
-
-{% endhighlight %}
-
-
-
- Check out the examples page to start using
- the additional features of Select2.
-
-
-
-
-
-
- The different Select2 builds
-
-
-
- Select2 provides multiple builds that are tailored to different
- environments where it is going to be used. If you think you need to use
- Select2 in a nonstandard environment, like when you are using AMD, you
- should read over the list below.
-
-
-
-
-
- Build name
- When you should use it
-
-
-
-
-
- Standard (select2.js / select2.min.js)
-
-
- This is the build that most people should be using for Select2. It
- includes the most commonly used features.
-
-
-
-
- Full (select2.full.js / select2.full.min.js)
-
-
- You should only use this build if you need the additional features
- from Select2, like the
- compatibility modules or
- recommended includes like
- jquery.mousewheel
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/options-old.html b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/options-old.html
deleted file mode 100644
index 65690d1852..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/options-old.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default
-title: Options - Select2
-slug: options
----
-
-
-
-
-
-
-
- {% include options-old/core-options.html %}
- {% include options-old/dropdown.html %}
- {% include options-old/events.html %}
- {% include options-old/adapters.html %}
- {% include options-old/setting-default-options.html %}
- {% include options-old/backwards-compatibility.html %}
-
-
-
-
- {% include nav/options-old.html %}
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/options.html b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/options.html
deleted file mode 100644
index 5670c1cf10..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/options.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default
-title: Options - Select2
-slug: options
----
-
-
-
-
- Options
-
-
- Select2 supports a wide variety of options that allow you to customize it to your needs.
-
-
-
-
-
-
-
- {% include options/introduction.html %}
- {% include options/core.html %}
- {% include options/data.html %}
- {% include options/selections.html %}
- {% include options/dropdown.html %}
- {% include options/events.html %}
- {% include options/compatibility.html %}
-
-
- {% include nav/options.html %}
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/FontAwesome.otf b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/FontAwesome.otf
deleted file mode 100644
index 3ed7f8b48a..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/FontAwesome.otf and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.eot b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.eot
deleted file mode 100644
index 9b6afaedc0..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.eot and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.svg b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.svg
deleted file mode 100644
index d05688e9e2..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.svg
+++ /dev/null
@@ -1,655 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.ttf b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.ttf
deleted file mode 100644
index 26dea7951a..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.ttf and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.woff b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.woff
deleted file mode 100644
index dc35ce3c2c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.woff and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.woff2 b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.woff2
deleted file mode 100644
index 500e517253..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/fonts/fontawesome-webfont.woff2 and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ak.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ak.png
deleted file mode 100755
index d79dc4fe4b..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ak.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/al.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/al.png
deleted file mode 100755
index a729794e94..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/al.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ar.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ar.png
deleted file mode 100755
index 6357a8f6f3..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ar.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/az.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/az.png
deleted file mode 100755
index b6d8aaea51..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/az.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ca.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ca.png
deleted file mode 100755
index 9d6d955f39..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ca.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/co.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/co.png
deleted file mode 100755
index 888e8308ea..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/co.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ct.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ct.png
deleted file mode 100755
index a953918ae8..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ct.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/de.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/de.png
deleted file mode 100755
index 1bfb3badb3..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/de.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/fl.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/fl.png
deleted file mode 100755
index 199a2f16c6..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/fl.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ga.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ga.png
deleted file mode 100755
index 03f52bb855..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ga.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/hi.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/hi.png
deleted file mode 100755
index 36de7a583b..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/hi.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ia.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ia.png
deleted file mode 100755
index c2c4cf0f86..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ia.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/id.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/id.png
deleted file mode 100755
index bfbf897f79..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/id.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/il.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/il.png
deleted file mode 100755
index 5c13e67a82..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/il.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/in.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/in.png
deleted file mode 100755
index 5952580bec..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/in.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ks.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ks.png
deleted file mode 100755
index 9190b24d20..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ks.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ky.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ky.png
deleted file mode 100755
index 5c8d0cad8e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ky.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/la.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/la.png
deleted file mode 100755
index 3f2c4785ab..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/la.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ma.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ma.png
deleted file mode 100755
index a50208138d..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ma.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/md.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/md.png
deleted file mode 100755
index 1717a26469..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/md.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/me.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/me.png
deleted file mode 100755
index 7e696f3e3c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/me.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mi.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mi.png
deleted file mode 100755
index 49494fcf85..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mi.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mn.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mn.png
deleted file mode 100755
index 602f36b3d5..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mn.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mo.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mo.png
deleted file mode 100755
index 413ea1a663..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mo.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ms.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ms.png
deleted file mode 100755
index d3e4a1cd3e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ms.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mt.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mt.png
deleted file mode 100755
index 6822acb90e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/mt.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nc.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nc.png
deleted file mode 100755
index 9555820d8f..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nc.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nd.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nd.png
deleted file mode 100755
index 87e401cf7c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nd.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ne.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ne.png
deleted file mode 100755
index a69e15fc93..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ne.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nh.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nh.png
deleted file mode 100755
index d6ad1cb689..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nh.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nj.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nj.png
deleted file mode 100755
index f2c646603b..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nj.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nm.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nm.png
deleted file mode 100755
index c273181124..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nm.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nv.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nv.png
deleted file mode 100755
index 8f1a855d3c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/nv.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ny.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ny.png
deleted file mode 100755
index 794b86e3c4..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ny.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/oh.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/oh.png
deleted file mode 100755
index 08601a6d6c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/oh.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ok.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ok.png
deleted file mode 100755
index 543be9133c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ok.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/or.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/or.png
deleted file mode 100755
index 846b4a699a..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/or.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/pa.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/pa.png
deleted file mode 100755
index 55f6c0ff4e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/pa.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ri.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ri.png
deleted file mode 100755
index 5cece5db10..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ri.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/sc.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/sc.png
deleted file mode 100755
index 9e393039ce..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/sc.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/sd.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/sd.png
deleted file mode 100755
index 154618f4ce..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/sd.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/tn.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/tn.png
deleted file mode 100755
index 321b48cbb6..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/tn.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/tx.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/tx.png
deleted file mode 100755
index 0914b319ea..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/tx.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ut.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ut.png
deleted file mode 100755
index 7a01ae6339..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/ut.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/va.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/va.png
deleted file mode 100755
index ce58c0158d..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/va.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/vt.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/vt.png
deleted file mode 100755
index fe1b19fe2e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/vt.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wa.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wa.png
deleted file mode 100755
index 0c0d8f0fc9..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wa.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wi.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wi.png
deleted file mode 100755
index 2569f176c3..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wi.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wv.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wv.png
deleted file mode 100755
index b40389966c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wv.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wy.png b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wy.png
deleted file mode 100755
index 82a453cc3a..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/images/flags/wy.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/anchor.min.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/anchor.min.js
deleted file mode 100755
index 68c3cb7073..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/anchor.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * AnchorJS - v1.1.1 - 2015-05-23
- * https://github.com/bryanbraun/anchorjs
- * Copyright (c) 2015 Bryan Braun; Licensed MIT
- */
-function AnchorJS(A){"use strict";this.options=A||{},this._applyRemainingDefaultOptions=function(A){this.options.icon=this.options.hasOwnProperty("icon")?A.icon:"",this.options.visible=this.options.hasOwnProperty("visible")?A.visible:"hover",this.options.placement=this.options.hasOwnProperty("placement")?A.placement:"right",this.options.class=this.options.hasOwnProperty("class")?A.class:""},this._applyRemainingDefaultOptions(A),this.add=function(A){var e,t,o,n,i,s,a,l,c,r,h,g,B,Q;if(this._applyRemainingDefaultOptions(this.options),A){if("string"!=typeof A)throw new Error("The selector provided to AnchorJS was invalid.")}else A="h1, h2, h3, h4, h5, h6";if(e=document.querySelectorAll(A),0===e.length)return!1;for(this._addBaselineStyles(),t=document.querySelectorAll("[id]"),o=[].map.call(t,function(A){return A.id}),i=0;i',B=document.createElement("div"),B.innerHTML=g,Q=B.childNodes,"always"===this.options.visible&&(Q[0].style.opacity="1"),""===this.options.icon&&(Q[0].style.fontFamily="anchorjs-icons",Q[0].style.fontStyle="normal",Q[0].style.fontVariant="normal",Q[0].style.fontWeight="normal"),"left"===this.options.placement?(Q[0].style.position="absolute",Q[0].style.marginLeft="-1em",Q[0].style.paddingRight="0.5em",e[i].insertBefore(Q[0],e[i].firstChild)):(Q[0].style.paddingLeft="0.375em",e[i].appendChild(Q[0]))}return this},this.remove=function(A){for(var e,t=document.querySelectorAll(A),o=0;o .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",n=' @font-face { font-family: "anchorjs-icons"; font-style: normal; font-weight: normal; src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBTUAAAC8AAAAYGNtYXAWi9QdAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zgq29TcAAAF4AAABNGhlYWQEZM3pAAACrAAAADZoaGVhBhUDxgAAAuQAAAAkaG10eASAADEAAAMIAAAAFGxvY2EAKACuAAADHAAAAAxtYXhwAAgAVwAAAygAAAAgbmFtZQ5yJ3cAAANIAAAB2nBvc3QAAwAAAAAFJAAAACAAAwJAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpywPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6cv//f//AAAAAAAg6cv//f//AAH/4xY5AAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACADEARAJTAsAAKwBUAAABIiYnJjQ/AT4BMzIWFxYUDwEGIicmND8BNjQnLgEjIgYPAQYUFxYUBw4BIwciJicmND8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFA8BDgEjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAEAAAABAACiToc1Xw889QALBAAAAAAA0XnFFgAAAADRecUWAAAAAAJTAsAAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAAAAAlMAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAACAAAAAoAAMQAAAAAACgAUAB4AmgABAAAABQBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIABwCfAAEAAAAAAAMADgBLAAEAAAAAAAQADgC0AAEAAAAAAAUACwAqAAEAAAAAAAYADgB1AAEAAAAAAAoAGgDeAAMAAQQJAAEAHAAOAAMAAQQJAAIADgCmAAMAAQQJAAMAHABZAAMAAQQJAAQAHADCAAMAAQQJAAUAFgA1AAMAAQQJAAYAHACDAAMAAQQJAAoANAD4YW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByYW5jaG9yanMtaWNvbnMAYQBuAGMAaABvAHIAagBzAC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("truetype"); }',i=" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }";e.className="anchorjs",e.appendChild(document.createTextNode("")),A=document.head.querySelector('[rel="stylesheet"], style'),void 0===A?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(t,e.sheet.cssRules.length),e.sheet.insertRule(o,e.sheet.cssRules.length),e.sheet.insertRule(i,e.sheet.cssRules.length),e.sheet.insertRule(n,e.sheet.cssRules.length)}}}var anchors=new AnchorJS;
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/bootstrap.min.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/bootstrap.min.js
deleted file mode 100644
index 7c1561a8b9..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/bootstrap.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Bootstrap v3.2.0 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j ').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-kg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/jquery.min.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/jquery.min.js
deleted file mode 100644
index e6a051d0d1..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/jquery.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
-return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" a ",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=" ",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h ]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:k.htmlSerialize?[0,"",""]:[1,"X","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" a ",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)
-}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();ca ",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/placeholders.jquery.min.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/placeholders.jquery.min.js
deleted file mode 100644
index 02845bf5c9..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/placeholders.jquery.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Placeholders.js v3.0.2 */
-(function(t){"use strict";function e(t,e,r){return t.addEventListener?t.addEventListener(e,r,!1):t.attachEvent?t.attachEvent("on"+e,r):void 0}function r(t,e){var r,n;for(r=0,n=t.length;n>r;r++)if(t[r]===e)return!0;return!1}function n(t,e){var r;t.createTextRange?(r=t.createTextRange(),r.move("character",e),r.select()):t.selectionStart&&(t.focus(),t.setSelectionRange(e,e))}function a(t,e){try{return t.type=e,!0}catch(r){return!1}}t.Placeholders={Utils:{addEventListener:e,inArray:r,moveCaret:n,changeType:a}}})(this),function(t){"use strict";function e(){}function r(){try{return document.activeElement}catch(t){}}function n(t,e){var r,n,a=!!e&&t.value!==e,u=t.value===t.getAttribute(V);return(a||u)&&"true"===t.getAttribute(P)?(t.removeAttribute(P),t.value=t.value.replace(t.getAttribute(V),""),t.className=t.className.replace(R,""),n=t.getAttribute(z),parseInt(n,10)>=0&&(t.setAttribute("maxLength",n),t.removeAttribute(z)),r=t.getAttribute(D),r&&(t.type=r),!0):!1}function a(t){var e,r,n=t.getAttribute(V);return""===t.value&&n?(t.setAttribute(P,"true"),t.value=n,t.className+=" "+I,r=t.getAttribute(z),r||(t.setAttribute(z,t.maxLength),t.removeAttribute("maxLength")),e=t.getAttribute(D),e?t.type="text":"password"===t.type&&K.changeType(t,"text")&&t.setAttribute(D,"password"),!0):!1}function u(t,e){var r,n,a,u,i,l,o;if(t&&t.getAttribute(V))e(t);else for(a=t?t.getElementsByTagName("input"):f,u=t?t.getElementsByTagName("textarea"):h,r=a?a.length:0,n=u?u.length:0,o=0,l=r+n;l>o;o++)i=r>o?a[o]:u[o-r],e(i)}function i(t){u(t,n)}function l(t){u(t,a)}function o(t){return function(){b&&t.value===t.getAttribute(V)&&"true"===t.getAttribute(P)?K.moveCaret(t,0):n(t)}}function c(t){return function(){a(t)}}function s(t){return function(e){return A=t.value,"true"===t.getAttribute(P)&&A===t.getAttribute(V)&&K.inArray(C,e.keyCode)?(e.preventDefault&&e.preventDefault(),!1):void 0}}function d(t){return function(){n(t,A),""===t.value&&(t.blur(),K.moveCaret(t,0))}}function v(t){return function(){t===r()&&t.value===t.getAttribute(V)&&"true"===t.getAttribute(P)&&K.moveCaret(t,0)}}function g(t){return function(){i(t)}}function p(t){t.form&&(T=t.form,"string"==typeof T&&(T=document.getElementById(T)),T.getAttribute(U)||(K.addEventListener(T,"submit",g(T)),T.setAttribute(U,"true"))),K.addEventListener(t,"focus",o(t)),K.addEventListener(t,"blur",c(t)),b&&(K.addEventListener(t,"keydown",s(t)),K.addEventListener(t,"keyup",d(t)),K.addEventListener(t,"click",v(t))),t.setAttribute(j,"true"),t.setAttribute(V,x),(b||t!==r())&&a(t)}var f,h,b,m,A,y,E,x,L,T,S,N,w,B=["text","search","url","tel","email","password","number","textarea"],C=[27,33,34,35,36,37,38,39,40,8,46],k="#ccc",I="placeholdersjs",R=RegExp("(?:^|\\s)"+I+"(?!\\S)"),V="data-placeholder-value",P="data-placeholder-active",D="data-placeholder-type",U="data-placeholder-submit",j="data-placeholder-bound",q="data-placeholder-focus",Q="data-placeholder-live",z="data-placeholder-maxlength",F=document.createElement("input"),G=document.getElementsByTagName("head")[0],H=document.documentElement,J=t.Placeholders,K=J.Utils;if(J.nativeSupport=void 0!==F.placeholder,!J.nativeSupport){for(f=document.getElementsByTagName("input"),h=document.getElementsByTagName("textarea"),b="false"===H.getAttribute(q),m="false"!==H.getAttribute(Q),y=document.createElement("style"),y.type="text/css",E=document.createTextNode("."+I+" { color:"+k+"; }"),y.styleSheet?y.styleSheet.cssText=E.nodeValue:y.appendChild(E),G.insertBefore(y,G.firstChild),w=0,N=f.length+h.length;N>w;w++)S=f.length>w?f[w]:h[w-f.length],x=S.attributes.placeholder,x&&(x=x.nodeValue,x&&K.inArray(B,S.type)&&p(S));L=setInterval(function(){for(w=0,N=f.length+h.length;N>w;w++)S=f.length>w?f[w]:h[w-f.length],x=S.attributes.placeholder,x?(x=x.nodeValue,x&&K.inArray(B,S.type)&&(S.getAttribute(j)||p(S),(x!==S.getAttribute(V)||"password"===S.type&&!S.getAttribute(D))&&("password"===S.type&&!S.getAttribute(D)&&K.changeType(S,"text")&&S.setAttribute(D,"password"),S.value===S.getAttribute(V)&&(S.value=x),S.setAttribute(V,x)))):S.getAttribute(P)&&(n(S),S.removeAttribute(V));m||clearInterval(L)},100)}K.addEventListener(t,"beforeunload",function(){J.disable()}),J.disable=J.nativeSupport?e:i,J.enable=J.nativeSupport?e:l}(this),function(t){"use strict";var e=t.fn.val,r=t.fn.prop;Placeholders.nativeSupport||(t.fn.val=function(t){var r=e.apply(this,arguments),n=this.eq(0).data("placeholder-value");return void 0===t&&this.eq(0).data("placeholder-active")&&r===n?"":r},t.fn.prop=function(t,e){return void 0===e&&this.eq(0).data("placeholder-active")&&"value"===t?"":r.apply(this,arguments)})}(jQuery);
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/prettify.min.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/prettify.min.js
deleted file mode 100644
index f66f6f2352..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/docs/vendor/js/prettify.min.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
-(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
-[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c
122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
-l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
-q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
-q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
-"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
-a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
-for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
-"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
-H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
-J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
-I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]+/],["dec",/^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/dom-changes.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/dom-changes.js
deleted file mode 100644
index 2d89ae2acf..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/dom-changes.js
+++ /dev/null
@@ -1,257 +0,0 @@
-module('DOM integration');
-
-test('adding a new unselected option changes nothing', function (assert) {
- // Any browsers which support mutation observers will not trigger the event
- var expected = 4;
- if (window.MutationObserver) {
- expected = 2;
- } else if (!window.addEventListener) {
- expected = 2;
- }
-
- assert.expect(expected);
-
- var asyncDone = null;
- var syncDone = assert.async();
-
- if (expected != 2) {
- asyncDone = assert.async();
- }
-
- var $ = require('jquery');
- var Options = require('select2/options');
- var Select2 = require('select2/core');
-
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- ' '
- );
-
- $('#qunit-fixture').append($select);
-
- var select = new Select2($select);
-
- select.on('selection:update', function (args) {
- assert.equal(
- args.data.length,
- 1,
- 'There was more than one selection'
- );
-
- assert.equal(
- args.data[0].id,
- 'One',
- 'The selection changed to something other than One'
- );
-
- if (expected != 2) {
- asyncDone();
- }
- });
-
- assert.equal(
- $select.val(),
- 'One'
- );
-
- var $option = $('Three ');
-
- $select.append($option);
-
- assert.equal(
- $select.val(),
- 'One'
- );
-
- syncDone();
-});
-
-test('adding a new selected option changes the value', function (assert) {
- // handle IE 8 not being supported
- var expected = 4;
- if (!window.MutationObserver && !window.addEventListener) {
- expected = 2;
- }
-
- assert.expect(expected);
-
- var asyncDone = null;
- var syncDone = assert.async();
-
- if (expected != 2) {
- asyncDone = assert.async();
- }
-
- var $ = require('jquery');
- var Options = require('select2/options');
- var Select2 = require('select2/core');
-
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- ' '
- );
-
- $('#qunit-fixture').append($select);
-
- var select = new Select2($select);
-
- select.on('selection:update', function (args) {
- assert.equal(
- args.data.length,
- 1,
- 'There was more than one selection'
- );
-
- assert.equal(
- args.data[0].id,
- 'Three',
- 'The selection did not change to Three'
- );
-
- if (expected != 2) {
- asyncDone();
- }
- });
-
- assert.equal(
- $select.val(),
- 'One'
- );
-
- var $option = $('Three ');
-
- $select.append($option);
-
- assert.equal(
- $select.val(),
- 'Three'
- );
-
- syncDone();
-});
-
-test('removing an unselected option changes nothing', function (assert) {
- // Any browsers which support mutation observers will not trigger the event
- var expected = 4;
- if (!window.MutationObserver && !window.addEventListener) {
- expected = 2;
- }
-
- assert.expect(expected);
-
- var asyncDone = null;
- var syncDone = assert.async();
-
- if (expected != 2) {
- asyncDone = assert.async();
- }
-
- var $ = require('jquery');
- var Options = require('select2/options');
- var Select2 = require('select2/core');
-
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- ' '
- );
-
- $('#qunit-fixture').append($select);
-
- var select = new Select2($select);
-
- select.on('selection:update', function (args) {
- assert.equal(
- args.data.length,
- 1,
- 'There was more than one selection'
- );
-
- assert.equal(
- args.data[0].id,
- 'One',
- 'The selection changed to something other than One'
- );
-
- if (expected != 2) {
- asyncDone();
- }
- });
-
- assert.equal(
- $select.val(),
- 'One'
- );
-
- $select.children().eq(1).remove();
-
- assert.equal(
- $select.val(),
- 'One'
- );
-
- syncDone();
-});
-
-test('removing a selected option changes the value', function (assert) {
- // handle IE 8 not being supported
- var expected = 3;
- if (!window.MutationObserver && !window.addEventListener) {
- expected = 2;
- }
-
- assert.expect(expected);
-
- var asyncDone = null;
- var syncDone = assert.async();
-
- if (expected != 2) {
- asyncDone = assert.async();
- }
-
- var $ = require('jquery');
- var Options = require('select2/options');
- var Select2 = require('select2/core');
-
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- ' '
- );
-
- $('#qunit-fixture').append($select);
-
- var select = new Select2($select);
-
- select.on('selection:update', function (args) {
- assert.equal(
- args.data.length,
- 1,
- 'There was more than one selection'
- );
-
- if (expected != 2) {
- asyncDone();
- }
- });
-
- assert.equal(
- $select.val(),
- 'One'
- );
-
- $select.children().eq(0).remove();
-
- assert.equal(
- $select.val(),
- 'Two'
- );
-
- syncDone();
-});
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/jquery-calls.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/jquery-calls.js
deleted file mode 100644
index 6a30137edf..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/jquery-calls.js
+++ /dev/null
@@ -1,30 +0,0 @@
-module('select2(val)');
-
-test('multiple elements with arguments works', function (assert) {
- var $ = require('jquery');
- require('jquery.select2');
-
- var $first = $(
- '' +
- '1 ' +
- '2 ' +
- ' '
- );
- var $second = $first.clone();
-
- var $both = $first.add($second);
- $both.select2();
-
- $both.select2('val', '2');
-
- assert.equal(
- $first.val(),
- '2',
- 'The call should change the value on the first element'
- );
- assert.equal(
- $second.val(),
- '2',
- 'The call should also change the value on the second element'
- );
-});
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/select2-methods.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/select2-methods.js
deleted file mode 100644
index b1e344a567..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/integration/select2-methods.js
+++ /dev/null
@@ -1,139 +0,0 @@
-module('select2(data)');
-
-var $ = require('jquery');
-var Select2 = require('select2/core');
-var Options = require('select2/options');
-
-test('single default selection returned', function (assert) {
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- 'Three ' +
- ' '
- );
- var options = new Options({});
-
- var select = new Select2($select, options);
-
- var items = select.data();
-
- assert.equal(
- items.length,
- 1,
- 'The one selected item should be returned'
- );
-
- var first = items[0];
-
- assert.equal(
- first.id,
- '3',
- 'The first option was correct'
- );
-
- assert.equal(
- first.text,
- 'Three',
- 'The first option was correct'
- );
-});
-
-test('multiple default selections returned', function (assert) {
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- 'Three ' +
- ' '
- );
- var options = new Options({});
-
- var select = new Select2($select, options);
-
- var items = select.data();
-
- assert.equal(
- items.length,
- 2,
- 'The two selected items should be returned'
- );
-
- var first = items[0];
-
- assert.equal(
- first.id,
- 'One',
- 'The first option was correct'
- );
-
- var second = items[1];
-
- assert.equal(
- second.id,
- '3',
- 'The option value should be pulled correctly'
- );
-});
-
-module('select2(val)');
-
-test('single value matches jquery value', function (assert) {
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- 'Three ' +
- ' '
- );
- var options = new Options({});
-
- var select = new Select2($select, options);
-
- var value = select.val();
-
- assert.equal(
- value,
- '3',
- 'The value should match the option tag attribute'
- );
-
- assert.equal(
- value,
- $select.val(),
- 'The value should match the jquery value'
- );
-});
-
-test('multiple value matches the jquery value', function (assert) {
- var $select = $(
- '' +
- 'One ' +
- 'Two ' +
- 'Three ' +
- ' '
- );
- var options = new Options({});
-
- var select = new Select2($select, options);
-
- var value = select.val();
-
- assert.equal(
- value.length,
- 2,
- 'Two options should be selected'
- );
-
- assert.deepEqual(
- value,
- ['One', '3'],
- 'The values should match the option tag attribute'
- );
-
- assert.deepEqual(
- value,
- $select.val(),
- 'The values should match the jquery values'
- );
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/ajax-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/ajax-tests.js
deleted file mode 100644
index 7d8537ae21..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/ajax-tests.js
+++ /dev/null
@@ -1,32 +0,0 @@
-module('Defaults - Ajax');
-
-test('options are merged recursively with default options', function (assert) {
- var defaults = require('select2/defaults');
-
- var ajaxDelay = 250;
- var ajaxUrl = 'http://www.test.com';
-
- var mergedOptions;
-
- defaults.set('ajax--delay', ajaxDelay);
-
- mergedOptions = defaults.apply({
- ajax: {
- url: ajaxUrl
- }
- });
-
- assert.equal(
- mergedOptions.ajax.delay,
- ajaxDelay,
- 'Ajax default options are present on the merged options'
- );
-
- assert.equal(
- mergedOptions.ajax.url,
- ajaxUrl,
- 'Ajax provided options are present on the merged options'
- );
-
- defaults.reset();
-});
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/data-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/data-tests.js
deleted file mode 100644
index 107a2f0c96..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/data-tests.js
+++ /dev/null
@@ -1,44 +0,0 @@
-module('Options - Attributes');
-
-var $ = require('jquery');
-
-var Options = require('select2/options');
-
-test('no nesting', function (assert) {
- var $test = $(' ');
-
- var options = new Options({}, $test);
-
- assert.equal(options.get('test'), 'test');
-});
-
-test('with nesting', function (assert) {
- var $test = $(' ');
-
- if ($test[0].dataset == null) {
- assert.ok(
- true,
- 'We can not run this test with jQuery 1.x if dataset is not implemented'
- );
-
- return;
- }
-
- var options = new Options({}, $test);
-
- assert.ok(!(options.get('first-Second')));
- assert.equal(options.get('first').second, 'test');
-});
-
-test('overrides initialized data', function (assert) {
- var $test = $(' ');
-
- var options = new Options({
- options: 'yes',
- override: 'no'
- }, $test);
-
- assert.equal(options.get('options'), 'yes');
- assert.equal(options.get('override'), 'yes');
- assert.equal(options.get('data'), 'yes');
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/deprecated-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/deprecated-tests.js
deleted file mode 100644
index a51bba317a..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/deprecated-tests.js
+++ /dev/null
@@ -1,250 +0,0 @@
-module('Options - Deprecated - initSelection');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-
-test('converted into dataAdapter.current', function (assert) {
- assert.expect(5);
-
- var $test = $(' ');
- var called = false;
-
- var options = new Options({
- initSelection: function ($element, callback) {
- called = true;
-
- callback([{
- id: '1',
- text: '2'
- }]);
- }
- }, $test);
-
- assert.ok(!called, 'initSelection should not have been called');
-
- var DataAdapter = options.get('dataAdapter');
- var data = new DataAdapter($test, options);
-
- data.current(function (data) {
- assert.equal(
- data.length,
- 1,
- 'There should have only been one object selected'
- );
-
- var item = data[0];
-
- assert.equal(
- item.id,
- '1',
- 'The id should have been set by initSelection'
- );
-
- assert.equal(
- item.text,
- '2',
- 'The text should have been set by initSelection'
- );
- });
-
- assert.ok(called, 'initSelection should have been called');
-});
-
-test('single option converted to array automatically', function (assert) {
- assert.expect(2);
-
- var $test = $(' ');
- var called = false;
-
- var options = new Options({
- initSelection: function ($element, callback) {
- called = true;
-
- callback({
- id: '1',
- text: '2'
- });
- }
- }, $test);
-
- var DataAdapter = options.get('dataAdapter');
- var data = new DataAdapter($test, options);
-
- data.current(function (data) {
- assert.ok(
- $.isArray(data),
- 'The data should have been converted to an array'
- );
- });
-
- assert.ok(called, 'initSelection should have been called');
-});
-
-test('only called once', function (assert) {
- assert.expect(8);
-
- var $test = $('4 ');
- var called = 0;
-
- var options = new Options({
- initSelection: function ($element, callback) {
- called++;
-
- callback([{
- id: '1',
- text: '2'
- }]);
- }
- }, $test);
-
- var DataAdapter = options.get('dataAdapter');
- var data = new DataAdapter($test, options);
-
- data.current(function (data) {
- assert.equal(
- data.length,
- 1,
- 'There should have only been a single option'
- );
-
- var item = data[0];
-
- assert.equal(
- item.id,
- '1',
- 'The id should match the one given by initSelection'
- );
-
- assert.equal(
- item.text,
- '2',
- 'The text should match the one given by initSelection'
- );
- });
-
- assert.equal(
- called,
- 1,
- 'initSelection should have been called'
- );
-
- data.current(function (data) {
- assert.equal(
- data.length,
- 1,
- 'There should have only been a single option'
- );
-
- var item = data[0];
-
- assert.equal(
- item.id,
- '3',
- 'The id should match the value given in the DOM'
- );
-
- assert.equal(
- item.text,
- '4',
- 'The text should match the text given in the DOM'
- );
- });
-
- assert.equal(
- called,
- 1,
- 'initSelection should have only been called once'
- );
-});
-
-module('Options - Deprecated - query');
-
-test('converted into dataAdapter.query automatically', function (assert) {
- assert.expect(6);
-
- var $test = $(' ');
- var called = false;
-
- var options = new Options({
- query: function (params) {
- called = true;
-
- params.callback({
- results: [
- {
- id: 'test',
- text: params.term
- }
- ]
- });
- }
- }, $test);
-
- assert.ok(!called, 'The query option should not have been called');
-
- var DataAdapter = options.get('dataAdapter');
- var data = new DataAdapter($test, options);
-
- data.query({
- term: 'term'
- }, function (data) {
- assert.ok(
- 'results' in data,
- 'It should have included the results key'
- );
-
- assert.equal(
- data.results.length,
- 1,
- 'There should have only been a single result returned'
- );
-
- var item = data.results[0];
-
- assert.equal(
- item.id,
- 'test',
- 'The id should have been returned from the query function'
- );
-
- assert.equal(
- item.text,
- 'term',
- 'The text should have matched the term that was passed in'
- );
- });
-
- assert.ok(called, 'The query function should have been called');
-});
-
-module('Options - deprecated - data-ajax-url');
-
-test('converted ajax-url to ajax--url automatically', function (assert) {
- var $test = $(' ');
- var options = new Options({}, $test);
-
- assert.ok(
- options.get('ajax'),
- 'The `ajax` key was automatically created'
- );
- assert.equal(
- options.get('ajax').url,
- 'test://url',
- 'The `url` property for the `ajax` option was filled in correctly'
- );
-});
-
-test('converted select2-tags to data/tags automatically', function (assert) {
- var $test = $(' ');
- var options = new Options({}, $test);
-
- assert.ok(
- options.get('tags'),
- 'The `tags` key is automatically set to true'
- );
- assert.equal(
- options.get('data'),
- 'original data',
- 'The `data` key is created with the original data'
- );
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/translation-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/translation-tests.js
deleted file mode 100644
index ab433b6157..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/translation-tests.js
+++ /dev/null
@@ -1,28 +0,0 @@
-module('Options - Translations');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-
-test('partial dictionaries can be passed', function (assert) {
- var options = new Options({
- language: {
- searching: function () {
- return 'Something';
- }
- }
- });
-
- var translations = options.get('translations');
-
- assert.equal(
- translations.get('searching')(),
- 'Something',
- 'The partial dictionary still overrides translations'
- );
-
- assert.equal(
- translations.get('noResults')(),
- 'No results found',
- 'You can still get English translations for keys not passed in'
- );
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/width-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/width-tests.js
deleted file mode 100644
index e724034904..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/options/width-tests.js
+++ /dev/null
@@ -1,66 +0,0 @@
-module('Options - Width');
-
-var $ = require('jquery');
-
-var Select2 = require('select2/core');
-var select = new Select2($(' '));
-
-test('string passed as width', function (assert) {
- var $test = $(' ');
-
- var width = select._resolveWidth($test, '80%');
-
- assert.equal(width, '80%');
-});
-
-test('width from style attribute', function (assert) {
- var $test = $('');
-
- var width = select._resolveWidth($test, 'style');
-
- assert.equal(width, '50%');
-});
-
-test('width from style returns null if nothing is found', function (assert) {
- var $test = $('');
-
- var width = select._resolveWidth($test, 'style');
-
- assert.equal(width, null);
-});
-
-test('width from computed element width', function (assert) {
- var $style = $(
- ''
- );
- var $test = $(' ');
-
- $('#qunit-fixture').append($style);
- $('#qunit-fixture').append($test);
-
- var width = select._resolveWidth($test, 'element');
-
- assert.equal(width, '500px');
-});
-
-test('resolve gets the style if it is there', function (assert) {
- var $test = $('');
-
- var width = select._resolveWidth($test, 'resolve');
-
- assert.equal(width, '20%');
-});
-
-test('resolve falls back to element if there is no style', function (assert) {
- var $style = $(
- ''
- );
- var $test = $(' ');
-
- $('#qunit-fixture').append($style);
- $('#qunit-fixture').append($test);
-
- var width = select._resolveWidth($test, 'resolve');
-
- assert.equal(width, '500px');
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/results/focusing-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/results/focusing-tests.js
deleted file mode 100644
index 135d0016d1..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/results/focusing-tests.js
+++ /dev/null
@@ -1,138 +0,0 @@
-module('Results - highlighting results');
-
-test('results:all with no data skips results:focus', function (assert) {
- assert.expect(0);
-
- var $ = require('jquery');
-
- var $select = $(' ');
- var $parent = $('
');
-
- var $container = $(' ');
- var container = new MockContainer();
-
- $parent.appendTo($('#qunit-fixture'));
- $select.appendTo($parent);
-
- var Utils = require('select2/utils');
- var Options = require('select2/options');
-
- var Results = require('select2/results');
-
- var results = new Results($select, new Options({}));
-
- // Fake the data adapter for the `setClasses` method
- results.data = {};
- results.data.current = function (callback) {
- callback([{ id: 'test' }]);
- };
-
- results.render();
-
- results.bind(container, $container);
-
- results.on('results:focus', function (params) {
- assert.ok(false, 'The results:focus event was triggered');
- });
-
- container.trigger('results:all', {
- data: {
- results: []
- }
- });
-});
-
-test('results:all triggers results:focus on the first item', function (assert) {
- assert.expect(2);
-
- var $ = require('jquery');
-
- var $select = $(' ');
- var $parent = $('
');
-
- var $container = $(' ');
- var container = new MockContainer();
-
- $parent.appendTo($('#qunit-fixture'));
- $select.appendTo($parent);
-
- var Utils = require('select2/utils');
- var Options = require('select2/options');
-
- var Results = require('select2/results');
-
- var results = new Results($select, new Options({}));
-
- // Fake the data adapter for the `setClasses` method
- results.data = {};
- results.data.current = function (callback) {
- callback([{ id: 'test' }]);
- };
-
- results.render();
-
- results.bind(container, $container);
-
- results.on('results:focus', function (params) {
- assert.equal(params.data.id, 'test');
- assert.equal(params.data.text, 'Test');
- });
-
- container.trigger('results:all', {
- data: {
- results: [
- {
- id: 'test',
- text: 'Test'
- }
- ]
- }
- });
-});
-
-test('results:append does not trigger results:focus', function (assert) {
- assert.expect(0);
-
- var $ = require('jquery');
-
- var $select = $(' ');
- var $parent = $('
');
-
- var $container = $(' ');
- var container = new MockContainer();
-
- $parent.appendTo($('#qunit-fixture'));
- $select.appendTo($parent);
-
- var Utils = require('select2/utils');
- var Options = require('select2/options');
-
- var Results = require('select2/results');
-
- var results = new Results($select, new Options({}));
-
- // Fake the data adapter for the `setClasses` method
- results.data = {};
- results.data.current = function (callback) {
- callback([{ id: 'test' }]);
- };
-
- results.render();
-
- results.bind(container, $container);
-
- results.on('results:focus', function () {
- assert.ok(false, 'The results:focus event was triggered');
- });
-
- container.trigger('results:append', {
- data: {
- results: [
- {
- id: 'test',
- text: 'Test'
- }
- ]
- }
- });
-});
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/allowClear-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/allowClear-tests.js
deleted file mode 100644
index efa132aae3..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/allowClear-tests.js
+++ /dev/null
@@ -1,218 +0,0 @@
-module('Selection containers - Placeholders - Allow clear');
-
-var Placeholder = require('select2/selection/placeholder');
-var AllowClear = require('select2/selection/allowClear');
-
-var SingleSelection = require('select2/selection/single');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-var Utils = require('select2/utils');
-
-var AllowClearPlaceholder = Utils.Decorate(
- Utils.Decorate(SingleSelection, Placeholder),
- AllowClear
-);
-
-var allowClearOptions = new Options({
- placeholder: {
- id: 'placeholder',
- text: 'This is the placeholder'
- },
- allowClear: true
-});
-
-test('clear is not displayed for single placeholder', function (assert) {
- var selection = new AllowClearPlaceholder(
- $('#qunit-fixture .single-with-placeholder'),
- allowClearOptions
- );
-
- var $selection = selection.render();
-
- selection.update([{
- id: 'placeholder'
- }]);
-
- assert.equal(
- $selection.find('.select2-selection__clear').length,
- 0,
- 'The clear icon should not be displayed'
- );
-});
-
-test('clear is not displayed for multiple placeholder', function (assert) {
- var selection = new AllowClearPlaceholder(
- $('#qunit-fixture .single-with-placeholder'),
- allowClearOptions
- );
-
- var $selection = selection.render();
-
- selection.update([]);
-
- assert.equal(
- $selection.find('.select2-selection__clear').length,
- 0,
- 'The clear icon should not be displayed'
- );
-});
-
-
-test('clear is displayed for placeholder', function (assert) {
- var selection = new AllowClearPlaceholder(
- $('#qunit-fixture .single-with-placeholder'),
- allowClearOptions
- );
-
- var $selection = selection.render();
-
- selection.update([{
- id: 'one',
- test: 'one'
- }]);
-
- assert.equal(
- $selection.find('.select2-selection__clear').length,
- 1,
- 'The clear icon should be displayed'
- );
-});
-
-test('clicking clear will set the placeholder value', function (assert) {
- var $element = $('#qunit-fixture .single-with-placeholder');
-
- var selection = new AllowClearPlaceholder(
- $element,
- allowClearOptions
- );
- var container = new MockContainer();
-
- var $selection = selection.render();
-
- selection.bind(container, $('
');
- var options = new Options({
- containerCssClass: ':all:'
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('test'));
- assert.ok($container.hasClass('copy'));
- assert.ok($container.hasClass('works'));
- assert.ok(!$container.hasClass(':all:'));
-});
-
-test(':all: can be used with other classes', function (assert) {
- var $element = $(' ');
- var options = new Options({
- containerCssClass: ':all: other'
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('test'));
- assert.ok($container.hasClass('copy'));
- assert.ok($container.hasClass('works'));
- assert.ok($container.hasClass('other'));
- assert.ok(!$container.hasClass(':all:'));
-});
-
-test('classes can be passed in as a string', function (assert) {
- var $element = $(' ');
- var options = new Options({
- containerCssClass: 'other'
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('other'));
-});
-
-test('a function can be used based on the element', function (assert){
- var $element = $(' ');
- var options = new Options({
- containerCssClass: function ($element) {
- return 'function';
- }
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('function'));
- assert.ok(!$container.hasClass('test'));
-});
-
-test(':all: works around custom adapters', function (assert) {
- var $element = $(' ');
- var options = new Options({
- containerCssClass: ':all: something',
- adaptContainerCssClass: function (clazz) {
- return clazz + '-modified';
- }
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('something'));
-
- assert.ok($container.hasClass('test'));
- assert.ok($container.hasClass('test-modified'));
-});
-
-module('Selection - adaptContainerCss compatibility');
-
-test('only return when adapted', function (assert) {
- var $element = $(' ');
- var options = new Options({
- adaptContainerCssClass: function (clazz) {
- return 'modified';
- }
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok(!$container.hasClass('original'));
- assert.ok($container.hasClass('modified'));
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/multiple-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/multiple-tests.js
deleted file mode 100644
index 0d0f9c2e63..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/multiple-tests.js
+++ /dev/null
@@ -1,149 +0,0 @@
-module('Selection containers - Multiple');
-
-var MultipleSelection = require('select2/selection/multiple');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-var Utils = require('select2/utils');
-
-var options = new Options({});
-
-test('display uses templateSelection', function (assert) {
- var called = false;
-
- var templateOptions = new Options({
- templateSelection: function (data) {
- called = true;
-
- return data.text;
- }
- });
-
- var selection = new MultipleSelection(
- $('#qunit-fixture .multiple'),
- templateOptions
- );
-
- var out = selection.display({
- text: 'test'
- });
-
- assert.ok(called);
-
- assert.equal(out, 'test');
-});
-
-test('templateSelection can addClass', function (assert) {
- var called = false;
-
- var templateOptions = new Options({
- templateSelection: function (data, container) {
- called = true;
- container.addClass('testclass');
- return data.text;
- }
- });
-
- var selection = new MultipleSelection(
- $('#qunit-fixture .multiple'),
- templateOptions
- );
-
- var $container = selection.selectionContainer();
-
- var out = selection.display({
- text: 'test'
- }, $container);
-
- assert.ok(called);
-
- assert.equal(out, 'test');
-
- assert.ok($container.hasClass('testclass'));
-});
-
-test('empty update clears the selection', function (assert) {
- var selection = new MultipleSelection(
- $('#qunit-fixture .multiple'),
- options
- );
-
- var $selection = selection.render();
- var $rendered = $selection.find('.select2-selection__rendered');
-
- $rendered.text('testing');
-
- selection.update([]);
-
- assert.equal($rendered.text(), '');
-});
-
-test('escapeMarkup is being used', function (assert) {
- var selection = new MultipleSelection(
- $('#qunit-fixture .multiple'),
- options
- );
-
- var $selection = selection.render();
- var $rendered = $selection.find('.select2-selection__rendered');
-
- var unescapedText = '';
-
- selection.update([{
- text: unescapedText
- }]);
-
- assert.equal(
- $rendered.text().substr(1),
- unescapedText,
- 'The text should be escaped by default to prevent injection'
- );
-});
-
-test('clear button respects the disabled state', function (assert) {
- var options = new Options({
- disabled: true
- });
-
- var $select = $('#qunit-fixture .multiple');
-
- var container = new MockContainer();
- var $container = $('
');
-
- var selection = new MultipleSelection(
- $select,
- options
- );
-
- var $selection = selection.render();
- $container.append($selection);
-
- selection.bind(container, $container);
-
- // Select an option
- selection.update([{
- text: 'Test'
- }]);
-
- var $rendered = $selection.find('.select2-selection__rendered');
-
- var $pill = $rendered.find('.select2-selection__choice');
-
- assert.equal($pill.length, 1, 'There should only be one selection');
-
- var $remove = $pill.find('.select2-selection__choice__remove');
-
- assert.equal(
- $remove.length,
- 1,
- 'The remove icon is displayed for the selection'
- );
-
- // Set up the unselect handler
- selection.on('unselect', function (params) {
- assert.ok(false, 'The unselect handler should not be triggered');
- });
-
- // Trigger the handler for the remove icon
- $remove.trigger('click');
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/placeholder-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/placeholder-tests.js
deleted file mode 100644
index 8a436ff338..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/placeholder-tests.js
+++ /dev/null
@@ -1,74 +0,0 @@
-module('Selection containers - Placeholders');
-
-var Placeholder = require('select2/selection/placeholder');
-var SingleSelection = require('select2/selection/single');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-var Utils = require('select2/utils');
-
-var SinglePlaceholder = Utils.Decorate(SingleSelection, Placeholder);
-
-var placeholderOptions = new Options({
- placeholder: {
- id: 'placeholder',
- text: 'This is the placeholder'
- }
-});
-
-test('normalizing placeholder ignores objects', function (assert) {
- var selection = new SinglePlaceholder(
- $('#qunit-fixture .single'),
- placeholderOptions
- );
-
- var original = {
- id: 'test',
- text: 'testing'
- };
-
- var normalized = selection.normalizePlaceholder(original);
-
- assert.equal(original, normalized);
-});
-
-test('normalizing placeholder gives object for string', function (assert) {
- var selection = new SinglePlaceholder(
- $('#qunit-fixture .single'),
- placeholderOptions
- );
-
- var normalized = selection.normalizePlaceholder('placeholder');
-
- assert.equal(normalized.id, '');
- assert.equal(normalized.text, 'placeholder');
-});
-
-
-test('text is shown for placeholder option on single', function (assert) {
- var selection = new SinglePlaceholder(
- $('#qunit-fixture .single'),
- placeholderOptions
- );
-
- var $selection = selection.render();
-
- selection.update([{
- id: 'placeholder'
- }]);
-
- assert.equal($selection.text(), 'This is the placeholder');
-});
-
-test('placeholder is shown when no options are selected', function (assert) {
- var selection = new SinglePlaceholder(
- $('#qunit-fixture .multiple'),
- placeholderOptions
- );
-
- var $selection = selection.render();
-
- selection.update([]);
-
- assert.equal($selection.text(), 'This is the placeholder');
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/search-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/search-tests.js
deleted file mode 100644
index 43345d72f0..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/search-tests.js
+++ /dev/null
@@ -1,191 +0,0 @@
-module('Selection containers - Inline search');
-
-var MultipleSelection = require('select2/selection/multiple');
-var InlineSearch = require('select2/selection/search');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-var Utils = require('select2/utils');
-
-var options = new Options({});
-
-test('backspace will remove a choice', function (assert) {
- assert.expect(3);
-
- var KEYS = require('select2/keys');
-
- var $container = $('#qunit-fixture .event-container');
- var container = new MockContainer();
-
- var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
-
- var $element = $('#qunit-fixture .multiple');
- var selection = new CustomSelection($element, options);
-
- var $selection = selection.render();
- selection.bind(container, $container);
-
- // The unselect event should be triggered at some point
- selection.on('unselect', function () {
- assert.ok(true, 'A choice was unselected');
- });
-
- // Add some selections and render the search
- selection.update([
- {
- id: '1',
- text: 'One'
- }
- ]);
-
- var $search = $selection.find('input');
- var $choices = $selection.find('.select2-selection__choice');
-
- assert.equal($search.length, 1, 'The search was visible');
- assert.equal($choices.length, 1, 'The choice was rendered');
-
- // Trigger the backspace on the search
- var backspace = $.Event('keydown', {
- which: KEYS.BACKSPACE
- });
- $search.trigger(backspace);
-});
-
-test('backspace will set the search text', function (assert) {
- assert.expect(3);
-
- var KEYS = require('select2/keys');
-
- var $container = $('#qunit-fixture .event-container');
- var container = new MockContainer();
-
- var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
-
- var $element = $('#qunit-fixture .multiple');
- var selection = new CustomSelection($element, options);
-
- var $selection = selection.render();
- selection.bind(container, $container);
-
- // Add some selections and render the search
- selection.update([
- {
- id: '1',
- text: 'One'
- }
- ]);
-
- var $search = $selection.find('input');
- var $choices = $selection.find('.select2-selection__choice');
-
- assert.equal($search.length, 1, 'The search was visible');
- assert.equal($choices.length, 1, 'The choice was rendered');
-
- // Trigger the backspace on the search
- var backspace = $.Event('keydown', {
- which: KEYS.BACKSPACE
- });
- $search.trigger(backspace);
-
- assert.equal($search.val(), 'One', 'The search text was set');
-});
-
-test('updating selection does not shift the focus', function (assert) {
- // Check for IE 8, which triggers a false negative during testing
- if (window.attachEvent && !window.addEventListener) {
- // We must expect 0 assertions or the test will fail
- assert.expect(0);
- return;
- }
-
- var $container = $('#qunit-fixture .event-container');
- var container = new MockContainer();
-
- var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
-
- var $element = $('#qunit-fixture .multiple');
- var selection = new CustomSelection($element, options);
-
- var $selection = selection.render();
- selection.bind(container, $container);
-
- // Update the selection so the search is rendered
- selection.update([]);
-
- // Make it visible so the browser can place focus on the search
- $container.append($selection);
-
- var $search = $selection.find('input');
- $search.trigger('focus');
-
- assert.equal($search.length, 1, 'The search was not visible');
-
- assert.equal(
- document.activeElement,
- $search[0],
- 'The search did not have focus originally'
- );
-
- // Trigger an update, this should redraw the search box
- selection.update([]);
-
- assert.equal($search.length, 1, 'The search box disappeared');
-
- assert.equal(
- document.activeElement,
- $search[0],
- 'The search did not have focus after the selection was updated'
- );
-});
-
-test('the focus event shifts the focus', function (assert) {
- // Check for IE 8, which triggers a false negative during testing
- if (window.attachEvent && !window.addEventListener) {
- // We must expect 0 assertions or the test will fail
- assert.expect(0);
- return;
- }
-
- var $container = $('#qunit-fixture .event-container');
- var container = new MockContainer();
-
- var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
-
- var $element = $('#qunit-fixture .multiple');
- var selection = new CustomSelection($element, options);
-
- var $selection = selection.render();
- selection.bind(container, $container);
-
- // Update the selection so the search is rendered
- selection.update([]);
-
- // Make it visible so the browser can place focus on the search
- $container.append($selection);
-
- // The search should not be automatically focused
-
- var $search = $selection.find('input');
-
- assert.notEqual(
- document.activeElement,
- $search[0],
- 'The search had focus originally'
- );
-
- assert.equal($search.length, 1, 'The search was not visible');
-
- // Focus the container
-
- container.trigger('focus');
-
- // Make sure it focuses the search
-
- assert.equal($search.length, 1, 'The search box disappeared');
-
- assert.equal(
- document.activeElement,
- $search[0],
- 'The search did not have focus originally'
- );
-});
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/single-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/single-tests.js
deleted file mode 100644
index 2731b2a5a1..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/single-tests.js
+++ /dev/null
@@ -1,117 +0,0 @@
-module('Selection containers - Single');
-
-var SingleSelection = require('select2/selection/single');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-var Utils = require('select2/utils');
-
-var options = new Options({});
-
-test('display uses templateSelection', function (assert) {
- var called = false;
-
- var templateOptions = new Options({
- templateSelection: function (data) {
- called = true;
-
- return data.text;
- }
- });
-
- var selection = new SingleSelection(
- $('#qunit-fixture .single'),
- templateOptions
- );
-
- var out = selection.display({
- text: 'test'
- });
-
- assert.ok(called);
-
- assert.equal(out, 'test');
-});
-
-test('templateSelection can addClass', function (assert) {
- var called = false;
-
- var templateOptions = new Options({
- templateSelection: function (data, container) {
- called = true;
- container.addClass('testclass');
- return data.text;
- }
- });
-
- var selection = new SingleSelection(
- $('#qunit-fixture .single'),
- templateOptions
- );
-
- var $container = selection.selectionContainer();
-
- var out = selection.display({
- text: 'test'
- }, $container);
-
- assert.ok(called);
-
- assert.equal(out, 'test');
-
- assert.ok($container.hasClass('testclass'));
-});
-
-test('empty update clears the selection', function (assert) {
- var selection = new SingleSelection(
- $('#qunit-fixture .single'),
- options
- );
-
- var $selection = selection.render();
- var $rendered = $selection.find('.select2-selection__rendered');
-
- $rendered.text('testing');
-
- selection.update([]);
-
- assert.equal($rendered.text(), '');
-});
-
-test('update renders the data text', function (assert) {
- var selection = new SingleSelection(
- $('#qunit-fixture .single'),
- options
- );
-
- var $selection = selection.render();
- var $rendered = $selection.find('.select2-selection__rendered');
-
- selection.update([{
- text: 'test'
- }]);
-
- assert.equal($rendered.text(), 'test');
-});
-
-test('escapeMarkup is being used', function (assert) {
- var selection = new SingleSelection(
- $('#qunit-fixture .single'),
- options
- );
-
- var $selection = selection.render();
- var $rendered = $selection.find('.select2-selection__rendered');
-
- var unescapedText = '';
-
- selection.update([{
- text: unescapedText
- }]);
-
- assert.equal(
- $rendered.text(),
- unescapedText,
- 'The text should be escaped by default to prevent injection'
- );
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/stopPropagation-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/stopPropagation-tests.js
deleted file mode 100644
index d8d8897b3c..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/selection/stopPropagation-tests.js
+++ /dev/null
@@ -1,33 +0,0 @@
-module('Selection containers - Stoping event propagation');
-
-var SingleSelection = require('select2/selection/single');
-var StopPropagation = require('select2/selection/stopPropagation');
-
-var $ = require('jquery');
-var Options = require('select2/options');
-var Utils = require('select2/utils');
-
-var CutomSelection = Utils.Decorate(SingleSelection, StopPropagation);
-
-var options = new Options();
-
-test('click event does not propagate', function (assert) {
- assert.expect(1);
-
- var $container = $('#qunit-fixture .event-container');
- var container = new MockContainer();
-
- var selection = new CutomSelection($('#qunit-fixture select'), options);
-
- var $selection = selection.render();
- selection.bind(container, $container);
-
- $container.append($selection);
- $container.on('click', function () {
- assert.ok(false, 'The click event should have been stopped');
- });
-
- $selection.trigger('click');
-
- assert.ok(true, 'Something went wrong if this failed');
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/unit.html b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/unit.html
deleted file mode 100644
index 384deb2316..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/unit.html
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- One
-
-
-
-
-
- placeholder
- One
-
-
-
- One
- Two
-
-
-
-
- One
- Two
-
-
-
-
-
- One
- Two
- Uno
-
-
-
- One
- Two
- Uno
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/utils/decorator-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/utils/decorator-tests.js
deleted file mode 100644
index 4888991f62..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/utils/decorator-tests.js
+++ /dev/null
@@ -1,189 +0,0 @@
-module('Decorators');
-
-var Utils = require('select2/utils');
-
-test('overridden - method', function (assert) {
- function BaseClass () {}
-
- BaseClass.prototype.hello = function () {
- return 'A';
- };
-
- function DecoratorClass () {}
-
- DecoratorClass.prototype.hello = function () {
- return 'B';
- };
-
- var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
-
- var inst = new DecoratedClass();
-
- assert.strictEqual(inst.hello(), 'B');
-});
-
-test('overridden - constructor', function (assert) {
- function BaseClass () {
- this.inherited = true;
- }
-
- BaseClass.prototype.hello = function () {
- return 'A';
- };
-
- function DecoratorClass (decorated) {
- this.called = true;
- }
-
- DecoratorClass.prototype.other = function () {
- return 'B';
- };
-
- var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
-
- var inst = new DecoratedClass();
-
- assert.ok(inst.called);
- assert.ok(!inst.inherited);
-});
-
-test('not overridden - method', function (assert) {
- function BaseClass () {}
-
- BaseClass.prototype.hello = function () {
- return 'A';
- };
-
- function DecoratorClass () {}
-
- DecoratorClass.prototype.other = function () {
- return 'B';
- };
-
- var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
-
- var inst = new DecoratedClass();
-
- assert.strictEqual(inst.hello(), 'A');
-});
-
-test('not overridden - constructor', function (assert) {
- function BaseClass () {
- this.called = true;
- }
-
- BaseClass.prototype.hello = function () {
- return 'A';
- };
-
- function DecoratorClass () {}
-
- DecoratorClass.prototype.other = function () {
- return 'B';
- };
-
- var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
-
- var inst = new DecoratedClass();
-
- assert.ok(inst.called);
-});
-
-test('inherited - method', function (assert) {
- function BaseClass () {}
-
- BaseClass.prototype.hello = function () {
- return 'A';
- };
-
- function DecoratorClass (decorated) {}
-
- DecoratorClass.prototype.hello = function (decorated) {
- return 'B' + decorated.call(this) + 'C';
- };
-
- var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
-
- var inst = new DecoratedClass();
-
- assert.strictEqual(inst.hello(), 'BAC');
-});
-
-test('inherited - constructor', function (assert) {
- function BaseClass () {
- this.inherited = true;
- }
-
- BaseClass.prototype.hello = function () {
- return 'A';
- };
-
- function DecoratorClass (decorated) {
- this.called = true;
-
- decorated.call(this);
- }
-
- DecoratorClass.prototype.other = function () {
- return 'B';
- };
-
- var DecoratedClass = Utils.Decorate(BaseClass, DecoratorClass);
-
- var inst = new DecoratedClass();
-
- assert.ok(inst.called);
- assert.ok(inst.inherited);
-});
-
-test('inherited - three levels', function (assert) {
- function BaseClass (testArgument) {
- this.baseCalled = true;
- this.baseTestArgument = testArgument;
- }
-
- BaseClass.prototype.test = function (a) {
- return a + 'c';
- };
-
- function MiddleClass (decorated, testArgument) {
- this.middleCalled = true;
- this.middleTestArgument = testArgument;
-
- decorated.call(this, testArgument);
- }
-
- MiddleClass.prototype.test = function (decorated, a) {
- return decorated.call(this, a + 'b');
- };
-
- function DecoratorClass (decorated, testArgument) {
- this.decoratorCalled = true;
- this.decoratorTestArgument = testArgument;
-
- decorated.call(this, testArgument);
- }
-
- DecoratorClass.prototype.test = function (decorated, a) {
- return decorated.call(this, a + 'a');
- };
-
- var DecoratedClass = Utils.Decorate(
- Utils.Decorate(BaseClass, MiddleClass),
- DecoratorClass
- );
-
- var inst = new DecoratedClass('test');
-
- assert.ok(inst.baseCalled, 'The base class contructor was called');
- assert.ok(inst.middleCalled, 'The middle class constructor was called');
- assert.ok(inst.decoratorCalled, 'The decorator constructor was called');
-
- assert.strictEqual(inst.baseTestArgument, 'test');
- assert.strictEqual(inst.middleTestArgument, 'test');
- assert.strictEqual(inst.decoratorTestArgument, 'test');
-
- var out = inst.test('test');
-
- assert.strictEqual(out, 'testabc');
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/utils/escapeMarkup-tests.js b/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/utils/escapeMarkup-tests.js
deleted file mode 100644
index 726f09dee0..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/select2-4.0.3/tests/utils/escapeMarkup-tests.js
+++ /dev/null
@@ -1,36 +0,0 @@
-module('Utils - escapeMarkup');
-
-var Utils = require('select2/utils');
-
-test('text passes through', function (assert) {
- var text = 'testing this';
- var escaped = Utils.escapeMarkup(text);
-
- assert.equal(text, escaped);
-});
-
-test('html tags are escaped', function (assert) {
- var text = '';
- var escaped = Utils.escapeMarkup(text);
-
- assert.notEqual(text, escaped);
- assert.equal(escaped.indexOf('`
-
-3. use toastr to display a toast for info, success, warning or error
- ```js
- // Display an info toast with no title
- toastr.info('Are you the 6 fingered man?')
- ```
-
-### Other Options
-```js
-// Display a warning toast, with no title
-toastr.warning('My name is Inigo Montoya. You killed my father, prepare to die!')
-
-// Display a success toast, with a title
-toastr.success('Have fun storming the castle!', 'Miracle Max Says')
-
-// Display an error toast, with a title
-toastr.error('I do not think that word means what you think it means.', 'Inconceivable!')
-
-// Immediately remove current toasts without using animation
-toastr.remove()
-
-// Remove current toasts using animation
-toastr.clear()
-
-// Override global options
-toastr.success('We do have the Kapua suite available.', 'Turtle Bay Resort', {timeOut: 5000})
-```
-
-### Escape HTML characters
-In case you want to escape HTML characters in title and message
-
- toastr.options.escapeHtml = true;
-
-### Close Button
-Optionally enable a close button
-```js
-toastr.options.closeButton = true;
-````
-
-Optionally override the close button's HTML.
-
-```js
-toastr.options.closeHtml = ' ';
-```
-
-You can also override the CSS/LESS for `#toast-container .toast-close-button`
-
-Optionally override the hide animation when the close button is clicked (falls back to hide configuration).
-```js
-toastr.options.closeMethod = 'fadeOut';
-toastr.options.closeDuration = 300;
-toastr.options.closeEasing = 'swing';
-```
-
-### Display Sequence
-Show newest toast at bottom (top is default)
-```js
-toastr.options.newestOnTop = false;
-```
-
-### Callbacks
-```js
-// Define a callback for when the toast is shown/hidden/clicked
-toastr.options.onShown = function() { console.log('hello'); }
-toastr.options.onHidden = function() { console.log('goodbye'); }
-toastr.options.onclick = function() { console.log('clicked'); }
-toastr.options.onCloseClick = function() { console.log('close button clicked'); }
-```
-
-### Animation Options
-Toastr will supply default animations, so you do not have to provide any of these settings. However you have the option to override the animations if you like.
-
-#### Easings
-Optionally override the animation easing to show or hide the toasts. Default is swing. swing and linear are built into jQuery.
-```js
-toastr.options.showEasing = 'swing';
-toastr.options.hideEasing = 'linear';
-toastr.options.closeEasing = 'linear';
-```
-
-Using the jQuery Easing plugin (http://www.gsgd.co.uk/sandbox/jquery/easing/)
-```js
-toastr.options.showEasing = 'easeOutBounce';
-toastr.options.hideEasing = 'easeInBack';
-toastr.options.closeEasing = 'easeInBack';
-```
-
-#### Animation Method
-Use the jQuery show/hide method of your choice. These default to fadeIn/fadeOut. The methods fadeIn/fadeOut, slideDown/slideUp, and show/hide are built into jQuery.
-```js
-toastr.options.showMethod = 'slideDown';
-toastr.options.hideMethod = 'slideUp';
-toastr.options.closeMethod = 'slideUp';
-```
-
-### Prevent Duplicates
-Rather than having identical toasts stack, set the preventDuplicates property to true. Duplicates are matched to the previous toast based on their message content.
-```js
-toastr.options.preventDuplicates = true;
-```
-
-### Timeouts
-Control how toastr interacts with users by setting timeouts appropriately. Timeouts can be disabled by setting them to 0.
-```js
-toastr.options.timeOut = 30; // How long the toast will display without user interaction
-toastr.options.extendedTimeOut = 60; // How long the toast will display after a user hovers over it
-```
-
-
-### Progress Bar
-Visually indicate how long before a toast expires.
-```js
-toastr.options.progressBar = true;
-```
-
-### rtl
-Flip the toastr to be displayed properly for right-to-left languages.
-```js
-toastr.options.rtl = true;
-```
-
-## Building Toastr
-
-To build the minified and css versions of Toastr you will need [node](http://nodejs.org) installed. (Use Homebrew or Chocolatey.)
-
-```
-npm install -g gulp karma-cli
-npm install
-```
-
-At this point the dependencies have been installed and you can build Toastr
-
-- Run the analytics `gulp analyze`
-- Run the test `gulp test`
-- Run the build `gulp`
-
-## Contributing
-
-For a pull request to be considered it must resolve a bug, or add a feature which is beneficial to a large audience.
-
-Pull requests must pass existing unit tests, CI processes, and add additional tests to indicate successful operation of a new feature, or the resolution of an identified bug.
-
-Requests must be made against the `develop` branch. Pull requests submitted against the `master` branch will not be considered.
-
-All pull requests are subject to approval by the repository owners, who have sole discretion over acceptance or denial.
-
-## Authors
-**John Papa**
-
-+ [http://twitter.com/John_Papa](http://twitter.com/John_Papa)
-
-**Tim Ferrell**
-
-+ [http://twitter.com/ferrell_tim](http://twitter.com/ferrell_tim)
-
-**Hans Fjällemark**
-
-+ [http://twitter.com/hfjallemark](http://twitter.com/hfjallemark)
-
-## Credits
-Inspired by https://github.com/Srirangan/notifer.js/.
-
-## Copyright
-Copyright © 2012-2015
-
-## License
-toastr is under MIT license - http://www.opensource.org/licenses/mit-license.php
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.css b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.css
deleted file mode 100644
index 76f7f572e6..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.css
+++ /dev/null
@@ -1,228 +0,0 @@
-.toast-title {
- font-weight: bold;
-}
-.toast-message {
- -ms-word-wrap: break-word;
- word-wrap: break-word;
-}
-.toast-message a,
-.toast-message label {
- color: #FFFFFF;
-}
-.toast-message a:hover {
- color: #CCCCCC;
- text-decoration: none;
-}
-.toast-close-button {
- position: relative;
- right: -0.3em;
- top: -0.3em;
- float: right;
- font-size: 20px;
- font-weight: bold;
- color: #FFFFFF;
- -webkit-text-shadow: 0 1px 0 #ffffff;
- text-shadow: 0 1px 0 #ffffff;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
- line-height: 1;
-}
-.toast-close-button:hover,
-.toast-close-button:focus {
- color: #000000;
- text-decoration: none;
- cursor: pointer;
- opacity: 0.4;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
- filter: alpha(opacity=40);
-}
-.rtl .toast-close-button {
- left: -0.3em;
- float: left;
- right: 0.3em;
-}
-/*Additional properties for button version
- iOS requires the button element instead of an anchor tag.
- If you want the anchor version, it requires `href="#"`.*/
-button.toast-close-button {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-.toast-top-center {
- top: 0;
- right: 0;
- width: 100%;
-}
-.toast-bottom-center {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-.toast-top-full-width {
- top: 0;
- right: 0;
- width: 100%;
-}
-.toast-bottom-full-width {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-.toast-top-left {
- top: 12px;
- left: 12px;
-}
-.toast-top-right {
- top: 12px;
- right: 12px;
-}
-.toast-bottom-right {
- right: 12px;
- bottom: 12px;
-}
-.toast-bottom-left {
- bottom: 12px;
- left: 12px;
-}
-#toast-container {
- position: fixed;
- z-index: 999999;
- pointer-events: none;
- /*overrides*/
-}
-#toast-container * {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-#toast-container > div {
- position: relative;
- pointer-events: auto;
- overflow: hidden;
- margin: 0 0 6px;
- padding: 15px 15px 15px 50px;
- width: 300px;
- -moz-border-radius: 3px 3px 3px 3px;
- -webkit-border-radius: 3px 3px 3px 3px;
- border-radius: 3px 3px 3px 3px;
- background-position: 15px center;
- background-repeat: no-repeat;
- -moz-box-shadow: 0 0 12px #999999;
- -webkit-box-shadow: 0 0 12px #999999;
- box-shadow: 0 0 12px #999999;
- color: #FFFFFF;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
-}
-#toast-container > div.rtl {
- direction: rtl;
- padding: 15px 50px 15px 15px;
- background-position: right 15px center;
-}
-#toast-container > div:hover {
- -moz-box-shadow: 0 0 12px #000000;
- -webkit-box-shadow: 0 0 12px #000000;
- box-shadow: 0 0 12px #000000;
- opacity: 1;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
- filter: alpha(opacity=100);
- cursor: pointer;
-}
-#toast-container > .toast-info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-error {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-success {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
-}
-#toast-container > .toast-warning {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
-}
-#toast-container.toast-top-center > div,
-#toast-container.toast-bottom-center > div {
- width: 300px;
- margin-left: auto;
- margin-right: auto;
-}
-#toast-container.toast-top-full-width > div,
-#toast-container.toast-bottom-full-width > div {
- width: 96%;
- margin-left: auto;
- margin-right: auto;
-}
-.toast {
- background-color: #030303;
-}
-.toast-success {
- background-color: #51A351;
-}
-.toast-error {
- background-color: #BD362F;
-}
-.toast-info {
- background-color: #2F96B4;
-}
-.toast-warning {
- background-color: #F89406;
-}
-.toast-progress {
- position: absolute;
- left: 0;
- bottom: 0;
- height: 4px;
- background-color: #000000;
- opacity: 0.4;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
- filter: alpha(opacity=40);
-}
-/*Responsive Design*/
-@media all and (max-width: 240px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 11em;
- }
- #toast-container > div.rtl {
- padding: 8px 50px 8px 8px;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
- #toast-container .rtl .toast-close-button {
- left: -0.2em;
- right: 0.2em;
- }
-}
-@media all and (min-width: 241px) and (max-width: 480px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 18em;
- }
- #toast-container > div.rtl {
- padding: 8px 50px 8px 8px;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
- #toast-container .rtl .toast-close-button {
- left: -0.2em;
- right: 0.2em;
- }
-}
-@media all and (min-width: 481px) and (max-width: 768px) {
- #toast-container > div {
- padding: 15px 15px 15px 50px;
- width: 25em;
- }
- #toast-container > div.rtl {
- padding: 15px 50px 15px 15px;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.js.map b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.js.map
deleted file mode 100644
index 07b5237f9f..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["toastr.js"],"names":["define","$","error","message","title","optionsOverride","notify","type","toastType","iconClass","getOptions","iconClasses","getContainer","options","create","$container","containerId","length","createContainer","info","subscribe","callback","listener","success","warning","clear","$toastElement","clearOptions","clearToast","clearContainer","remove","removeToast","children","toastsToClear","i","force","hideMethod","duration","hideDuration","easing","hideEasing","complete","attr","addClass","positionClass","appendTo","target","getDefaults","tapToDismiss","toastClass","debug","showMethod","showDuration","showEasing","onShown","undefined","onHidden","closeMethod","closeDuration","closeEasing","closeOnHover","extendedTimeOut","timeOut","titleClass","messageClass","escapeHtml","closeHtml","closeClass","newestOnTop","preventDuplicates","progressBar","progressClass","rtl","publish","args","map","source","replace","personalizeToast","setIcon","setTitle","setMessage","setCloseButton","setProgressBar","setRTL","setSequence","setAria","ariaValue","handleEvents","hover","stickAround","delayedHideToast","onclick","click","hideToast","closeButton","$closeElement","event","stopPropagation","cancelBubble","onCloseClick","displayToast","hide","intervalId","setTimeout","maxHideTime","parseFloat","hideEta","Date","getTime","setInterval","updateProgress","prepend","append","suffix","$titleElement","$messageElement","$progressElement","shouldExit","previousToast","override","method","clearTimeout","response","state","endTime","stop","percentage","width","extend","toastId","startTime","console","log","toastr","is","version","amd","deps","factory","module","exports","require","window","jQuery"],"mappings":"CAaC,SAAUA,GACPA,GAAQ,UAAW,SAAUC,GACzB,MAAO,YA8BH,QAASC,GAAMC,EAASC,EAAOC,GAC3B,MAAOC,IACHC,KAAMC,EAAUN,MAChBO,UAAWC,IAAaC,YAAYT,MACpCC,QAASA,EACTE,gBAAiBA,EACjBD,MAAOA,IAIf,QAASQ,GAAaC,EAASC,GAG3B,MAFKD,KAAWA,EAAUH,KAC1BK,EAAad,EAAE,IAAMY,EAAQG,aACzBD,EAAWE,OACJF,GAEPD,IACAC,EAAaG,EAAgBL,IAE1BE,GAGX,QAASI,GAAKhB,EAASC,EAAOC,GAC1B,MAAOC,IACHC,KAAMC,EAAUW,KAChBV,UAAWC,IAAaC,YAAYQ,KACpChB,QAASA,EACTE,gBAAiBA,EACjBD,MAAOA,IAIf,QAASgB,GAAUC,GACfC,EAAWD,EAGf,QAASE,GAAQpB,EAASC,EAAOC,GAC7B,MAAOC,IACHC,KAAMC,EAAUe,QAChBd,UAAWC,IAAaC,YAAYY,QACpCpB,QAASA,EACTE,gBAAiBA,EACjBD,MAAOA,IAIf,QAASoB,GAAQrB,EAASC,EAAOC,GAC7B,MAAOC,IACHC,KAAMC,EAAUgB,QAChBf,UAAWC,IAAaC,YAAYa,QACpCrB,QAASA,EACTE,gBAAiBA,EACjBD,MAAOA,IAIf,QAASqB,GAAMC,EAAeC,GAC1B,GAAId,GAAUH,GACTK,IAAcH,EAAaC,GAC3Be,EAAWF,EAAeb,EAASc,IACpCE,EAAehB,GAIvB,QAASiB,GAAOJ,GACZ,GAAIb,GAAUH,GAEd,OADKK,IAAcH,EAAaC,GAC5Ba,GAAuD,IAAtCzB,EAAE,SAAUyB,GAAeT,WAC5Cc,GAAYL,QAGZX,EAAWiB,WAAWf,QACtBF,EAAWe,UAMnB,QAASD,GAAgBhB,GAErB,IAAK,GADDoB,GAAgBlB,EAAWiB,WACtBE,EAAID,EAAchB,OAAS,EAAGiB,GAAK,EAAGA,IAC3CN,EAAW3B,EAAEgC,EAAcC,IAAKrB,GAIxC,QAASe,GAAYF,EAAeb,EAASc,GACzC,GAAIQ,MAAQR,IAAgBA,EAAaQ,QAAQR,EAAaQ,KAC9D,UAAIT,IAAkBS,GAA+C,IAAtClC,EAAE,SAAUyB,GAAeT,UACtDS,EAAcb,EAAQuB,aAClBC,SAAUxB,EAAQyB,aAClBC,OAAQ1B,EAAQ2B,WAChBC,SAAU,WAAcV,EAAYL,OAEjC,GAKf,QAASR,GAAgBL,GAMrB,MALAE,GAAad,EAAE,UACVyC,KAAK,KAAM7B,EAAQG,aACnB2B,SAAS9B,EAAQ+B,eAEtB7B,EAAW8B,SAAS5C,EAAEY,EAAQiC,SACvB/B,EAGX,QAASgC,KACL,OACIC,cAAc,EACdC,WAAY,QACZjC,YAAa,kBACbkC,OAAO,EAEPC,WAAY,SACZC,aAAc,IACdC,WAAY,QACZC,QAASC,OACTnB,WAAY,UACZE,aAAc,IACdE,WAAY,QACZgB,SAAUD,OACVE,aAAa,EACbC,eAAe,EACfC,aAAa,EACbC,cAAc,EAEdC,gBAAiB,IACjBlD,aACIT,MAAO,cACPiB,KAAM,aACNI,QAAS,gBACTC,QAAS,iBAEbf,UAAW,aACXmC,cAAe,kBACfkB,QAAS,IACTC,WAAY,cACZC,aAAc,gBACdC,YAAY,EACZnB,OAAQ,OACRoB,UAAW,yCACXC,WAAY,qBACZC,aAAa,EACbC,mBAAmB,EACnBC,aAAa,EACbC,cAAe,iBACfC,KAAK,GAIb,QAASC,GAAQC,GACRpD,GACLA,EAASoD,GAGb,QAASpE,GAAOqE,GAgDZ,QAASV,GAAWW,GAKhB,MAJc,OAAVA,IACAA,EAAS,IAGNA,EACFC,QAAQ,KAAM,SACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QAGvB,QAASC,KACLC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IAGJ,QAASA,KACL,GAAIC,GAAY,EAChB,QAAQZ,EAAIlE,WACR,IAAK,gBACL,IAAK,aACD8E,EAAa,QACb,MACJ,SACIA,EAAY,YAEpB7D,EAAcgB,KAAK,YAAa6C,GAGpC,QAASC,KACD3E,EAAQ+C,cACRlC,EAAc+D,MAAMC,EAAaC,IAGhC9E,EAAQ+E,SAAW/E,EAAQmC,cAC5BtB,EAAcmE,MAAMC,GAGpBjF,EAAQkF,aAAeC,GACvBA,EAAcH,MAAM,SAAUI,GACtBA,EAAMC,gBACND,EAAMC,kBACwB3C,SAAvB0C,EAAME,cAA8BF,EAAME,gBAAiB,IAClEF,EAAME,cAAe,GAGrBtF,EAAQuF,cACRvF,EAAQuF,aAAaH,GAGzBH,GAAU,KAIdjF,EAAQ+E,SACRlE,EAAcmE,MAAM,SAAUI,GAC1BpF,EAAQ+E,QAAQK,GAChBH,MAKZ,QAASO,KACL3E,EAAc4E,OAEd5E,EAAcb,EAAQsC,aACjBd,SAAUxB,EAAQuC,aAAcb,OAAQ1B,EAAQwC,WAAYZ,SAAU5B,EAAQyC,UAG/EzC,EAAQiD,QAAU,IAClByC,EAAaC,WAAWV,EAAWjF,EAAQiD,SAC3CQ,EAAYmC,YAAcC,WAAW7F,EAAQiD,SAC7CQ,EAAYqC,SAAU,GAAIC,OAAOC,UAAYvC,EAAYmC,YACrD5F,EAAQyD,cACRA,EAAYiC,WAAaO,YAAYC,EAAgB,MAKjE,QAAShC,KACDJ,EAAIlE,WACJiB,EAAciB,SAAS9B,EAAQoC,YAAYN,SAASlC,GAI5D,QAAS4E,KACDxE,EAAQuD,YACRrD,EAAWiG,QAAQtF,GAEnBX,EAAWkG,OAAOvF,GAI1B,QAASsD,KACL,GAAIL,EAAIvE,MAAO,CACX,GAAI8G,GAASvC,EAAIvE,KACbS,GAAQoD,aACRiD,EAASjD,EAAWU,EAAIvE,QAE5B+G,EAAcF,OAAOC,GAAQvE,SAAS9B,EAAQkD,YAC9CrC,EAAcuF,OAAOE,IAI7B,QAASlC,KACL,GAAIN,EAAIxE,QAAS,CACb,GAAI+G,GAASvC,EAAIxE,OACbU,GAAQoD,aACRiD,EAASjD,EAAWU,EAAIxE,UAE5BiH,EAAgBH,OAAOC,GAAQvE,SAAS9B,EAAQmD,cAChDtC,EAAcuF,OAAOG,IAI7B,QAASlC,KACDrE,EAAQkF,cACRC,EAAcrD,SAAS9B,EAAQsD,YAAYzB,KAAK,OAAQ,UACxDhB,EAAcsF,QAAQhB,IAI9B,QAASb,KACDtE,EAAQyD,cACR+C,EAAiB1E,SAAS9B,EAAQ0D,eAClC7C,EAAcsF,QAAQK,IAI9B,QAASjC,KACDvE,EAAQ2D,KACR9C,EAAciB,SAAS,OAI/B,QAAS2E,GAAWzG,EAAS8D,GACzB,GAAI9D,EAAQwD,kBAAmB,CAC3B,GAAIM,EAAIxE,UAAYoH,EAChB,OAAO,CAEPA,GAAgB5C,EAAIxE,QAG5B,OAAO,EAGX,QAAS2F,GAAU0B,GACf,GAAIC,GAASD,GAAY3G,EAAQ4C,eAAgB,EAAQ5C,EAAQ4C,YAAc5C,EAAQuB,WACnFC,EAAWmF,GAAY3G,EAAQ6C,iBAAkB,EACjD7C,EAAQ6C,cAAgB7C,EAAQyB,aAChCC,EAASiF,GAAY3G,EAAQ8C,eAAgB,EAAQ9C,EAAQ8C,YAAc9C,EAAQ2B,UACvF,KAAIvC,EAAE,SAAUyB,GAAeT,QAAWuG,EAI1C,MADAE,cAAapD,EAAYiC,YAClB7E,EAAc+F,IACjBpF,SAAUA,EACVE,OAAQA,EACRE,SAAU,WACNV,EAAYL,GACZgG,aAAanB,GACT1F,EAAQ2C,UAA+B,WAAnBmE,EAASC,OAC7B/G,EAAQ2C,WAEZmE,EAASC,MAAQ,SACjBD,EAASE,QAAU,GAAIjB,MACvBnC,EAAQkD,MAKpB,QAAShC,MACD9E,EAAQiD,QAAU,GAAKjD,EAAQgD,gBAAkB,KACjD0C,EAAaC,WAAWV,EAAWjF,EAAQgD,iBAC3CS,EAAYmC,YAAcC,WAAW7F,EAAQgD,iBAC7CS,EAAYqC,SAAU,GAAIC,OAAOC,UAAYvC,EAAYmC,aAIjE,QAASf,KACLgC,aAAanB,GACbjC,EAAYqC,QAAU,EACtBjF,EAAcoG,MAAK,GAAM,GAAMjH,EAAQsC,aAClCd,SAAUxB,EAAQuC,aAAcb,OAAQ1B,EAAQwC,aAIzD,QAAS0D,KACL,GAAIgB,IAAezD,EAAYqC,SAAW,GAAIC,OAAOC,WAAcvC,EAAYmC,YAAe,GAC9FY,GAAiBW,MAAMD,EAAa,KApPxC,GAAIlH,GAAUH,IACVD,EAAYkE,EAAIlE,WAAaI,EAAQJ,SAOzC,IALqC,mBAAzBkE,GAAmB,kBAC3B9D,EAAUZ,EAAEgI,OAAOpH,EAAS8D,EAAItE,iBAChCI,EAAYkE,EAAItE,gBAAgBI,WAAaA,IAG7C6G,EAAWzG,EAAS8D,GAAxB,CAEAuD,IAEAnH,EAAaH,EAAaC,GAAS,EAEnC,IAAI0F,GAAa,KACb7E,EAAgBzB,EAAE,UAClBkH,EAAgBlH,EAAE,UAClBmH,EAAkBnH,EAAE,UACpBoH,EAAmBpH,EAAE,UACrB+F,EAAgB/F,EAAEY,EAAQqD,WAC1BI,GACAiC,WAAY,KACZI,QAAS,KACTF,YAAa,MAEbkB,GACAO,QAASA,EACTN,MAAO,UACPO,UAAW,GAAIvB,MACf/F,QAASA,EACT8D,IAAKA,EAeT,OAZAG,KAEAuB,IAEAb,IAEAf,EAAQkD,GAEJ9G,EAAQqC,OAASkF,SACjBA,QAAQC,IAAIV,GAGTjG,GA2MX,QAAShB,KACL,MAAOT,GAAEgI,UAAWlF,IAAeuF,EAAOzH,SAG9C,QAASkB,GAAYL,GACZX,IAAcA,EAAaH,KAC5Bc,EAAc6G,GAAG,cAGrB7G,EAAcI,SACdJ,EAAgB,KACqB,IAAjCX,EAAWiB,WAAWf,SACtBF,EAAWe,SACXyF,EAAgBhE,SA/bxB,GAAIxC,GACAO,EAsBAiG,EArBAW,EAAU,EACV1H,GACAN,MAAO,QACPiB,KAAM,OACNI,QAAS,UACTC,QAAS,WAGT8G,GACA7G,MAAOA,EACPK,OAAQA,EACR5B,MAAOA,EACPU,aAAcA,EACdO,KAAMA,EACNN,WACAO,UAAWA,EACXG,QAASA,EACTiH,QAAS,QACThH,QAASA,EAKb,OAAO8G,SA4aC,kBAAXtI,SAAyBA,OAAOyI,IAAMzI,OAAS,SAAU0I,EAAMC,GAC9C,mBAAXC,SAA0BA,OAAOC,QACxCD,OAAOC,QAAUF,EAAQG,QAAQ,WAEjCC,OAAOT,OAASK,EAAQI,OAAOC","file":"toastr.js","sourcesContent":["/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return (function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.3',\n warning: warning\n };\n\n var previousToast;\n\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) { options = getOptions(); }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer (options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast ($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () { removeToast($toastElement); }\n });\n return true;\n }\n return false;\n }\n\n function createContainer(options) {\n $container = $('
')\n .attr('id', options.containerId)\n .addClass(options.positionClass);\n\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing', //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '× ',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) { return; }\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof (map.optionsOverride) !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) { return; }\n\n toastId++;\n\n $container = getContainer(options, true);\n\n var intervalId = null;\n var $toastElement = $('
');\n var $titleElement = $('
');\n var $messageElement = $('
');\n var $progressElement = $('
');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n\n personalizeToast();\n\n displayToast();\n\n handleEvents();\n\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n\n $toastElement[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n );\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ?\n options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing}\n );\n }\n\n function updateProgress() {\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) { $container = getContainer(); }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n\n })();\n });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) { //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n}));\n"],"sourceRoot":"/source/"}
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.min.css b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.min.css
deleted file mode 100644
index 064afd0718..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#FFF}.toast-message a:hover{color:#CCC;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#FFF;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);line-height:1}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}.rtl .toast-close-button{left:-.3em;float:left;right:.3em}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#FFF;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>div.rtl{direction:rtl;padding:15px 50px 15px 15px;background-position:right 15px center}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51A351}.toast-error{background-color:#BD362F}.toast-info{background-color:#2F96B4}.toast-warning{background-color:#F89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.min.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.min.js
deleted file mode 100644
index 7c0c07c2a6..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/build/toastr.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("
").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'× ',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e("
"),M=e("
"),B=e("
"),q=e("
"),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,success:i,version:"2.1.3",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)});
-//# sourceMappingURL=toastr.js.map
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/demo.html b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/demo.html
deleted file mode 100644
index 7e124d68aa..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/demo.html
+++ /dev/null
@@ -1,351 +0,0 @@
-
-
-
-
- toastr examples
-
-
-
-
-
-
-
-
- toastr
-
-
-
-
-
-
- Title
-
- Message
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Show Toast
- Clear Toasts
- Clear Last Toast
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/gulpfile.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/gulpfile.js
deleted file mode 100644
index f78f8ced92..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/gulpfile.js
+++ /dev/null
@@ -1,172 +0,0 @@
-/* jshint node:true, camelcase:false */
-var gulp = require('gulp');
-var karma = require('karma').server;
-var merge = require('merge-stream');
-var plug = require('gulp-load-plugins')();
-
-var paths = {
- js: './toastr.js',
- less: './toastr.less',
- report: './report',
- build: './build'
-};
-
-var log = plug.util.log;
-
-/**
- * List the available gulp tasks
- */
-gulp.task('help', plug.taskListing);
-
-/**
- * Lint the code, create coverage report, and a visualizer
- * @return {Stream}
- */
-gulp.task('analyze', function () {
- log('Analyzing source with JSHint and JSCS');
-
- var jshint = analyzejshint([paths.js]);
- var jscs = analyzejscs([paths.js]);
-
- return merge(jshint, jscs);
-});
-
-/**
- * Minify and bundle the app's JavaScript
- * @return {Stream}
- */
-gulp.task('js', function () {
- log('Bundling, minifying, and copying the app\'s JavaScript');
-
- return gulp
- .src(paths.js)
- .pipe(plug.sourcemaps.init())
- .pipe(plug.bytediff.start())
- .pipe(plug.uglify({}))
- .pipe(plug.bytediff.stop(bytediffFormatter))
- .pipe(plug.sourcemaps.write('.'))
- .pipe(plug.rename(function (path) {
- if (path.extname === '.js') {
- path.basename += '.min';
- }
- }))
- .pipe(gulp.dest(paths.build));
-});
-
-/**
- * Minify and bundle the CSS
- * @return {Stream}
- */
-gulp.task('css', function () {
- log('Bundling, minifying, and copying the app\'s CSS');
-
- return gulp.src(paths.less)
- .pipe(plug.less())
- .pipe(gulp.dest(paths.build))
- .pipe(plug.bytediff.start())
- .pipe(plug.minifyCss({}))
- .pipe(plug.bytediff.stop(bytediffFormatter))
- .pipe(plug.rename('toastr.min.css'))
- .pipe(gulp.dest(paths.build));
-});
-
-/**
- * Build js and css
- */
-gulp.task('default', ['js', 'css'], function () {
- log('Analyze, Build CSS and JS');
-});
-
-/**
- * Remove all files from the build folder
- * One way to run clean before all tasks is to run
- * from the cmd line: gulp clean && gulp build
- * @return {Stream}
- */
-gulp.task('clean', function (cb) {
- log('Cleaning: ' + plug.util.colors.blue(paths.report));
- log('Cleaning: ' + plug.util.colors.blue(paths.build));
-
- var delPaths = [paths.build, paths.report];
- del(delPaths, cb);
-});
-
-/**
- * Run specs once and exit
- * To start servers and run midway specs as well:
- * gulp test --startServers
- * @return {Stream}
- */
-gulp.task('test', function (done) {
- startTests(true /*singleRun*/, done);
-});
-
-////////////////
-
-/**
- * Execute JSHint on given source files
- * @param {Array} sources
- * @param {String} overrideRcFile
- * @return {Stream}
- */
-function analyzejshint(sources, overrideRcFile) {
- var jshintrcFile = overrideRcFile || './.jshintrc';
- log('Running JSHint');
- return gulp
- .src(sources)
- .pipe(plug.jshint(jshintrcFile))
- .pipe(plug.jshint.reporter('jshint-stylish'));
-}
-
-/**
- * Execute JSCS on given source files
- * @param {Array} sources
- * @return {Stream}
- */
-function analyzejscs(sources) {
- log('Running JSCS');
- return gulp
- .src(sources)
- .pipe(plug.jscs('./.jscsrc'));
-}
-
-/**
- * Start the tests using karma.
- * @param {boolean} singleRun - True means run once and end (CI), or keep running (dev)
- * @param {Function} done - Callback to fire when karma is done
- * @return {undefined}
- */
-function startTests(singleRun, done) {
- karma.start({
- configFile: __dirname + '/karma.conf.js',
- singleRun: !!singleRun
- }, karmaCompleted);
-
- ////////////////
-
- function karmaCompleted() {
- done();
- }
-}
-
-/**
- * Formatter for bytediff to display the size changes after processing
- * @param {Object} data - byte data
- * @return {String} Difference in bytes, formatted
- */
-function bytediffFormatter(data) {
- var difference = (data.savings > 0) ? ' smaller.' : ' larger.';
- return data.fileName + ' went from ' +
- (data.startSize / 1000).toFixed(2) + ' kB to ' + (data.endSize / 1000).toFixed(2) + ' kB' +
- ' and is ' + formatPercent(1 - data.percent, 2) + '%' + difference;
-}
-
-/**
- * Format a number as a percentage
- * @param {Number} num Number to format as a percent
- * @param {Number} precision Precision of the decimal
- * @return {Number} Formatted perentage
- */
-function formatPercent(num, precision) {
- return (num * 100).toFixed(precision);
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/karma.conf.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/karma.conf.js
deleted file mode 100644
index a1e60ab4e5..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/karma.conf.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// Karma configuration
-// Generated on Thu Sep 04 2014 07:41:43 GMT-0400 (EDT)
-
-module.exports = function (config) {
- config.set({
-
- // base path that will be used to resolve all patterns (eg. files, exclude)
- basePath: '',
-
-
- // frameworks to use
- // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
- frameworks: ['qunit'],
-
- // list of files / patterns to load in the browser
- files: [
- 'node_modules/jquery/dist/jquery.min.js',
- 'build/toastr.css',
- 'toastr.js',
- 'node_modules/qunitjs/qunit/qunit.js',
- 'tests/unit/qunit-helper.js',
- 'tests/unit/toastr-tests.js'
- ],
-
-
- // list of files to exclude
- exclude: [],
-
-
- // preprocess matching files before serving them to the browser
- // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
- preprocessors: {
- 'toastr.js': 'coverage'
- },
-
-
- // test results reporter to use
- // possible values: 'dots', 'progress'
- // available reporters: https://npmjs.org/browse/keyword/karma-reporter
- reporters: ['progress', 'coverage'],
-
- coverageReporter: {
- type: 'lcov',
- dir: 'tests/coverage'
- },
-
- // web server port
- port: 9876,
-
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
-
- // enable / disable watching file and executing tests whenever any file changes
- autoWatch: false,
-
-
- // start these browsers
- // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
- browsers: ['PhantomJS'],
-
-
- // Continuous Integration mode
- // if true, Karma captures browsers, runs the tests and exits
- singleRun: true
- });
-};
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.css b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.css
deleted file mode 100644
index d86235a9f4..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.css
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Toastr
- * Copyright 2012-2014 John Papa and Hans Fjällemark.
- * All Rights Reserved.
- * Use, reproduction, distribution, and modification of this code is subject to the terms and
- * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
- *
- * Author: John Papa and Hans Fjällemark
- * Project: https://github.com/CodeSeven/toastr
- */
-.toast-title {
- font-weight: bold;
-}
-.toast-message {
- -ms-word-wrap: break-word;
- word-wrap: break-word;
-}
-.toast-message a,
-.toast-message label {
- color: #ffffff;
-}
-.toast-message a:hover {
- color: #cccccc;
- text-decoration: none;
-}
-.toast-close-button {
- position: relative;
- right: -0.3em;
- top: -0.3em;
- float: right;
- font-size: 20px;
- font-weight: bold;
- color: #ffffff;
- -webkit-text-shadow: 0 1px 0 #ffffff;
- text-shadow: 0 1px 0 #ffffff;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
-}
-.toast-close-button:hover,
-.toast-close-button:focus {
- color: #000000;
- text-decoration: none;
- cursor: pointer;
- opacity: 0.4;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
- filter: alpha(opacity=40);
-}
-/*Additional properties for button version
- iOS requires the button element instead of an anchor tag.
- If you want the anchor version, it requires `href="#"`.*/
-button.toast-close-button {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-.toast-top-full-width {
- top: 0;
- right: 0;
- width: 100%;
-}
-.toast-bottom-full-width {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-.toast-top-left {
- top: 12px;
- left: 12px;
-}
-.toast-top-right {
- top: 12px;
- right: 12px;
-}
-.toast-bottom-right {
- right: 12px;
- bottom: 12px;
-}
-.toast-bottom-left {
- bottom: 12px;
- left: 12px;
-}
-#toast-container {
- position: fixed;
- z-index: 999999;
- /*overrides*/
-
-}
-#toast-container * {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-#toast-container > div {
- margin: 0 0 6px;
- padding: 15px 15px 15px 50px;
- width: 300px;
- -moz-border-radius: 3px 3px 3px 3px;
- -webkit-border-radius: 3px 3px 3px 3px;
- border-radius: 3px 3px 3px 3px;
- background-position: 15px center;
- background-repeat: no-repeat;
- -moz-box-shadow: 0 0 12px #999999;
- -webkit-box-shadow: 0 0 12px #999999;
- box-shadow: 0 0 12px #999999;
- color: #ffffff;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
-}
-#toast-container > :hover {
- -moz-box-shadow: 0 0 12px #000000;
- -webkit-box-shadow: 0 0 12px #000000;
- box-shadow: 0 0 12px #000000;
- opacity: 1;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
- filter: alpha(opacity=100);
- cursor: pointer;
-}
-#toast-container > .toast-info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-error {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-success {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
-}
-#toast-container > .toast-warning {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
-}
-#toast-container.toast-top-full-width > div,
-#toast-container.toast-bottom-full-width > div {
- width: 96%;
- margin: auto;
-}
-.toast {
- background-color: #030303;
-}
-.toast-success {
- background-color: #51a351;
-}
-.toast-error {
- background-color: #bd362f;
-}
-.toast-info {
- background-color: #2f96b4;
-}
-.toast-warning {
- background-color: #f89406;
-}
-/*Responsive Design*/
-@media all and (max-width: 240px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 11em;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-}
-@media all and (min-width: 241px) and (max-width: 480px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 18em;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-}
-@media all and (min-width: 481px) and (max-width: 768px) {
- #toast-container > div {
- padding: 15px 15px 15px 50px;
- width: 25em;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.less b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.less
deleted file mode 100644
index 146fabeb18..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.less
+++ /dev/null
@@ -1,232 +0,0 @@
-// Mix-ins
-.borderRadius(@radius) {
- -moz-border-radius: @radius;
- -webkit-border-radius: @radius;
- border-radius: @radius;
-}
-
-.boxShadow(@boxShadow) {
- -moz-box-shadow: @boxShadow;
- -webkit-box-shadow: @boxShadow;
- box-shadow: @boxShadow;
-}
-
-.opacity(@opacity) {
- @opacityPercent: @opacity * 100;
- opacity: @opacity;
- -ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(Opacity=@{opacityPercent})";
- filter: ~"alpha(opacity=@{opacityPercent})";
-}
-
-.wordWrap(@wordWrap: break-word) {
- -ms-word-wrap: @wordWrap;
- word-wrap: @wordWrap;
-}
-
-// Variables
-@black: #000000;
-@grey: #999999;
-@light-grey: #CCCCCC;
-@white: #FFFFFF;
-@near-black: #030303;
-@green: #51A351;
-@red: #BD362F;
-@blue: #2F96B4;
-@orange: #F89406;
-
-// Styles
-.toast-title {
- font-weight: bold;
-}
-
-.toast-message {
- .wordWrap();
-
- a,
- label {
- color: @white;
- }
-
- a:hover {
- color: @light-grey;
- text-decoration: none;
- }
-}
-
-.toast-close-button {
- position: relative;
- right: -0.3em;
- top: -0.3em;
- float: right;
- font-size: 20px;
- font-weight: bold;
- color: @white;
- -webkit-text-shadow: 0 1px 0 rgba(255,255,255,1);
- text-shadow: 0 1px 0 rgba(255,255,255,1);
- .opacity(0.8);
-
- &:hover,
- &:focus {
- color: @black;
- text-decoration: none;
- cursor: pointer;
- .opacity(0.4);
- }
-}
-
-/*Additional properties for button version
- iOS requires the button element instead of an anchor tag.
- If you want the anchor version, it requires `href="#"`.*/
-button.toast-close-button {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-
-//#endregion
-
-.toast-top-full-width {
- top: 0;
- right: 0;
- width: 100%;
-}
-
-.toast-bottom-full-width {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-
-.toast-top-left {
- top: 12px;
- left: 12px;
-}
-
-.toast-top-right {
- top: 12px;
- right: 12px;
-}
-
-.toast-bottom-right {
- right: 12px;
- bottom: 12px;
-}
-
-.toast-bottom-left {
- bottom: 12px;
- left: 12px;
-}
-
-#toast-container {
- position: fixed;
- z-index: 999999;
-
- * {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- }
-
- > div {
- margin: 0 0 6px;
- padding: 15px 15px 15px 50px;
- width: 300px;
- .borderRadius(3px 3px 3px 3px);
- background-position: 15px center;
- background-repeat: no-repeat;
- .boxShadow(0 0 12px @grey);
- color: @white;
- .opacity(0.8);
- }
-
- > :hover {
- .boxShadow(0 0 12px @black);
- .opacity(1);
- cursor: pointer;
- }
-
- > .toast-info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
- }
-
- > .toast-error {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
- }
-
- > .toast-success {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
- }
-
- > .toast-warning {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
- }
-
- /*overrides*/
- &.toast-top-full-width > div,
- &.toast-bottom-full-width > div {
- width: 96%;
- margin: auto;
- }
-}
-
-.toast {
- background-color: @near-black;
-}
-
-.toast-success {
- background-color: @green;
-}
-
-.toast-error {
- background-color: @red;
-}
-
-.toast-info {
- background-color: @blue;
-}
-
-.toast-warning {
- background-color: @orange;
-}
-
-/*Responsive Design*/
-
-@media all and (max-width: 240px) {
- #toast-container {
-
- > div {
- padding: 8px 8px 8px 50px;
- width: 11em;
- }
-
- & .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
- }
-}
-
-@media all and (min-width: 241px) and (max-width: 480px) {
- #toast-container {
- > div {
- padding: 8px 8px 8px 50px;
- width: 18em;
- }
-
- & .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
- }
-}
-
-@media all and (min-width: 481px) and (max-width: 768px) {
- #toast-container {
- > div {
- padding: 15px 15px 15px 50px;
- width: 25em;
- }
- }
-}
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.min.css b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.min.css
deleted file mode 100644
index 40975cbd16..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:alpha(opacity=80);filter:alpha(opacity=80)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:alpha(opacity=40);filter:alpha(opacity=40)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:alpha(opacity=80);filter:alpha(opacity=80)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:alpha(opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=")!important}#toast-container>.toast-error{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=")!important}#toast-container>.toast-success{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==")!important}#toast-container>.toast-warning{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=")!important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.scss b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.scss
deleted file mode 100644
index 71f017ba12..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/content/toastr.scss
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Toastr
- * Version 2.0.1
- * Copyright 2012 John Papa and Hans Fjällemark.
- * All Rights Reserved.
- * Use, reproduction, distribution, and modification of this code is subject to the terms and
- * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
- *
- * Author: John Papa and Hans Fjällemark
- * Project: https://github.com/CodeSeven/toastr
- */
-.toast-title {
- font-weight: bold;
-}
-.toast-message {
- -ms-word-wrap: break-word;
- word-wrap: break-word;
-}
-.toast-message a,
-.toast-message label {
- color: #ffffff;
-}
-.toast-message a:hover {
- color: #cccccc;
- text-decoration: none;
-}
-
-.toast-close-button {
- position: relative;
- right: -0.3em;
- top: -0.3em;
- float: right;
- font-size: 20px;
- font-weight: bold;
- color: #ffffff;
- -webkit-text-shadow: 0 1px 0 #ffffff;
- text-shadow: 0 1px 0 #ffffff;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
-}
-.toast-close-button:hover,
-.toast-close-button:focus {
- color: #000000;
- text-decoration: none;
- cursor: pointer;
- opacity: 0.4;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
- filter: alpha(opacity=40);
-}
-
-/*Additional properties for button version
- iOS requires the button element instead of an anchor tag.
- If you want the anchor version, it requires `href="#"`.*/
-button.toast-close-button {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-.toast-top-full-width {
- top: 0;
- right: 0;
- width: 100%;
-}
-.toast-bottom-full-width {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-.toast-top-left {
- top: 12px;
- left: 12px;
-}
-.toast-top-right {
- top: 12px;
- right: 12px;
-}
-.toast-bottom-right {
- right: 12px;
- bottom: 12px;
-}
-.toast-bottom-left {
- bottom: 12px;
- left: 12px;
-}
-#toast-container {
- position: fixed;
- z-index: 999999;
- /*overrides*/
-
-}
-#toast-container * {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-#toast-container > div {
- margin: 0 0 6px;
- padding: 15px 15px 15px 50px;
- width: 300px;
- -moz-border-radius: 3px 3px 3px 3px;
- -webkit-border-radius: 3px 3px 3px 3px;
- border-radius: 3px 3px 3px 3px;
- background-position: 15px center;
- background-repeat: no-repeat;
- -moz-box-shadow: 0 0 12px #999999;
- -webkit-box-shadow: 0 0 12px #999999;
- box-shadow: 0 0 12px #999999;
- color: #ffffff;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
-}
-#toast-container > :hover {
- -moz-box-shadow: 0 0 12px #000000;
- -webkit-box-shadow: 0 0 12px #000000;
- box-shadow: 0 0 12px #000000;
- opacity: 1;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
- filter: alpha(opacity=100);
- cursor: pointer;
-}
-#toast-container > .toast-info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-error {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-success {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
-}
-#toast-container > .toast-warning {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
-}
-#toast-container.toast-top-full-width > div,
-#toast-container.toast-bottom-full-width > div {
- width: 96%;
- margin: auto;
-}
-.toast {
- background-color: #030303;
-}
-.toast-success {
- background-color: #51a351;
-}
-.toast-error {
- background-color: #bd362f;
-}
-.toast-info {
- background-color: #2f96b4;
-}
-.toast-warning {
- background-color: #f89406;
-}
-/*Responsive Design*/
-@media all and (max-width: 239px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 11em;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-}
-@media all and (min-width: 240px) and (max-width: 479px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 18em;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-}
-@media all and (min-width: 480px) and (max-width: 767px) {
- #toast-container > div {
- padding: 15px 15px 15px 50px;
- width: 25em;
- }
-}
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.js
deleted file mode 100644
index 87ae449a82..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.js
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Toastr
- * Copyright 2012-2014 John Papa and Hans Fjällemark.
- * All Rights Reserved.
- * Use, reproduction, distribution, and modification of this code is subject to the terms and
- * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
- *
- * Author: John Papa and Hans Fjällemark
- * ARIA Support: Greta Krafsig
- * Project: https://github.com/CodeSeven/toastr
- */
-; (function (define) {
- define(['jquery'], function ($) {
- return (function () {
- var $container;
- var listener;
- var toastId = 0;
- var toastType = {
- error: 'error',
- info: 'info',
- success: 'success',
- warning: 'warning'
- };
-
- var toastr = {
- clear: clear,
- remove: remove,
- error: error,
- getContainer: getContainer,
- info: info,
- options: {},
- subscribe: subscribe,
- success: success,
- version: '2.0.3',
- warning: warning
- };
-
- return toastr;
-
- //#region Accessible Methods
- function error(message, title, optionsOverride) {
- return notify({
- type: toastType.error,
- iconClass: getOptions().iconClasses.error,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function getContainer(options, create) {
- if (!options) { options = getOptions(); }
- $container = $('#' + options.containerId);
- if ($container.length) {
- return $container;
- }
- if(create) {
- $container = createContainer(options);
- }
- return $container;
- }
-
- function info(message, title, optionsOverride) {
- return notify({
- type: toastType.info,
- iconClass: getOptions().iconClasses.info,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function subscribe(callback) {
- listener = callback;
- }
-
- function success(message, title, optionsOverride) {
- return notify({
- type: toastType.success,
- iconClass: getOptions().iconClasses.success,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function warning(message, title, optionsOverride) {
- return notify({
- type: toastType.warning,
- iconClass: getOptions().iconClasses.warning,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function clear($toastElement) {
- var options = getOptions();
- if (!$container) { getContainer(options); }
- if (!clearToast($toastElement, options)) {
- clearContainer(options);
- }
- }
-
- function remove($toastElement) {
- var options = getOptions();
- if (!$container) { getContainer(options); }
- if ($toastElement && $(':focus', $toastElement).length === 0) {
- removeToast($toastElement);
- return;
- }
- if ($container.children().length) {
- $container.remove();
- }
- }
- //#endregion
-
- //#region Internal Methods
-
- function clearContainer(options){
- var toastsToClear = $container.children();
- for (var i = toastsToClear.length - 1; i >= 0; i--) {
- clearToast($(toastsToClear[i]), options);
- };
- }
-
- function clearToast($toastElement, options){
- if ($toastElement && $(':focus', $toastElement).length === 0) {
- $toastElement[options.hideMethod]({
- duration: options.hideDuration,
- easing: options.hideEasing,
- complete: function () { removeToast($toastElement); }
- });
- return true;
- }
- return false;
- }
-
- function createContainer(options) {
- $container = $('
')
- .attr('id', options.containerId)
- .addClass(options.positionClass)
- .attr('aria-live', 'polite')
- .attr('role', 'alert');
-
- $container.appendTo($(options.target));
- return $container;
- }
-
- function getDefaults() {
- return {
- tapToDismiss: true,
- toastClass: 'toast',
- containerId: 'toast-container',
- debug: false,
-
- showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
- showDuration: 300,
- showEasing: 'swing', //swing and linear are built into jQuery
- onShown: undefined,
- hideMethod: 'fadeOut',
- hideDuration: 1000,
- hideEasing: 'swing',
- onHidden: undefined,
-
- extendedTimeOut: 1000,
- iconClasses: {
- error: 'toast-error',
- info: 'toast-info',
- success: 'toast-success',
- warning: 'toast-warning'
- },
- iconClass: 'toast-info',
- positionClass: 'toast-top-right',
- timeOut: 5000, // Set timeOut and extendedTimeout to 0 to make it sticky
- titleClass: 'toast-title',
- messageClass: 'toast-message',
- target: 'body',
- closeHtml: '× ',
- newestOnTop: true
- };
- }
-
- function publish(args) {
- if (!listener) { return; }
- listener(args);
- }
-
- function notify(map) {
- var options = getOptions(),
- iconClass = map.iconClass || options.iconClass;
-
- if (typeof (map.optionsOverride) !== 'undefined') {
- options = $.extend(options, map.optionsOverride);
- iconClass = map.optionsOverride.iconClass || iconClass;
- }
-
- toastId++;
-
- $container = getContainer(options, true);
- var intervalId = null,
- $toastElement = $('
'),
- $titleElement = $('
'),
- $messageElement = $('
'),
- $closeElement = $(options.closeHtml),
- response = {
- toastId: toastId,
- state: 'visible',
- startTime: new Date(),
- options: options,
- map: map
- };
-
- if (map.iconClass) {
- $toastElement.addClass(options.toastClass).addClass(iconClass);
- }
-
- if (map.title) {
- $titleElement.append(map.title).addClass(options.titleClass);
- $toastElement.append($titleElement);
- }
-
- if (map.message) {
- $messageElement.append(map.message).addClass(options.messageClass);
- $toastElement.append($messageElement);
- }
-
- if (options.closeButton) {
- $closeElement.addClass('toast-close-button').attr("role", "button");
- $toastElement.prepend($closeElement);
- }
-
- $toastElement.hide();
- if (options.newestOnTop) {
- $container.prepend($toastElement);
- } else {
- $container.append($toastElement);
- }
-
-
- $toastElement[options.showMethod](
- { duration: options.showDuration, easing: options.showEasing, complete: options.onShown }
- );
-
- if (options.timeOut > 0) {
- intervalId = setTimeout(hideToast, options.timeOut);
- }
-
- $toastElement.hover(stickAround, delayedHideToast);
- if (!options.onclick && options.tapToDismiss) {
- $toastElement.click(hideToast);
- }
-
- if (options.closeButton && $closeElement) {
- $closeElement.click(function (event) {
- if( event.stopPropagation ) {
- event.stopPropagation();
- } else if( event.cancelBubble !== undefined && event.cancelBubble !== true ) {
- event.cancelBubble = true;
- }
- hideToast(true);
- });
- }
-
- if (options.onclick) {
- $toastElement.click(function () {
- options.onclick();
- hideToast();
- });
- }
-
- publish(response);
-
- if (options.debug && console) {
- console.log(response);
- }
-
- return $toastElement;
-
- function hideToast(override) {
- if ($(':focus', $toastElement).length && !override) {
- return;
- }
- return $toastElement[options.hideMethod]({
- duration: options.hideDuration,
- easing: options.hideEasing,
- complete: function () {
- removeToast($toastElement);
- if (options.onHidden && response.state !== 'hidden') {
- options.onHidden();
- }
- response.state = 'hidden';
- response.endTime = new Date();
- publish(response);
- }
- });
- }
-
- function delayedHideToast() {
- if (options.timeOut > 0 || options.extendedTimeOut > 0) {
- intervalId = setTimeout(hideToast, options.extendedTimeOut);
- }
- }
-
- function stickAround() {
- clearTimeout(intervalId);
- $toastElement.stop(true, true)[options.showMethod](
- { duration: options.showDuration, easing: options.showEasing }
- );
- }
- }
-
- function getOptions() {
- return $.extend({}, getDefaults(), toastr.options);
- }
-
- function removeToast($toastElement) {
- if (!$container) { $container = getContainer(); }
- if ($toastElement.is(':visible')) {
- return;
- }
- $toastElement.remove();
- $toastElement = null;
- if ($container.children().length === 0) {
- $container.remove();
- }
- }
- //#endregion
-
- })();
- });
-}(typeof define === 'function' && define.amd ? define : function (deps, factory) {
- if (typeof module !== 'undefined' && module.exports) { //Node
- module.exports = factory(require('jquery'));
- } else {
- window['toastr'] = factory(window['jQuery']);
- }
-}));
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.min.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.min.js
deleted file mode 100644
index 34508884c1..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(a){a(["jquery"],function(a){return function(){function b(a,b,c){return o({type:u.error,iconClass:p().iconClasses.error,message:a,optionsOverride:c,title:b})}function c(b,c){return b||(b=p()),r=a("#"+b.containerId),r.length?r:(c&&(r=l(b)),r)}function d(a,b,c){return o({type:u.info,iconClass:p().iconClasses.info,message:a,optionsOverride:c,title:b})}function e(a){s=a}function f(a,b,c){return o({type:u.success,iconClass:p().iconClasses.success,message:a,optionsOverride:c,title:b})}function g(a,b,c){return o({type:u.warning,iconClass:p().iconClasses.warning,message:a,optionsOverride:c,title:b})}function h(a){var b=p();r||c(b),k(a,b)||j(b)}function i(b){var d=p();return r||c(d),b&&0===a(":focus",b).length?void q(b):void(r.children().length&&r.remove())}function j(b){for(var c=r.children(),d=c.length-1;d>=0;d--)k(a(c[d]),b)}function k(b,c){return b&&0===a(":focus",b).length?(b[c.hideMethod]({duration:c.hideDuration,easing:c.hideEasing,complete:function(){q(b)}}),!0):!1}function l(b){return r=a("
").attr("id",b.containerId).addClass(b.positionClass).attr("aria-live","polite").attr("role","alert"),r.appendTo(a(b.target)),r}function m(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:"× ",newestOnTop:!0}}function n(a){s&&s(a)}function o(b){function d(b){return!a(":focus",j).length||b?j[g.hideMethod]({duration:g.hideDuration,easing:g.hideEasing,complete:function(){q(j),g.onHidden&&"hidden"!==o.state&&g.onHidden(),o.state="hidden",o.endTime=new Date,n(o)}}):void 0}function e(){(g.timeOut>0||g.extendedTimeOut>0)&&(i=setTimeout(d,g.extendedTimeOut))}function f(){clearTimeout(i),j.stop(!0,!0)[g.showMethod]({duration:g.showDuration,easing:g.showEasing})}var g=p(),h=b.iconClass||g.iconClass;"undefined"!=typeof b.optionsOverride&&(g=a.extend(g,b.optionsOverride),h=b.optionsOverride.iconClass||h),t++,r=c(g,!0);var i=null,j=a("
"),k=a("
"),l=a("
"),m=a(g.closeHtml),o={toastId:t,state:"visible",startTime:new Date,options:g,map:b};return b.iconClass&&j.addClass(g.toastClass).addClass(h),b.title&&(k.append(b.title).addClass(g.titleClass),j.append(k)),b.message&&(l.append(b.message).addClass(g.messageClass),j.append(l)),g.closeButton&&(m.addClass("toast-close-button").attr("role","button"),j.prepend(m)),j.hide(),g.newestOnTop?r.prepend(j):r.append(j),j[g.showMethod]({duration:g.showDuration,easing:g.showEasing,complete:g.onShown}),g.timeOut>0&&(i=setTimeout(d,g.timeOut)),j.hover(f,e),!g.onclick&&g.tapToDismiss&&j.click(d),g.closeButton&&m&&m.click(function(a){a.stopPropagation?a.stopPropagation():void 0!==a.cancelBubble&&a.cancelBubble!==!0&&(a.cancelBubble=!0),d(!0)}),g.onclick&&j.click(function(){g.onclick(),d()}),n(o),g.debug&&console&&console.log(o),j}function p(){return a.extend({},m(),v.options)}function q(a){r||(r=c()),a.is(":visible")||(a.remove(),a=null,0===r.children().length&&r.remove())}var r,s,t=0,u={error:"error",info:"info",success:"success",warning:"warning"},v={clear:h,remove:i,error:b,getContainer:c,info:d,options:{},subscribe:e,success:f,version:"2.0.3",warning:g};return v}()})}("function"==typeof define&&define.amd?define:function(a,b){"undefined"!=typeof module&&module.exports?module.exports=b(require("jquery")):window.toastr=b(window.jQuery)});
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.min.js.map b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.min.js.map
deleted file mode 100644
index 2f6c09a7fc..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/content/scripts/toastr.min.js.map
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-"version":3,
-"file":"toastr.min.js",
-"lineCount":1,
-"mappings":"CAWG,QAAS,CAACA,CAAD,CAAS,CACpBA,CAAM,CAAC,CAAC,QAAD,CAAU,CAAE,QAAS,CAACC,CAAD,CAAI,CAC/B,OAAQ,QAAS,CAAA,CAAG,CA2BnBC,SAASA,CAAK,CAACC,CAAO,CAAEC,CAAK,CAAEC,CAAjB,CAAkC,CAC/C,OAAOC,CAAM,CAAC,CACb,IAAI,CAAEC,CAASL,MAAM,CACrB,SAAS,CAAEM,CAAU,CAAA,CAAEC,YAAYP,MAAM,CACzC,OAAO,CAAEC,CAAO,CAChB,eAAe,CAAEE,CAAe,CAChC,KAAK,CAAED,CALM,CAAD,CADkC,CAUhDM,SAASA,CAAI,CAACP,CAAO,CAAEC,CAAK,CAAEC,CAAjB,CAAkC,CAC9C,OAAOC,CAAM,CAAC,CACb,IAAI,CAAEC,CAASG,KAAK,CACpB,SAAS,CAAEF,CAAU,CAAA,CAAEC,YAAYC,KAAK,CACxC,OAAO,CAAEP,CAAO,CAChB,eAAe,CAAEE,CAAe,CAChC,KAAK,CAAED,CALM,CAAD,CADiC,CAU/CO,SAASA,CAAS,CAACC,CAAD,CAAW,CAC5BC,CAAS,CAAED,CADiB,CAI7BE,SAASA,CAAO,CAACX,CAAO,CAAEC,CAAK,CAAEC,CAAjB,CAAkC,CACjD,OAAOC,CAAM,CAAC,CACb,IAAI,CAAEC,CAASO,QAAQ,CACvB,SAAS,CAAEN,CAAU,CAAA,CAAEC,YAAYK,QAAQ,CAC3C,OAAO,CAAEX,CAAO,CAChB,eAAe,CAAEE,CAAe,CAChC,KAAK,CAAED,CALM,CAAD,CADoC,CAUlDW,SAASA,CAAO,CAACZ,CAAO,CAAEC,CAAK,CAAEC,CAAjB,CAAkC,CACjD,OAAOC,CAAM,CAAC,CACb,IAAI,CAAEC,CAASQ,QAAQ,CACvB,SAAS,CAAEP,CAAU,CAAA,CAAEC,YAAYM,QAAQ,CAC3C,OAAO,CAAEZ,CAAO,CAChB,eAAe,CAAEE,CAAe,CAChC,KAAK,CAAED,CALM,CAAD,CADoC,CAUlDY,SAASA,CAAK,CAACC,CAAD,CAAgB,CAC7B,IAAIC,EAAUV,CAAU,CAAA,CAAE,CAE1B,GADKW,C,EAAcC,CAAY,CAACF,CAAD,CAAS,CACpCD,CAAc,EAAGhB,CAAC,CAAC,QAAQ,CAAEgB,CAAX,CAAyBI,OAAQ,GAAI,EAAG,CAC7DJ,CAAc,CAAAC,CAAOI,WAAP,CAAmB,CAAC,CACjC,QAAQ,CAAEJ,CAAOK,aAAa,CAC9B,MAAM,CAAEL,CAAOM,WAAW,CAC1B,QAAQ,CAAEC,QAAS,CAAA,CAAG,CAAEC,CAAW,CAACT,CAAD,CAAb,CAHW,CAAD,CAI/B,CACF,MAN6D,CAQ1DE,CAAUQ,SAAS,CAAA,CAAEN,O,EACxBF,CAAW,CAAAD,CAAOI,WAAP,CAAmB,CAAC,CAC9B,QAAQ,CAAEJ,CAAOK,aAAa,CAC9B,MAAM,CAAEL,CAAOM,WAAW,CAC1B,QAAQ,CAAEC,QAAS,CAAA,CAAG,CAAEN,CAAUS,OAAO,CAAA,CAAnB,CAHQ,CAAD,CAZF,CAuB9BC,SAASA,CAAW,CAAA,CAAG,CACtB,MAAO,CACN,YAAY,CAAE,CAAA,CAAI,CAClB,UAAU,CAAE,OAAO,CACnB,WAAW,CAAE,iBAAiB,CAC9B,KAAK,CAAE,CAAA,CAAK,CAEZ,UAAU,CAAE,QAAQ,CACpB,YAAY,CAAE,GAAG,CACjB,UAAU,CAAE,OAAO,CACnB,OAAO,CAAEC,SAAS,CAClB,UAAU,CAAE,SAAS,CACrB,YAAY,CAAE,GAAI,CAClB,UAAU,CAAE,OAAO,CACnB,QAAQ,CAAEA,SAAS,CAEnB,eAAe,CAAE,GAAI,CACrB,WAAW,CAAE,CACZ,KAAK,CAAE,aAAa,CACpB,IAAI,CAAE,YAAY,CAClB,OAAO,CAAE,eAAe,CACxB,OAAO,CAAE,eAJG,CAKZ,CACD,SAAS,CAAE,YAAY,CACvB,aAAa,CAAE,iBAAiB,CAChC,OAAO,CAAE,GAAI,CACb,UAAU,CAAE,aAAa,CACzB,YAAY,CAAE,eAAe,CAC7B,MAAM,CAAE,MAAM,CACd,SAAS,CAAE,2BAA0B,CACrC,WAAW,CAAE,CAAA,CA7BP,CADe,CAkCvBC,SAASA,CAAO,CAACC,CAAD,CAAO,CACjBnB,C,EAGLA,CAAQ,CAACmB,CAAD,CAJc,CAOvB1B,SAASA,CAAM,CAAC2B,CAAD,CAAM,CAuFpBC,SAASA,CAAS,CAACC,CAAD,CAAW,C,GACxB,CAAAlC,CAAC,CAAC,QAAQ,CAAEgB,CAAX,CAAyBI,OAAQ,EAAIc,E,OAGnClB,CAAc,CAAAC,CAAOI,WAAP,CAAmB,CAAC,CACxC,QAAQ,CAAEJ,CAAOK,aAAa,CAC9B,MAAM,CAAEL,CAAOM,WAAW,CAC1B,QAAQ,CAAEC,QAAS,CAAA,CAAG,CACrBC,CAAW,CAACT,CAAD,CAAe,CACtBC,CAAOkB,S,EACVlB,CAAOkB,SAAS,CAAA,CAAE,CAEnBC,CAAQC,MAAO,CAAE,QAAQ,CACzBD,CAAQE,QAAS,CAAE,IAAIC,I,CACvBT,CAAO,CAACM,CAAD,CAPc,CAHkB,CAAD,CAJZ,CAmB7BI,SAASA,CAAgB,CAAA,CAAG,EACvBvB,CAAOwB,QAAS,CAAE,CAAE,EAAGxB,CAAOyB,gBAAiB,CAAE,E,GACpDC,CAAW,CAAEC,UAAU,CAACX,CAAS,CAAEhB,CAAOyB,gBAAnB,EAFG,CAM5BG,SAASA,CAAW,CAAA,CAAG,CACtBC,YAAY,CAACH,CAAD,CAAY,CACxB3B,CAAa+B,KAAK,CAAC,CAAA,CAAD,CAAO,CAAA,CAAP,CAAa,CAAA9B,CAAO+B,WAAP,CAAmB,CACjD,CAAE,QAAQ,CAAE/B,CAAOgC,aAAa,CAAE,MAAM,CAAEhC,CAAOiC,WAAjD,CADiD,CAF5B,CA/GvB,IACCjC,EAAUV,CAAU,CAAA,EACpB4C,EAAYnB,CAAGmB,UAAW,EAAGlC,CAAOkC,UAAU,CAE3C,OAAQnB,CAAG5B,gBAAkB,EAAI,W,GACpCa,CAAQ,CAAEjB,CAACoD,OAAO,CAACnC,CAAO,CAAEe,CAAG5B,gBAAb,CAA8B,CAChD+C,CAAU,CAAEnB,CAAG5B,gBAAgB+C,UAAW,EAAGA,EAAS,CAGvDE,CAAO,EAAE,CAETnC,CAAW,CAAEC,CAAY,CAACF,CAAD,CAAS,CAClC,IACC0B,EAAa,KACb3B,EAAgBhB,CAAC,CAAC,QAAD,EACjBsD,EAAgBtD,CAAC,CAAC,QAAD,EACjBuD,EAAkBvD,CAAC,CAAC,QAAD,EACnBwD,EAAgBxD,CAAC,CAACiB,CAAOwC,UAAR,EACjBrB,EAAW,CACV,OAAO,CAAEiB,CAAO,CAChB,KAAK,CAAE,SAAS,CAChB,SAAS,CAAE,IAAId,IAAM,CACrB,OAAO,CAAEtB,CAAO,CAChB,GAAG,CAAEe,CALK,CAMV,CA4DF,OA1DIA,CAAGmB,U,EACNnC,CAAa0C,SAAS,CAACzC,CAAO0C,WAAR,CAAoBD,SAAS,CAACP,CAAD,CAAW,CAG3DnB,CAAG7B,M,GACNmD,CAAaM,OAAO,CAAC5B,CAAG7B,MAAJ,CAAWuD,SAAS,CAACzC,CAAO4C,WAAR,CAAoB,CAC5D7C,CAAa4C,OAAO,CAACN,CAAD,EAAe,CAGhCtB,CAAG9B,Q,GACNqD,CAAeK,OAAO,CAAC5B,CAAG9B,QAAJ,CAAawD,SAAS,CAACzC,CAAO6C,aAAR,CAAsB,CAClE9C,CAAa4C,OAAO,CAACL,CAAD,EAAiB,CAGlCtC,CAAO8C,Y,GACVP,CAAaE,SAAS,CAAC,oBAAD,CAAsB,CAC5C1C,CAAagD,QAAQ,CAACR,CAAD,EAAe,CAGrCxC,CAAaiD,KAAK,CAAA,CAAE,CAChBhD,CAAOiD,YAAX,CACChD,CAAU8C,QAAQ,CAAChD,CAAD,CADnB,CAGCE,CAAU0C,OAAO,CAAC5C,CAAD,C,CAIlBA,CAAc,CAAAC,CAAO+B,WAAP,CAAmB,CAChC,CAAE,QAAQ,CAAE/B,CAAOgC,aAAa,CAAE,MAAM,CAAEhC,CAAOiC,WAAW,CAAE,QAAQ,CAAEjC,CAAOkD,QAA/E,CADgC,CAEhC,CACGlD,CAAOwB,QAAS,CAAE,C,GACrBE,CAAW,CAAEC,UAAU,CAACX,CAAS,CAAEhB,CAAOwB,QAAnB,EAA4B,CAGpDzB,CAAaoD,MAAM,CAACvB,CAAW,CAAEL,CAAd,CAA+B,CAC9C,CAACvB,CAAOoD,QAAS,EAAGpD,CAAOqD,a,EAC9BtD,CAAauD,MAAM,CAACtC,CAAD,CAAW,CAE3BhB,CAAO8C,YAAa,EAAGP,C,EAC1BA,CAAae,MAAM,CAAC,QAAS,CAACC,CAAD,CAAQ,CACpCA,CAAKC,gBAAgB,CAAA,CAAE,CACvBxC,CAAS,CAAC,CAAA,CAAD,CAF2B,CAAlB,CAGjB,CAGChB,CAAOoD,Q,EACVrD,CAAauD,MAAM,CAAC,QAAS,CAAA,CAAG,CAC/BtD,CAAOoD,QAAQ,CAAA,CAAE,CACjBpC,CAAS,CAAA,CAFsB,CAAb,CAGjB,CAGHH,CAAO,CAACM,CAAD,CAAU,CAEbnB,CAAOyD,MAAO,EAAGC,O,EACpBA,OAAOC,IAAI,CAACxC,CAAD,CAAU,CAGfpB,CArFa,CAuHrBG,SAASA,CAAY,CAACF,CAAD,CAAU,CAU9B,OATKA,C,GAAWA,CAAQ,CAAEV,CAAU,CAAA,EAAE,CACtCW,CAAW,CAAElB,CAAC,CAAC,GAAI,CAAEiB,CAAO4D,YAAd,CAA2B,CACrC3D,CAAUE,Q,CACNF,C,EAERA,CAAW,CAAElB,CAAC,CAAC,QAAD,CACb8E,KAAK,CAAC,IAAI,CAAE7D,CAAO4D,YAAd,CACLnB,SAAS,CAACzC,CAAO8D,cAAR,CAAuB,CACjC7D,CAAU8D,SAAS,CAAChF,CAAC,CAACiB,CAAOgE,OAAR,CAAF,CAAmB,CAC/B/D,EAVuB,CAa/BX,SAASA,CAAU,CAAA,CAAG,CACrB,OAAOP,CAACoD,OAAO,CAAC,CAAA,CAAE,CAAExB,CAAW,CAAA,CAAE,CAAEsD,CAAMjE,QAA1B,CADM,CAItBQ,SAASA,CAAW,CAACT,CAAD,CAAgB,EAC9BE,C,GAAcA,CAAW,CAAEC,CAAY,CAAA,EAAE,CAC1CH,CAAamE,GAAG,CAAC,UAAD,E,GAGpBnE,CAAaW,OAAO,CAAA,CAAE,CACtBX,CAAc,CAAE,IAAI,CAChBE,CAAUQ,SAAS,CAAA,CAAEN,OAAQ,GAAI,C,EACpCF,CAAUS,OAAO,CAAA,EARiB,CA9QpC,IACIT,EACAN,EACAyC,EAAU,EACV/C,EAAY,CACf,KAAK,CAAE,OAAO,CACd,IAAI,CAAE,MAAM,CACZ,OAAO,CAAE,SAAS,CAClB,OAAO,CAAE,SAJM,EAOZ4E,EAAS,CACZ,KAAK,CAAEnE,CAAK,CACZ,KAAK,CAAEd,CAAK,CACZ,YAAY,CAAEkB,CAAY,CAC1B,IAAI,CAAEV,CAAI,CACV,OAAO,CAAE,CAAA,CAAE,CACX,SAAS,CAAEC,CAAS,CACpB,OAAO,CAAEG,CAAO,CAChB,OAAO,CAnBM,OAmBG,CAChB,OAAO,CAAEC,CATG,CAXQ,CAuBrB,OAAOoE,CAxBY,CA4RlB,CAAA,CA7R6B,CAA1B,CADc,EAgSpB,CAAC,OAAOnF,MAAO,EAAI,UAAW,EAAGA,MAAMqF,IAAK,CAAErF,MAAO,CAAE,QAAS,CAACsF,CAAI,CAAEC,CAAP,CAAgB,CAC5E,OAAOC,MAAO,EAAI,WAAY,EAAGA,MAAMC,QAA3C,CACCD,MAAMC,QAAS,CAAEF,CAAO,CAACG,OAAO,CAACJ,CAAK,CAAA,CAAA,CAAN,CAAR,CADzB,CAGCK,MAAOR,OAAU,CAAEI,CAAO,CAACI,MAAOC,OAAR,CAJqD,CAAhF,C",
-"sources":["toastr.js"],
-"names":["define","$","error","message","title","optionsOverride","notify","toastType","getOptions","iconClasses","info","subscribe","callback","listener","success","warning","clear","$toastElement","options","$container","getContainer","length","hideMethod","hideDuration","hideEasing","complete","removeToast","children","remove","getDefaults","undefined","publish","args","map","hideToast","override","onHidden","response","state","endTime","Date","delayedhideToast","timeOut","extendedTimeOut","intervalId","setTimeout","stickAround","clearTimeout","stop","showMethod","showDuration","showEasing","iconClass","extend","toastId","$titleElement","$messageElement","$closeElement","closeHtml","addClass","toastClass","append","titleClass","messageClass","closeButton","prepend","hide","newestOnTop","onShown","hover","onclick","tapToDismiss","click","event","stopPropagation","debug","console","log","containerId","attr","positionClass","appendTo","target","toastr","is","amd","deps","factory","module","exports","require","window","jQuery"]
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.0.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.0.nupkg
deleted file mode 100644
index 0be0d704bd..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.0.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.0.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.0.nuspec
deleted file mode 100644
index 92ce5ef452..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.0.nuspec
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
- 1.0.0
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
-
-
-
- toastr
- toastr
- false
- 3 Easy Steps:
-
-1) Link to toastr.css and toastr-responsive.css
-2) Link to toastr.js
-3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.1.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.1.nupkg
deleted file mode 100644
index afb7a2269e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.1.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.1.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.1.nuspec
deleted file mode 100644
index d73cd002ac..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.1.nuspec and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.2.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.2.nupkg
deleted file mode 100644
index 3ebbc75571..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.2.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.2.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.2.nuspec
deleted file mode 100644
index 79dd9a25b2..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.2.nuspec and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.3.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.3.nupkg
deleted file mode 100644
index 71335bed42..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.3.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.3.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.3.nuspec
deleted file mode 100644
index 94071f69bd..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.0.3.nuspec
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- toastr
- 1.0.2
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- false
- 3 Easy Steps:
-
-1) Link to toastr.css and toastr-responsive.css
-2) Link to toastr.js
-3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Minor updates for long unbroken string going outside toast and new feature to keep the toast around after hover-off for an extended timeout.
-
-Set extendedTimeOut and timeOut to 0 to avoid toastr from fading away.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.0.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.0.nupkg
deleted file mode 100644
index 555e321ad1..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.0.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.0.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.0.nuspec
deleted file mode 100644
index a65e371434..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.0.nuspec
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
- toastr
- 1.1.0
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added AMD support (and backwards compat with non AMD), toastr.clear() method, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.1.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.1.nupkg
deleted file mode 100644
index b5cf330ade..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.1.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.1.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.1.nuspec
deleted file mode 100644
index ee508fd109..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.1.nuspec
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
- toastr
- 1.1.1
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added AMD support (and backwards compat with non AMD), toastr.clear() method, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.2.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.2.nupkg
deleted file mode 100644
index ecca818d8e..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.2.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.2.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.2.nuspec
deleted file mode 100644
index 96caba573f..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.2.nuspec
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
- toastr
- 1.1.2
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.3.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.3.nupkg
deleted file mode 100644
index 068a54114d..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.3.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.1.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.1.nupkg
deleted file mode 100644
index 93ca4dfde6..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.1.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.1.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.1.nuspec
deleted file mode 100644
index c3fe23768c..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.1.nuspec
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- toastr
- 1.1.4.1
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
-
-Fix to the toastr.min.js file
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.2.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.2.nupkg
deleted file mode 100644
index e92fdd46e4..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.2.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.2.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.2.nuspec
deleted file mode 100644
index e9c1ff4ab6..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.2.nuspec
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- toastr
- 1.1.4.2
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
-
-Fix to the toastr.min.js file
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.nupkg
deleted file mode 100644
index badab22354..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.nuspec
deleted file mode 100644
index 5578b3f87d..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.4.nuspec
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- toastr
- 1.1.4
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
-
-Fix to the toastr.min.js file
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.5.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.5.nupkg
deleted file mode 100644
index 9dc0442875..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.5.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.5.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.5.nuspec
deleted file mode 100644
index 73419fadca..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.1.5.nuspec
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- toastr
- 1.1.5
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Now using SemVer for JavaScript files.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.0.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.0.nupkg
deleted file mode 100644
index a63ec724b7..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.0.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.0.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.0.nuspec
deleted file mode 100644
index d667d5654d..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.0.nuspec
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- toastr
- 1.2.0
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added getContainer().
-Fixed clear() bug.
-Removed semver from file name.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.1.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.1.nupkg
deleted file mode 100644
index 34bc06054b..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.1.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.1.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.1.nuspec
deleted file mode 100644
index bbd307fe35..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.1.nuspec
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- toastr
- 1.2.1
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added getContainer().
-Fixed clear() bug.
-Removed semver from file name.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.2.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.2.nupkg
deleted file mode 100644
index 75ee4ae591..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.2.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.2.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.2.nuspec
deleted file mode 100644
index cca81874bb..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.2.2.nuspec
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- toastr
- 1.2.2
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added getContainer().
-Fixed clear() bug.
-Removed semver from file name.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.0.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.0.nupkg
deleted file mode 100644
index b4dfe38ff4..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.0.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.0.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.0.nuspec
deleted file mode 100644
index c17279757d..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.0.nuspec
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
- toastr
- 1.3.0
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Added onFadeIn and onFadeOut callbacks.
- toastr.options.onFadeIn = function() { console.log('hello'); }
-Added option <code>newestOnTop</code> to show toasts in oldest or newest first order.
- toastr.options.newestOnTop = false;
-Fixed margins on full width toasts
-Added LESS file.
-Added min file for JS and CSS
-Added missing vendor prefixes in CSS.
-Various minor bug fixes.
-Added unit tests for new features.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.1.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.1.nupkg
deleted file mode 100644
index a1eb1ca399..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.1.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.1.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.1.nuspec
deleted file mode 100644
index 8bf2963dc8..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.1.3.1.nuspec
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
- toastr
- 1.3.1
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- https://github.com/CodeSeven/toastr
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- v.1.3.1
-Added new API for toastr.subscribe so you can be alerted when toasts appear and disappear.
-
-toastr.subscribe(function (args) {
- // args contains the toast options and data
-}
-
-Added support for glimpse.toastr.js plugin. https://github.com/johnpapa/glimpse.toastr
-
-Added toastId, state (visible/hidden), startTime and endTime to the toastr info response (available in the coneol, glimpse.toastr plugin, or via the subscribe callback).
-
-Fixed bug with stacking toasts when clear all toasts occurs first.
-
-v1.2.2
-
-Added onFadeIn and onFadeOut callbacks.
- toastr.options.onFadeIn = function() { console.log('hello'); }
-Added option <code>newestOnTop</code> to show toasts in oldest or newest first order.
- toastr.options.newestOnTop = false;
-Fixed margins on full width toasts
-Added LESS file.
-Added min file for JS and CSS
-Added missing vendor prefixes in CSS.
-Various minor bug fixes.
-Added unit tests for new features.
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.0-rc1.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.0-rc1.nupkg
deleted file mode 100644
index fe2dabd4a1..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.0-rc1.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.0-rc1.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.0-rc1.nuspec
deleted file mode 100644
index d13d8e1b14..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.0-rc1.nuspec
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
- toastr
- 2.0.0-rc1
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- http://toastrjs.com/
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- The following animations options have been deprecated and should be replaced:
-
-Replace options.fadeIn with options.showDuration
-Replace options.onFadeIn with options.onShown
-Replace options.fadeOut with options.hideDuration
-Replace options.onFadeOut with options.onHidden
-
-Optional 'close' button, bug fixes, and improved responsive design.
-
-For other changes, see http://toastrjs.com
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.1.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.1.nupkg
deleted file mode 100644
index a3a98b2a2f..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.1.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.1.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.1.nuspec
deleted file mode 100644
index 09b937d49c..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.1.nuspec
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
- toastr
- 2.0.1
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- http://toastrjs.com/
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- The following animations options have been deprecated and should be replaced:
-
-Replace options.fadeIn with options.showDuration
-Replace options.onFadeIn with options.onShown
-Replace options.fadeOut with options.hideDuration
-Replace options.onFadeOut with options.onHidden
-
-Optional 'close' button, bug fixes, and improved responsive design.
-
-For other changes, see http://toastrjs.com
- Copyright © 2012 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.2.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.2.nupkg
deleted file mode 100644
index 2efdb7adc4..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.2.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.2.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.2.nuspec
deleted file mode 100644
index 1f76718f46..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.2.nuspec
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
- toastr
- 2.0.2
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- http://toastrjs.com/
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Change log: https://github.com/CodeSeven/toastr/blob/master/CHANGELOG.md
- Copyright © 2012-2014 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.3.nupkg b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.3.nupkg
deleted file mode 100644
index 6389cdf62c..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.3.nupkg and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.3.nuspec b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.3.nuspec
deleted file mode 100644
index 1e6133a527..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/nuget/toastr.2.0.3.nuspec
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
- toastr
- 2.0.3
- toastr
- John Papa,Hans Fjällemark
- John Papa,Hans Fjällemark
- http://www.opensource.org/licenses/mit-license.php
- http://toastrjs.com/
- http://johnpapa.net/wp-content/images/toastr-icon.png
- false
- 3 Easy Steps:
-
-(1) Link to toastr.css
-(2) Link to toastr.js
-(3) Use toastr to display a toast for info, success, warning or error
-
-// Display an info toast with no title
-toastr.info('Are you the 6 fingered man?')
-
-*** For other API calls, see the demo
- Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
- Change log: https://github.com/CodeSeven/toastr/blob/master/CHANGELOG.md
- Copyright © 2012-2014 Hans Fjällemark & John Papa.
- en-US
- toastr, toast, notification, dialog, jquery
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/package.json b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/package.json
deleted file mode 100644
index b4a81e133f..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "name": "toastr",
- "filename": "build/toastr.min.js",
- "main": "toastr.js",
- "style": "build/toastr.min.css",
- "version": "2.1.3",
- "description": "ToastrJS is a JavaScript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.",
- "homepage": "http://www.toastrjs.com",
- "keywords": [
- "Toastr",
- "ToastrJS",
- "toastr.js"
- ],
- "maintainers": [
- {
- "name": "John Papa",
- "web": "http://www.johnpapa.net",
- "twitter": "@john_papa"
- },
- {
- "name": "Tim Ferrell",
- "web": "https://twitter.com/ferrell_tim",
- "twitter": "@ferrell_tim"
- }
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/CodeSeven/toastr.git"
- },
- "bugs": "http://stackoverflow.com/questions/tagged/toastr",
- "licenses": [
- {
- "type": "MIT",
- "url": "http://www.opensource.org/licenses/mit-license.php"
- }
- ],
- "dependencies": {
- "jquery": ">=1.12.0"
- },
- "devDependencies": {
- "gulp": "^3.8.10",
- "gulp-bytediff": "^0.2.0",
- "gulp-jscs": "^1.3.0",
- "gulp-jshint": "^1.9.0",
- "gulp-less": "^3.0.3",
- "gulp-load-plugins": "^0.7.1",
- "gulp-load-utils": "0.0.4",
- "gulp-minify-css": "^0.3.11",
- "gulp-rename": "^1.2.0",
- "gulp-sourcemaps": "^1.2.8",
- "gulp-task-listing": "^0.3.0",
- "gulp-uglify": "^1.0.1",
- "gulp-util": "^3.0.1",
- "jquery": "^2.1.1",
- "jshint-stylish": "^1.0.0",
- "karma": "^0.12.25",
- "karma-coverage": "^0.2.6",
- "karma-phantomjs-launcher": "^0.1.4",
- "karma-qunit": "^0.1.3",
- "merge-stream": "^0.1.6",
- "phantomjs": "^1.9.7-15",
- "plato": "^1.2.2",
- "qunitjs": "~1.14.0"
- },
- "scripts": {
- "test": "gulp test"
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/release checklist.md b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/release checklist.md
deleted file mode 100644
index 52e5a83f8f..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/release checklist.md
+++ /dev/null
@@ -1,32 +0,0 @@
-Toastr Release Checklist
-
-1. Update Toastr Version
- * toastr.js
- * bower.json (toastr-bower repo)
- * package.json
- * nuget versions and dependency versions
- * readme file for github repo
- * Consider HotTowel VSIX
-2. Gulp
- * run main demo
- * `gulp analyze`
- * `gulp test`
- * `gulp`
-3. Nuget
- * Copy new files in
- * Build
- * Test
-4. CDNJS
- * Update CDNJS
-5. Update Website with New Downloads
-6. Publish Bower
- * Include License and Readme
- * Test Locally
- * Update Github repo toastr-bower
- * Github tag
- * Register with Bower
-7. Publish Nugets
-8. Release on Github
- * Tag with semver
- * Attach all artifacts
-9. Blog post
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/qunit/qunit.css b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/qunit/qunit.css
deleted file mode 100644
index 7ba3f9a30b..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/qunit/qunit.css
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
- font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
- margin: 0;
- padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
- padding: 0.5em 0 0.5em 1em;
-
- color: #8699a4;
- background-color: #0d3349;
-
- font-size: 1.5em;
- line-height: 1em;
- font-weight: normal;
-
- border-radius: 5px 5px 0 0;
- -moz-border-radius: 5px 5px 0 0;
- -webkit-border-top-right-radius: 5px;
- -webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
- text-decoration: none;
- color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
- color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
- display: inline-block;
- padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
- height: 5px;
-}
-
-#qunit-testrunner-toolbar {
- padding: 0.5em 0 0.5em 2em;
- color: #5E740B;
- background-color: #eee;
- overflow: hidden;
-}
-
-#qunit-userAgent {
- padding: 0.5em 0 0.5em 2.5em;
- background-color: #2b81af;
- color: #fff;
- text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
- float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
- list-style-position: inside;
-}
-
-#qunit-tests li {
- padding: 0.4em 0.5em 0.4em 2.5em;
- border-bottom: 1px solid #fff;
- list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
- display: none;
-}
-
-#qunit-tests li strong {
- cursor: pointer;
-}
-
-#qunit-tests li a {
- padding: 0.5em;
- color: #c2ccd1;
- text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
- color: #000;
-}
-
-#qunit-tests li .runtime {
- float: right;
- font-size: smaller;
-}
-
-.qunit-assert-list {
- margin-top: 0.5em;
- padding: 0.5em;
-
- background-color: #fff;
-
- border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-}
-
-.qunit-collapsed {
- display: none;
-}
-
-#qunit-tests table {
- border-collapse: collapse;
- margin-top: .2em;
-}
-
-#qunit-tests th {
- text-align: right;
- vertical-align: top;
- padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
- vertical-align: top;
-}
-
-#qunit-tests pre {
- margin: 0;
- white-space: pre-wrap;
- word-wrap: break-word;
-}
-
-#qunit-tests del {
- background-color: #e0f2be;
- color: #374e0c;
- text-decoration: none;
-}
-
-#qunit-tests ins {
- background-color: #ffcaca;
- color: #500;
- text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts { color: black; }
-#qunit-tests b.passed { color: #5E740B; }
-#qunit-tests b.failed { color: #710909; }
-
-#qunit-tests li li {
- padding: 5px;
- background-color: #fff;
- border-bottom: none;
- list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
- color: #3c510c;
- background-color: #fff;
- border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected { color: #999999; }
-
-#qunit-banner.qunit-pass { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
- color: #710909;
- background-color: #fff;
- border-left: 10px solid #EE5757;
- white-space: pre;
-}
-
-#qunit-tests > li:last-child {
- border-radius: 0 0 5px 5px;
- -moz-border-radius: 0 0 5px 5px;
- -webkit-border-bottom-right-radius: 5px;
- -webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name { color: #000000; }
-
-#qunit-tests .fail .test-actual { color: #EE5757; }
-#qunit-tests .fail .test-expected { color: green; }
-
-#qunit-banner.qunit-fail { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
- padding: 0.5em 0.5em 0.5em 2.5em;
-
- color: #2b81af;
- background-color: #D2E0E6;
-
- border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
- font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
- position: absolute;
- top: -10000px;
- left: -10000px;
- width: 1000px;
- height: 1000px;
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/qunit/qunit.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/qunit/qunit.js
deleted file mode 100644
index 84c73907de..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/qunit/qunit.js
+++ /dev/null
@@ -1,2212 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-
-(function( window ) {
-
-var QUnit,
- assert,
- config,
- onErrorFnPrev,
- testId = 0,
- fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
- toString = Object.prototype.toString,
- hasOwn = Object.prototype.hasOwnProperty,
- // Keep a local reference to Date (GH-283)
- Date = window.Date,
- setTimeout = window.setTimeout,
- defined = {
- setTimeout: typeof window.setTimeout !== "undefined",
- sessionStorage: (function() {
- var x = "qunit-test-string";
- try {
- sessionStorage.setItem( x, x );
- sessionStorage.removeItem( x );
- return true;
- } catch( e ) {
- return false;
- }
- }())
- },
- /**
- * Provides a normalized error string, correcting an issue
- * with IE 7 (and prior) where Error.prototype.toString is
- * not properly implemented
- *
- * Based on http://es5.github.com/#x15.11.4.4
- *
- * @param {String|Error} error
- * @return {String} error message
- */
- errorString = function( error ) {
- var name, message,
- errorString = error.toString();
- if ( errorString.substring( 0, 7 ) === "[object" ) {
- name = error.name ? error.name.toString() : "Error";
- message = error.message ? error.message.toString() : "";
- if ( name && message ) {
- return name + ": " + message;
- } else if ( name ) {
- return name;
- } else if ( message ) {
- return message;
- } else {
- return "Error";
- }
- } else {
- return errorString;
- }
- },
- /**
- * Makes a clone of an object using only Array or Object as base,
- * and copies over the own enumerable properties.
- *
- * @param {Object} obj
- * @return {Object} New object with only the own properties (recursively).
- */
- objectValues = function( obj ) {
- // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
- /*jshint newcap: false */
- var key, val,
- vals = QUnit.is( "array", obj ) ? [] : {};
- for ( key in obj ) {
- if ( hasOwn.call( obj, key ) ) {
- val = obj[key];
- vals[key] = val === Object(val) ? objectValues(val) : val;
- }
- }
- return vals;
- };
-
-function Test( settings ) {
- extend( this, settings );
- this.assertions = [];
- this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
- init: function() {
- var a, b, li,
- tests = id( "qunit-tests" );
-
- if ( tests ) {
- b = document.createElement( "strong" );
- b.innerHTML = this.nameHtml;
-
- // `a` initialized at top of scope
- a = document.createElement( "a" );
- a.innerHTML = "Rerun";
- a.href = QUnit.url({ testNumber: this.testNumber });
-
- li = document.createElement( "li" );
- li.appendChild( b );
- li.appendChild( a );
- li.className = "running";
- li.id = this.id = "qunit-test-output" + testId++;
-
- tests.appendChild( li );
- }
- },
- setup: function() {
- if (
- // Emit moduleStart when we're switching from one module to another
- this.module !== config.previousModule ||
- // They could be equal (both undefined) but if the previousModule property doesn't
- // yet exist it means this is the first test in a suite that isn't wrapped in a
- // module, in which case we'll just emit a moduleStart event for 'undefined'.
- // Without this, reporters can get testStart before moduleStart which is a problem.
- !hasOwn.call( config, "previousModule" )
- ) {
- if ( hasOwn.call( config, "previousModule" ) ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.previousModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
- config.previousModule = this.module;
- config.moduleStats = { all: 0, bad: 0 };
- runLoggingCallbacks( "moduleStart", QUnit, {
- name: this.module
- });
- }
-
- config.current = this;
-
- this.testEnvironment = extend({
- setup: function() {},
- teardown: function() {}
- }, this.moduleTestEnvironment );
-
- this.started = +new Date();
- runLoggingCallbacks( "testStart", QUnit, {
- name: this.testName,
- module: this.module
- });
-
- /*jshint camelcase:false */
-
-
- /**
- * Expose the current test environment.
- *
- * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
- */
- QUnit.current_testEnvironment = this.testEnvironment;
-
- /*jshint camelcase:true */
-
- if ( !config.pollution ) {
- saveGlobal();
- }
- if ( config.notrycatch ) {
- this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
- return;
- }
- try {
- this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
- } catch( e ) {
- QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
- }
- },
- run: function() {
- config.current = this;
-
- var running = id( "qunit-testresult" );
-
- if ( running ) {
- running.innerHTML = "Running: " + this.nameHtml;
- }
-
- if ( this.async ) {
- QUnit.stop();
- }
-
- this.callbackStarted = +new Date();
-
- if ( config.notrycatch ) {
- this.callback.call( this.testEnvironment, QUnit.assert );
- this.callbackRuntime = +new Date() - this.callbackStarted;
- return;
- }
-
- try {
- this.callback.call( this.testEnvironment, QUnit.assert );
- this.callbackRuntime = +new Date() - this.callbackStarted;
- } catch( e ) {
- this.callbackRuntime = +new Date() - this.callbackStarted;
-
- QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
- // else next test will carry the responsibility
- saveGlobal();
-
- // Restart the tests if they're blocking
- if ( config.blocking ) {
- QUnit.start();
- }
- }
- },
- teardown: function() {
- config.current = this;
- if ( config.notrycatch ) {
- if ( typeof this.callbackRuntime === "undefined" ) {
- this.callbackRuntime = +new Date() - this.callbackStarted;
- }
- this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
- return;
- } else {
- try {
- this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
- } catch( e ) {
- QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
- }
- }
- checkPollution();
- },
- finish: function() {
- config.current = this;
- if ( config.requireExpects && this.expected === null ) {
- QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
- } else if ( this.expected !== null && this.expected !== this.assertions.length ) {
- QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
- } else if ( this.expected === null && !this.assertions.length ) {
- QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
- }
-
- var i, assertion, a, b, time, li, ol,
- test = this,
- good = 0,
- bad = 0,
- tests = id( "qunit-tests" );
-
- this.runtime = +new Date() - this.started;
- config.stats.all += this.assertions.length;
- config.moduleStats.all += this.assertions.length;
-
- if ( tests ) {
- ol = document.createElement( "ol" );
- ol.className = "qunit-assert-list";
-
- for ( i = 0; i < this.assertions.length; i++ ) {
- assertion = this.assertions[i];
-
- li = document.createElement( "li" );
- li.className = assertion.result ? "pass" : "fail";
- li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
- ol.appendChild( li );
-
- if ( assertion.result ) {
- good++;
- } else {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
-
- // store result when possible
- if ( QUnit.config.reorder && defined.sessionStorage ) {
- if ( bad ) {
- sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
- } else {
- sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
- }
- }
-
- if ( bad === 0 ) {
- addClass( ol, "qunit-collapsed" );
- }
-
- // `b` initialized at top of scope
- b = document.createElement( "strong" );
- b.innerHTML = this.nameHtml + " (" + bad + " , " + good + " , " + this.assertions.length + ") ";
-
- addEvent(b, "click", function() {
- var next = b.parentNode.lastChild,
- collapsed = hasClass( next, "qunit-collapsed" );
- ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
- });
-
- addEvent(b, "dblclick", function( e ) {
- var target = e && e.target ? e.target : window.event.srcElement;
- if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
- target = target.parentNode;
- }
- if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
- window.location = QUnit.url({ testNumber: test.testNumber });
- }
- });
-
- // `time` initialized at top of scope
- time = document.createElement( "span" );
- time.className = "runtime";
- time.innerHTML = this.runtime + " ms";
-
- // `li` initialized at top of scope
- li = id( this.id );
- li.className = bad ? "fail" : "pass";
- li.removeChild( li.firstChild );
- a = li.firstChild;
- li.appendChild( b );
- li.appendChild( a );
- li.appendChild( time );
- li.appendChild( ol );
-
- } else {
- for ( i = 0; i < this.assertions.length; i++ ) {
- if ( !this.assertions[i].result ) {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
- }
-
- runLoggingCallbacks( "testDone", QUnit, {
- name: this.testName,
- module: this.module,
- failed: bad,
- passed: this.assertions.length - bad,
- total: this.assertions.length,
- duration: this.runtime
- });
-
- QUnit.reset();
-
- config.current = undefined;
- },
-
- queue: function() {
- var bad,
- test = this;
-
- synchronize(function() {
- test.init();
- });
- function run() {
- // each of these can by async
- synchronize(function() {
- test.setup();
- });
- synchronize(function() {
- test.run();
- });
- synchronize(function() {
- test.teardown();
- });
- synchronize(function() {
- test.finish();
- });
- }
-
- // `bad` initialized at top of scope
- // defer when previous test run passed, if storage is available
- bad = QUnit.config.reorder && defined.sessionStorage &&
- +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
- if ( bad ) {
- run();
- } else {
- synchronize( run, true );
- }
- }
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
- // call on start of module test to prepend name to all tests
- module: function( name, testEnvironment ) {
- config.currentModule = name;
- config.currentModuleTestEnvironment = testEnvironment;
- config.modules[name] = true;
- },
-
- asyncTest: function( testName, expected, callback ) {
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- QUnit.test( testName, expected, callback, true );
- },
-
- test: function( testName, expected, callback, async ) {
- var test,
- nameHtml = "" + escapeText( testName ) + " ";
-
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- if ( config.currentModule ) {
- nameHtml = "" + escapeText( config.currentModule ) + " : " + nameHtml;
- }
-
- test = new Test({
- nameHtml: nameHtml,
- testName: testName,
- expected: expected,
- async: async,
- callback: callback,
- module: config.currentModule,
- moduleTestEnvironment: config.currentModuleTestEnvironment,
- stack: sourceFromStacktrace( 2 )
- });
-
- if ( !validTest( test ) ) {
- return;
- }
-
- test.queue();
- },
-
- // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
- expect: function( asserts ) {
- if (arguments.length === 1) {
- config.current.expected = asserts;
- } else {
- return config.current.expected;
- }
- },
-
- start: function( count ) {
- // QUnit hasn't been initialized yet.
- // Note: RequireJS (et al) may delay onLoad
- if ( config.semaphore === undefined ) {
- QUnit.begin(function() {
- // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
- setTimeout(function() {
- QUnit.start( count );
- });
- });
- return;
- }
-
- config.semaphore -= count || 1;
- // don't start until equal number of stop-calls
- if ( config.semaphore > 0 ) {
- return;
- }
- // ignore if start is called more often then stop
- if ( config.semaphore < 0 ) {
- config.semaphore = 0;
- QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
- return;
- }
- // A slight delay, to avoid any current callbacks
- if ( defined.setTimeout ) {
- setTimeout(function() {
- if ( config.semaphore > 0 ) {
- return;
- }
- if ( config.timeout ) {
- clearTimeout( config.timeout );
- }
-
- config.blocking = false;
- process( true );
- }, 13);
- } else {
- config.blocking = false;
- process( true );
- }
- },
-
- stop: function( count ) {
- config.semaphore += count || 1;
- config.blocking = true;
-
- if ( config.testTimeout && defined.setTimeout ) {
- clearTimeout( config.timeout );
- config.timeout = setTimeout(function() {
- QUnit.ok( false, "Test timed out" );
- config.semaphore = 1;
- QUnit.start();
- }, config.testTimeout );
- }
- }
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
- /**
- * Asserts rough true-ish result.
- * @name ok
- * @function
- * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
- */
- ok: function( result, msg ) {
- if ( !config.current ) {
- throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
- result = !!result;
- msg = msg || (result ? "okay" : "failed" );
-
- var source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: msg
- };
-
- msg = "" + escapeText( msg ) + " ";
-
- if ( !result ) {
- source = sourceFromStacktrace( 2 );
- if ( source ) {
- details.source = source;
- msg += "Source: " + escapeText( source ) + "
";
- }
- }
- runLoggingCallbacks( "log", QUnit, details );
- config.current.assertions.push({
- result: result,
- message: msg
- });
- },
-
- /**
- * Assert that the first two arguments are equal, with an optional message.
- * Prints out both actual and expected values.
- * @name equal
- * @function
- * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
- */
- equal: function( actual, expected, message ) {
- /*jshint eqeqeq:false */
- QUnit.push( expected == actual, actual, expected, message );
- },
-
- /**
- * @name notEqual
- * @function
- */
- notEqual: function( actual, expected, message ) {
- /*jshint eqeqeq:false */
- QUnit.push( expected != actual, actual, expected, message );
- },
-
- /**
- * @name propEqual
- * @function
- */
- propEqual: function( actual, expected, message ) {
- actual = objectValues(actual);
- expected = objectValues(expected);
- QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name notPropEqual
- * @function
- */
- notPropEqual: function( actual, expected, message ) {
- actual = objectValues(actual);
- expected = objectValues(expected);
- QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name deepEqual
- * @function
- */
- deepEqual: function( actual, expected, message ) {
- QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name notDeepEqual
- * @function
- */
- notDeepEqual: function( actual, expected, message ) {
- QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name strictEqual
- * @function
- */
- strictEqual: function( actual, expected, message ) {
- QUnit.push( expected === actual, actual, expected, message );
- },
-
- /**
- * @name notStrictEqual
- * @function
- */
- notStrictEqual: function( actual, expected, message ) {
- QUnit.push( expected !== actual, actual, expected, message );
- },
-
- "throws": function( block, expected, message ) {
- var actual,
- expectedOutput = expected,
- ok = false;
-
- // 'expected' is optional
- if ( typeof expected === "string" ) {
- message = expected;
- expected = null;
- }
-
- config.current.ignoreGlobalErrors = true;
- try {
- block.call( config.current.testEnvironment );
- } catch (e) {
- actual = e;
- }
- config.current.ignoreGlobalErrors = false;
-
- if ( actual ) {
- // we don't want to validate thrown error
- if ( !expected ) {
- ok = true;
- expectedOutput = null;
- // expected is a regexp
- } else if ( QUnit.objectType( expected ) === "regexp" ) {
- ok = expected.test( errorString( actual ) );
- // expected is a constructor
- } else if ( actual instanceof expected ) {
- ok = true;
- // expected is a validation function which returns true is validation passed
- } else if ( expected.call( {}, actual ) === true ) {
- expectedOutput = null;
- ok = true;
- }
-
- QUnit.push( ok, actual, expectedOutput, message );
- } else {
- QUnit.pushFailure( message, null, "No exception was thrown." );
- }
- }
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
- */
-QUnit.raises = assert[ "throws" ];
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
- QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
- QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
- function F() {}
- F.prototype = QUnit;
- QUnit = new F();
- // Make F QUnit's constructor so that we can add to the prototype later
- QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
- // The queue of tests to run
- queue: [],
-
- // block until document ready
- blocking: true,
-
- // when enabled, show only failing tests
- // gets persisted through sessionStorage and can be changed in UI via checkbox
- hidepassed: false,
-
- // by default, run previously failed tests first
- // very useful in combination with "Hide passed tests" checked
- reorder: true,
-
- // by default, modify document.title when suite is done
- altertitle: true,
-
- // when enabled, all tests must call expect()
- requireExpects: false,
-
- // add checkboxes that are persisted in the query-string
- // when enabled, the id is set to `true` as a `QUnit.config` property
- urlConfig: [
- {
- id: "noglobals",
- label: "Check for Globals",
- tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
- },
- {
- id: "notrycatch",
- label: "No try-catch",
- tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
- }
- ],
-
- // Set of all modules.
- modules: {},
-
- // logging callback queues
- begin: [],
- done: [],
- log: [],
- testStart: [],
- testDone: [],
- moduleStart: [],
- moduleDone: []
-};
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
- extend( window, QUnit.constructor.prototype );
-
- // Expose QUnit object
- window.QUnit = QUnit;
-}
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
- var i,
- location = window.location || { search: "", protocol: "file:" },
- params = location.search.slice( 1 ).split( "&" ),
- length = params.length,
- urlParams = {},
- current;
-
- if ( params[ 0 ] ) {
- for ( i = 0; i < length; i++ ) {
- current = params[ i ].split( "=" );
- current[ 0 ] = decodeURIComponent( current[ 0 ] );
- // allow just a key to turn on a flag, e.g., test.html?noglobals
- current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
- urlParams[ current[ 0 ] ] = current[ 1 ];
- }
- }
-
- QUnit.urlParams = urlParams;
-
- // String search anywhere in moduleName+testName
- config.filter = urlParams.filter;
-
- // Exact match of the module name
- config.module = urlParams.module;
-
- config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
- // Figure out if we're running the tests from a server or not
- QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
- assert: assert,
-
- config: config,
-
- // Initialize the configuration options
- init: function() {
- extend( config, {
- stats: { all: 0, bad: 0 },
- moduleStats: { all: 0, bad: 0 },
- started: +new Date(),
- updateRate: 1000,
- blocking: false,
- autostart: true,
- autorun: false,
- filter: "",
- queue: [],
- semaphore: 1
- });
-
- var tests, banner, result,
- qunit = id( "qunit" );
-
- if ( qunit ) {
- qunit.innerHTML =
- "" +
- " " +
- "
" +
- " " +
- " ";
- }
-
- tests = id( "qunit-tests" );
- banner = id( "qunit-banner" );
- result = id( "qunit-testresult" );
-
- if ( tests ) {
- tests.innerHTML = "";
- }
-
- if ( banner ) {
- banner.className = "";
- }
-
- if ( result ) {
- result.parentNode.removeChild( result );
- }
-
- if ( tests ) {
- result = document.createElement( "p" );
- result.id = "qunit-testresult";
- result.className = "result";
- tests.parentNode.insertBefore( result, tests );
- result.innerHTML = "Running... ";
- }
- },
-
- // Resets the test setup. Useful for tests that modify the DOM.
- /*
- DEPRECATED: Use multiple tests instead of resetting inside a test.
- Use testStart or testDone for custom cleanup.
- This method will throw an error in 2.0, and will be removed in 2.1
- */
- reset: function() {
- var fixture = id( "qunit-fixture" );
- if ( fixture ) {
- fixture.innerHTML = config.fixture;
- }
- },
-
- // Trigger an event on an element.
- // @example triggerEvent( document.body, "click" );
- triggerEvent: function( elem, type, event ) {
- if ( document.createEvent ) {
- event = document.createEvent( "MouseEvents" );
- event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
- 0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
- elem.dispatchEvent( event );
- } else if ( elem.fireEvent ) {
- elem.fireEvent( "on" + type );
- }
- },
-
- // Safe object type checking
- is: function( type, obj ) {
- return QUnit.objectType( obj ) === type;
- },
-
- objectType: function( obj ) {
- if ( typeof obj === "undefined" ) {
- return "undefined";
- // consider: typeof null === object
- }
- if ( obj === null ) {
- return "null";
- }
-
- var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
- type = match && match[1] || "";
-
- switch ( type ) {
- case "Number":
- if ( isNaN(obj) ) {
- return "nan";
- }
- return "number";
- case "String":
- case "Boolean":
- case "Array":
- case "Date":
- case "RegExp":
- case "Function":
- return type.toLowerCase();
- }
- if ( typeof obj === "object" ) {
- return "object";
- }
- return undefined;
- },
-
- push: function( result, actual, expected, message ) {
- if ( !config.current ) {
- throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
- }
-
- var output, source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: message,
- actual: actual,
- expected: expected
- };
-
- message = escapeText( message ) || ( result ? "okay" : "failed" );
- message = "" + message + " ";
- output = message;
-
- if ( !result ) {
- expected = escapeText( QUnit.jsDump.parse(expected) );
- actual = escapeText( QUnit.jsDump.parse(actual) );
- output += "Expected: " + expected + " ";
-
- if ( actual !== expected ) {
- output += "Result: " + actual + " ";
- output += "Diff: " + QUnit.diff( expected, actual ) + " ";
- }
-
- source = sourceFromStacktrace();
-
- if ( source ) {
- details.source = source;
- output += "Source: " + escapeText( source ) + " ";
- }
-
- output += "
";
- }
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: !!result,
- message: output
- });
- },
-
- pushFailure: function( message, source, actual ) {
- if ( !config.current ) {
- throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
-
- var output,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: false,
- message: message
- };
-
- message = escapeText( message ) || "error";
- message = "" + message + " ";
- output = message;
-
- output += "";
-
- if ( actual ) {
- output += "Result: " + escapeText( actual ) + " ";
- }
-
- if ( source ) {
- details.source = source;
- output += "Source: " + escapeText( source ) + " ";
- }
-
- output += "
";
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: false,
- message: output
- });
- },
-
- url: function( params ) {
- params = extend( extend( {}, QUnit.urlParams ), params );
- var key,
- querystring = "?";
-
- for ( key in params ) {
- if ( hasOwn.call( params, key ) ) {
- querystring += encodeURIComponent( key ) + "=" +
- encodeURIComponent( params[ key ] ) + "&";
- }
- }
- return window.location.protocol + "//" + window.location.host +
- window.location.pathname + querystring.slice( 0, -1 );
- },
-
- extend: extend,
- id: id,
- addEvent: addEvent,
- addClass: addClass,
- hasClass: hasClass,
- removeClass: removeClass
- // load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
- // Logging callbacks; all receive a single argument with the listed properties
- // run test/logs.html for any related changes
- begin: registerLoggingCallback( "begin" ),
-
- // done: { failed, passed, total, runtime }
- done: registerLoggingCallback( "done" ),
-
- // log: { result, actual, expected, message }
- log: registerLoggingCallback( "log" ),
-
- // testStart: { name }
- testStart: registerLoggingCallback( "testStart" ),
-
- // testDone: { name, failed, passed, total, duration }
- testDone: registerLoggingCallback( "testDone" ),
-
- // moduleStart: { name }
- moduleStart: registerLoggingCallback( "moduleStart" ),
-
- // moduleDone: { name, failed, passed, total }
- moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
- config.autorun = true;
-}
-
-QUnit.load = function() {
- runLoggingCallbacks( "begin", QUnit, {} );
-
- // Initialize the config, saving the execution queue
- var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
- urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
- numModules = 0,
- moduleNames = [],
- moduleFilterHtml = "",
- urlConfigHtml = "",
- oldconfig = extend( {}, config );
-
- QUnit.init();
- extend(config, oldconfig);
-
- config.blocking = false;
-
- len = config.urlConfig.length;
-
- for ( i = 0; i < len; i++ ) {
- val = config.urlConfig[i];
- if ( typeof val === "string" ) {
- val = {
- id: val,
- label: val,
- tooltip: "[no tooltip available]"
- };
- }
- config[ val.id ] = QUnit.urlParams[ val.id ];
- urlConfigHtml += "" + val.label + " ";
- }
- for ( i in config.modules ) {
- if ( config.modules.hasOwnProperty( i ) ) {
- moduleNames.push(i);
- }
- }
- numModules = moduleNames.length;
- moduleNames.sort( function( a, b ) {
- return a.localeCompare( b );
- });
- moduleFilterHtml += "Module: < All Modules > ";
-
-
- for ( i = 0; i < numModules; i++) {
- moduleFilterHtml += "" + escapeText(moduleNames[i]) + " ";
- }
- moduleFilterHtml += " ";
-
- // `userAgent` initialized at top of scope
- userAgent = id( "qunit-userAgent" );
- if ( userAgent ) {
- userAgent.innerHTML = navigator.userAgent;
- }
-
- // `banner` initialized at top of scope
- banner = id( "qunit-header" );
- if ( banner ) {
- banner.innerHTML = "" + banner.innerHTML + " ";
- }
-
- // `toolbar` initialized at top of scope
- toolbar = id( "qunit-testrunner-toolbar" );
- if ( toolbar ) {
- // `filter` initialized at top of scope
- filter = document.createElement( "input" );
- filter.type = "checkbox";
- filter.id = "qunit-filter-pass";
-
- addEvent( filter, "click", function() {
- var tmp,
- ol = document.getElementById( "qunit-tests" );
-
- if ( filter.checked ) {
- ol.className = ol.className + " hidepass";
- } else {
- tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
- ol.className = tmp.replace( / hidepass /, " " );
- }
- if ( defined.sessionStorage ) {
- if (filter.checked) {
- sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
- } else {
- sessionStorage.removeItem( "qunit-filter-passed-tests" );
- }
- }
- });
-
- if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
- filter.checked = true;
- // `ol` initialized at top of scope
- ol = document.getElementById( "qunit-tests" );
- ol.className = ol.className + " hidepass";
- }
- toolbar.appendChild( filter );
-
- // `label` initialized at top of scope
- label = document.createElement( "label" );
- label.setAttribute( "for", "qunit-filter-pass" );
- label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
- label.innerHTML = "Hide passed tests";
- toolbar.appendChild( label );
-
- urlConfigCheckboxesContainer = document.createElement("span");
- urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
- urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
- // For oldIE support:
- // * Add handlers to the individual elements instead of the container
- // * Use "click" instead of "change"
- // * Fallback from event.target to event.srcElement
- addEvents( urlConfigCheckboxes, "click", function( event ) {
- var params = {},
- target = event.target || event.srcElement;
- params[ target.name ] = target.checked ? true : undefined;
- window.location = QUnit.url( params );
- });
- toolbar.appendChild( urlConfigCheckboxesContainer );
-
- if (numModules > 1) {
- moduleFilter = document.createElement( "span" );
- moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
- moduleFilter.innerHTML = moduleFilterHtml;
- addEvent( moduleFilter.lastChild, "change", function() {
- var selectBox = moduleFilter.getElementsByTagName("select")[0],
- selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
- window.location = QUnit.url({
- module: ( selectedModule === "" ) ? undefined : selectedModule,
- // Remove any existing filters
- filter: undefined,
- testNumber: undefined
- });
- });
- toolbar.appendChild(moduleFilter);
- }
- }
-
- // `main` initialized at top of scope
- main = id( "qunit-fixture" );
- if ( main ) {
- config.fixture = main.innerHTML;
- }
-
- if ( config.autostart ) {
- QUnit.start();
- }
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
- var ret = false;
- if ( onErrorFnPrev ) {
- ret = onErrorFnPrev( error, filePath, linerNr );
- }
-
- // Treat return value as window.onerror itself does,
- // Only do our handling if not suppressed.
- if ( ret !== true ) {
- if ( QUnit.config.current ) {
- if ( QUnit.config.current.ignoreGlobalErrors ) {
- return true;
- }
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- } else {
- QUnit.test( "global failure", extend( function() {
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- }, { validTest: validTest } ) );
- }
- return false;
- }
-
- return ret;
-};
-
-function done() {
- config.autorun = true;
-
- // Log the last module results
- if ( config.currentModule ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.currentModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
- delete config.previousModule;
-
- var i, key,
- banner = id( "qunit-banner" ),
- tests = id( "qunit-tests" ),
- runtime = +new Date() - config.started,
- passed = config.stats.all - config.stats.bad,
- html = [
- "Tests completed in ",
- runtime,
- " milliseconds. ",
- "",
- passed,
- " assertions of ",
- config.stats.all,
- " passed, ",
- config.stats.bad,
- " failed."
- ].join( "" );
-
- if ( banner ) {
- banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
- }
-
- if ( tests ) {
- id( "qunit-testresult" ).innerHTML = html;
- }
-
- if ( config.altertitle && typeof document !== "undefined" && document.title ) {
- // show ✖ for good, ✔ for bad suite result in title
- // use escape sequences in case file gets loaded with non-utf-8-charset
- document.title = [
- ( config.stats.bad ? "\u2716" : "\u2714" ),
- document.title.replace( /^[\u2714\u2716] /i, "" )
- ].join( " " );
- }
-
- // clear own sessionStorage items if all tests passed
- if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
- // `key` & `i` initialized at top of scope
- for ( i = 0; i < sessionStorage.length; i++ ) {
- key = sessionStorage.key( i++ );
- if ( key.indexOf( "qunit-test-" ) === 0 ) {
- sessionStorage.removeItem( key );
- }
- }
- }
-
- // scroll back to top to show results
- if ( window.scrollTo ) {
- window.scrollTo(0, 0);
- }
-
- runLoggingCallbacks( "done", QUnit, {
- failed: config.stats.bad,
- passed: passed,
- total: config.stats.all,
- runtime: runtime
- });
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
- var include,
- filter = config.filter && config.filter.toLowerCase(),
- module = config.module && config.module.toLowerCase(),
- fullName = (test.module + ": " + test.testName).toLowerCase();
-
- // Internally-generated tests are always valid
- if ( test.callback && test.callback.validTest === validTest ) {
- delete test.callback.validTest;
- return true;
- }
-
- if ( config.testNumber ) {
- return test.testNumber === config.testNumber;
- }
-
- if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
- return false;
- }
-
- if ( !filter ) {
- return true;
- }
-
- include = filter.charAt( 0 ) !== "!";
- if ( !include ) {
- filter = filter.slice( 1 );
- }
-
- // If the filter matches, we need to honour include
- if ( fullName.indexOf( filter ) !== -1 ) {
- return include;
- }
-
- // Otherwise, do the opposite
- return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
- offset = offset === undefined ? 3 : offset;
-
- var stack, include, i;
-
- if ( e.stacktrace ) {
- // Opera
- return e.stacktrace.split( "\n" )[ offset + 3 ];
- } else if ( e.stack ) {
- // Firefox, Chrome
- stack = e.stack.split( "\n" );
- if (/^error$/i.test( stack[0] ) ) {
- stack.shift();
- }
- if ( fileName ) {
- include = [];
- for ( i = offset; i < stack.length; i++ ) {
- if ( stack[ i ].indexOf( fileName ) !== -1 ) {
- break;
- }
- include.push( stack[ i ] );
- }
- if ( include.length ) {
- return include.join( "\n" );
- }
- }
- return stack[ offset ];
- } else if ( e.sourceURL ) {
- // Safari, PhantomJS
- // hopefully one day Safari provides actual stacktraces
- // exclude useless self-reference for generated Error objects
- if ( /qunit.js$/.test( e.sourceURL ) ) {
- return;
- }
- // for actual exceptions, this is useful
- return e.sourceURL + ":" + e.line;
- }
-}
-function sourceFromStacktrace( offset ) {
- try {
- throw new Error();
- } catch ( e ) {
- return extractStacktrace( e, offset );
- }
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
- if ( !s ) {
- return "";
- }
- s = s + "";
- // Both single quotes and double quotes (for attributes)
- return s.replace( /['"<>&]/g, function( s ) {
- switch( s ) {
- case "'":
- return "'";
- case "\"":
- return """;
- case "<":
- return "<";
- case ">":
- return ">";
- case "&":
- return "&";
- }
- });
-}
-
-function synchronize( callback, last ) {
- config.queue.push( callback );
-
- if ( config.autorun && !config.blocking ) {
- process( last );
- }
-}
-
-function process( last ) {
- function next() {
- process( last );
- }
- var start = new Date().getTime();
- config.depth = config.depth ? config.depth + 1 : 1;
-
- while ( config.queue.length && !config.blocking ) {
- if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
- config.queue.shift()();
- } else {
- setTimeout( next, 13 );
- break;
- }
- }
- config.depth--;
- if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
- done();
- }
-}
-
-function saveGlobal() {
- config.pollution = [];
-
- if ( config.noglobals ) {
- for ( var key in window ) {
- if ( hasOwn.call( window, key ) ) {
- // in Opera sometimes DOM element ids show up here, ignore them
- if ( /^qunit-test-output/.test( key ) ) {
- continue;
- }
- config.pollution.push( key );
- }
- }
- }
-}
-
-function checkPollution() {
- var newGlobals,
- deletedGlobals,
- old = config.pollution;
-
- saveGlobal();
-
- newGlobals = diff( config.pollution, old );
- if ( newGlobals.length > 0 ) {
- QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
- }
-
- deletedGlobals = diff( old, config.pollution );
- if ( deletedGlobals.length > 0 ) {
- QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
- }
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
- var i, j,
- result = a.slice();
-
- for ( i = 0; i < result.length; i++ ) {
- for ( j = 0; j < b.length; j++ ) {
- if ( result[i] === b[j] ) {
- result.splice( i, 1 );
- i--;
- break;
- }
- }
- }
- return result;
-}
-
-function extend( a, b ) {
- for ( var prop in b ) {
- if ( hasOwn.call( b, prop ) ) {
- // Avoid "Member not found" error in IE8 caused by messing with window.constructor
- if ( !( prop === "constructor" && a === window ) ) {
- if ( b[ prop ] === undefined ) {
- delete a[ prop ];
- } else {
- a[ prop ] = b[ prop ];
- }
- }
- }
- }
-
- return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
- // Standards-based browsers
- if ( elem.addEventListener ) {
- elem.addEventListener( type, fn, false );
- // IE
- } else {
- elem.attachEvent( "on" + type, fn );
- }
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
- var i = elems.length;
- while ( i-- ) {
- addEvent( elems[i], type, fn );
- }
-}
-
-function hasClass( elem, name ) {
- return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
- if ( !hasClass( elem, name ) ) {
- elem.className += (elem.className ? " " : "") + name;
- }
-}
-
-function removeClass( elem, name ) {
- var set = " " + elem.className + " ";
- // Class name may appear multiple times
- while ( set.indexOf(" " + name + " ") > -1 ) {
- set = set.replace(" " + name + " " , " ");
- }
- // If possible, trim it for prettiness, but not necessarily
- elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
- return !!( typeof document !== "undefined" && document && document.getElementById ) &&
- document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
- return function( callback ) {
- config[key].push( callback );
- };
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
- var i, callbacks;
- if ( QUnit.hasOwnProperty( key ) ) {
- QUnit[ key ].call(scope, args );
- } else {
- callbacks = config[ key ];
- for ( i = 0; i < callbacks.length; i++ ) {
- callbacks[ i ].call( scope, args );
- }
- }
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé
-QUnit.equiv = (function() {
-
- // Call the o related callback with the given arguments.
- function bindCallbacks( o, callbacks, args ) {
- var prop = QUnit.objectType( o );
- if ( prop ) {
- if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
- return callbacks[ prop ].apply( callbacks, args );
- } else {
- return callbacks[ prop ]; // or undefined
- }
- }
- }
-
- // the real equiv function
- var innerEquiv,
- // stack to decide between skip/abort functions
- callers = [],
- // stack to avoiding loops from circular referencing
- parents = [],
- parentsB = [],
-
- getProto = Object.getPrototypeOf || function ( obj ) {
- /*jshint camelcase:false */
- return obj.__proto__;
- },
- callbacks = (function () {
-
- // for string, boolean, number and null
- function useStrictEquality( b, a ) {
- /*jshint eqeqeq:false */
- if ( b instanceof a.constructor || a instanceof b.constructor ) {
- // to catch short annotation VS 'new' annotation of a
- // declaration
- // e.g. var i = 1;
- // var j = new Number(1);
- return a == b;
- } else {
- return a === b;
- }
- }
-
- return {
- "string": useStrictEquality,
- "boolean": useStrictEquality,
- "number": useStrictEquality,
- "null": useStrictEquality,
- "undefined": useStrictEquality,
-
- "nan": function( b ) {
- return isNaN( b );
- },
-
- "date": function( b, a ) {
- return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
- },
-
- "regexp": function( b, a ) {
- return QUnit.objectType( b ) === "regexp" &&
- // the regex itself
- a.source === b.source &&
- // and its modifiers
- a.global === b.global &&
- // (gmi) ...
- a.ignoreCase === b.ignoreCase &&
- a.multiline === b.multiline &&
- a.sticky === b.sticky;
- },
-
- // - skip when the property is a method of an instance (OOP)
- // - abort otherwise,
- // initial === would have catch identical references anyway
- "function": function() {
- var caller = callers[callers.length - 1];
- return caller !== Object && typeof caller !== "undefined";
- },
-
- "array": function( b, a ) {
- var i, j, len, loop, aCircular, bCircular;
-
- // b could be an object literal here
- if ( QUnit.objectType( b ) !== "array" ) {
- return false;
- }
-
- len = a.length;
- if ( len !== b.length ) {
- // safe and faster
- return false;
- }
-
- // track reference to avoid circular references
- parents.push( a );
- parentsB.push( b );
- for ( i = 0; i < len; i++ ) {
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- aCircular = parents[j] === a[i];
- bCircular = parentsB[j] === b[i];
- if ( aCircular || bCircular ) {
- if ( a[i] === b[i] || aCircular && bCircular ) {
- loop = true;
- } else {
- parents.pop();
- parentsB.pop();
- return false;
- }
- }
- }
- if ( !loop && !innerEquiv(a[i], b[i]) ) {
- parents.pop();
- parentsB.pop();
- return false;
- }
- }
- parents.pop();
- parentsB.pop();
- return true;
- },
-
- "object": function( b, a ) {
- /*jshint forin:false */
- var i, j, loop, aCircular, bCircular,
- // Default to true
- eq = true,
- aProperties = [],
- bProperties = [];
-
- // comparing constructors is more strict than using
- // instanceof
- if ( a.constructor !== b.constructor ) {
- // Allow objects with no prototype to be equivalent to
- // objects with Object as their constructor.
- if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
- ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
- return false;
- }
- }
-
- // stack constructor before traversing properties
- callers.push( a.constructor );
-
- // track reference to avoid circular references
- parents.push( a );
- parentsB.push( b );
-
- // be strict: don't ensure hasOwnProperty and go deep
- for ( i in a ) {
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- aCircular = parents[j] === a[i];
- bCircular = parentsB[j] === b[i];
- if ( aCircular || bCircular ) {
- if ( a[i] === b[i] || aCircular && bCircular ) {
- loop = true;
- } else {
- eq = false;
- break;
- }
- }
- }
- aProperties.push(i);
- if ( !loop && !innerEquiv(a[i], b[i]) ) {
- eq = false;
- break;
- }
- }
-
- parents.pop();
- parentsB.pop();
- callers.pop(); // unstack, we are done
-
- for ( i in b ) {
- bProperties.push( i ); // collect b's properties
- }
-
- // Ensures identical properties name
- return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
- }
- };
- }());
-
- innerEquiv = function() { // can take multiple arguments
- var args = [].slice.apply( arguments );
- if ( args.length < 2 ) {
- return true; // end transition
- }
-
- return (function( a, b ) {
- if ( a === b ) {
- return true; // catch the most you can
- } else if ( a === null || b === null || typeof a === "undefined" ||
- typeof b === "undefined" ||
- QUnit.objectType(a) !== QUnit.objectType(b) ) {
- return false; // don't lose time with error prone cases
- } else {
- return bindCallbacks(a, callbacks, [ b, a ]);
- }
-
- // apply transition with (1..n) arguments
- }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
- };
-
- return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
- function quote( str ) {
- return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
- }
- function literal( o ) {
- return o + "";
- }
- function join( pre, arr, post ) {
- var s = jsDump.separator(),
- base = jsDump.indent(),
- inner = jsDump.indent(1);
- if ( arr.join ) {
- arr = arr.join( "," + s + inner );
- }
- if ( !arr ) {
- return pre + post;
- }
- return [ pre, inner + arr, base + post ].join(s);
- }
- function array( arr, stack ) {
- var i = arr.length, ret = new Array(i);
- this.up();
- while ( i-- ) {
- ret[i] = this.parse( arr[i] , undefined , stack);
- }
- this.down();
- return join( "[", ret, "]" );
- }
-
- var reName = /^function (\w+)/,
- jsDump = {
- // type is used mostly internally, you can fix a (custom)type in advance
- parse: function( obj, type, stack ) {
- stack = stack || [ ];
- var inStack, res,
- parser = this.parsers[ type || this.typeOf(obj) ];
-
- type = typeof parser;
- inStack = inArray( obj, stack );
-
- if ( inStack !== -1 ) {
- return "recursion(" + (inStack - stack.length) + ")";
- }
- if ( type === "function" ) {
- stack.push( obj );
- res = parser.call( this, obj, stack );
- stack.pop();
- return res;
- }
- return ( type === "string" ) ? parser : this.parsers.error;
- },
- typeOf: function( obj ) {
- var type;
- if ( obj === null ) {
- type = "null";
- } else if ( typeof obj === "undefined" ) {
- type = "undefined";
- } else if ( QUnit.is( "regexp", obj) ) {
- type = "regexp";
- } else if ( QUnit.is( "date", obj) ) {
- type = "date";
- } else if ( QUnit.is( "function", obj) ) {
- type = "function";
- } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
- type = "window";
- } else if ( obj.nodeType === 9 ) {
- type = "document";
- } else if ( obj.nodeType ) {
- type = "node";
- } else if (
- // native arrays
- toString.call( obj ) === "[object Array]" ||
- // NodeList objects
- ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
- ) {
- type = "array";
- } else if ( obj.constructor === Error.prototype.constructor ) {
- type = "error";
- } else {
- type = typeof obj;
- }
- return type;
- },
- separator: function() {
- return this.multiline ? this.HTML ? " " : "\n" : this.HTML ? " " : " ";
- },
- // extra can be a number, shortcut for increasing-calling-decreasing
- indent: function( extra ) {
- if ( !this.multiline ) {
- return "";
- }
- var chr = this.indentChar;
- if ( this.HTML ) {
- chr = chr.replace( /\t/g, " " ).replace( / /g, " " );
- }
- return new Array( this.depth + ( extra || 0 ) ).join(chr);
- },
- up: function( a ) {
- this.depth += a || 1;
- },
- down: function( a ) {
- this.depth -= a || 1;
- },
- setParser: function( name, parser ) {
- this.parsers[name] = parser;
- },
- // The next 3 are exposed so you can use them
- quote: quote,
- literal: literal,
- join: join,
- //
- depth: 1,
- // This is the list of parsers, to modify them, use jsDump.setParser
- parsers: {
- window: "[Window]",
- document: "[Document]",
- error: function(error) {
- return "Error(\"" + error.message + "\")";
- },
- unknown: "[Unknown]",
- "null": "null",
- "undefined": "undefined",
- "function": function( fn ) {
- var ret = "function",
- // functions never have name in IE
- name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
- if ( name ) {
- ret += " " + name;
- }
- ret += "( ";
-
- ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
- return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
- },
- array: array,
- nodelist: array,
- "arguments": array,
- object: function( map, stack ) {
- /*jshint forin:false */
- var ret = [ ], keys, key, val, i;
- QUnit.jsDump.up();
- keys = [];
- for ( key in map ) {
- keys.push( key );
- }
- keys.sort();
- for ( i = 0; i < keys.length; i++ ) {
- key = keys[ i ];
- val = map[ key ];
- ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
- }
- QUnit.jsDump.down();
- return join( "{", ret, "}" );
- },
- node: function( node ) {
- var len, i, val,
- open = QUnit.jsDump.HTML ? "<" : "<",
- close = QUnit.jsDump.HTML ? ">" : ">",
- tag = node.nodeName.toLowerCase(),
- ret = open + tag,
- attrs = node.attributes;
-
- if ( attrs ) {
- for ( i = 0, len = attrs.length; i < len; i++ ) {
- val = attrs[i].nodeValue;
- // IE6 includes all attributes in .attributes, even ones not explicitly set.
- // Those have values like undefined, null, 0, false, "" or "inherit".
- if ( val && val !== "inherit" ) {
- ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
- }
- }
- }
- ret += close;
-
- // Show content of TextNode or CDATASection
- if ( node.nodeType === 3 || node.nodeType === 4 ) {
- ret += node.nodeValue;
- }
-
- return ret + open + "/" + tag + close;
- },
- // function calls it internally, it's the arguments part of the function
- functionArgs: function( fn ) {
- var args,
- l = fn.length;
-
- if ( !l ) {
- return "";
- }
-
- args = new Array(l);
- while ( l-- ) {
- // 97 is 'a'
- args[l] = String.fromCharCode(97+l);
- }
- return " " + args.join( ", " ) + " ";
- },
- // object calls it internally, the key part of an item in a map
- key: quote,
- // function calls it internally, it's the content of the function
- functionCode: "[code]",
- // node calls it internally, it's an html attribute value
- attribute: quote,
- string: quote,
- date: quote,
- regexp: literal,
- number: literal,
- "boolean": literal
- },
- // if true, entities are escaped ( <, >, \t, space and \n )
- HTML: false,
- // indentation unit
- indentChar: " ",
- // if true, items in a collection, are separated by a \n, else just a space.
- multiline: true
- };
-
- return jsDump;
-}());
-
-// from jquery.js
-function inArray( elem, array ) {
- if ( array.indexOf ) {
- return array.indexOf( elem );
- }
-
- for ( var i = 0, length = array.length; i < length; i++ ) {
- if ( array[ i ] === elem ) {
- return i;
- }
- }
-
- return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- * By John Resig (http://ejohn.org/)
- * Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- * http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick brown fox jumped jumps over"
- */
-QUnit.diff = (function() {
- /*jshint eqeqeq:false, eqnull:true */
- function diff( o, n ) {
- var i,
- ns = {},
- os = {};
-
- for ( i = 0; i < n.length; i++ ) {
- if ( !hasOwn.call( ns, n[i] ) ) {
- ns[ n[i] ] = {
- rows: [],
- o: null
- };
- }
- ns[ n[i] ].rows.push( i );
- }
-
- for ( i = 0; i < o.length; i++ ) {
- if ( !hasOwn.call( os, o[i] ) ) {
- os[ o[i] ] = {
- rows: [],
- n: null
- };
- }
- os[ o[i] ].rows.push( i );
- }
-
- for ( i in ns ) {
- if ( hasOwn.call( ns, i ) ) {
- if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
- n[ ns[i].rows[0] ] = {
- text: n[ ns[i].rows[0] ],
- row: os[i].rows[0]
- };
- o[ os[i].rows[0] ] = {
- text: o[ os[i].rows[0] ],
- row: ns[i].rows[0]
- };
- }
- }
- }
-
- for ( i = 0; i < n.length - 1; i++ ) {
- if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
- n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
- n[ i + 1 ] = {
- text: n[ i + 1 ],
- row: n[i].row + 1
- };
- o[ n[i].row + 1 ] = {
- text: o[ n[i].row + 1 ],
- row: i + 1
- };
- }
- }
-
- for ( i = n.length - 1; i > 0; i-- ) {
- if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
- n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
- n[ i - 1 ] = {
- text: n[ i - 1 ],
- row: n[i].row - 1
- };
- o[ n[i].row - 1 ] = {
- text: o[ n[i].row - 1 ],
- row: i - 1
- };
- }
- }
-
- return {
- o: o,
- n: n
- };
- }
-
- return function( o, n ) {
- o = o.replace( /\s+$/, "" );
- n = n.replace( /\s+$/, "" );
-
- var i, pre,
- str = "",
- out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
- oSpace = o.match(/\s+/g),
- nSpace = n.match(/\s+/g);
-
- if ( oSpace == null ) {
- oSpace = [ " " ];
- }
- else {
- oSpace.push( " " );
- }
-
- if ( nSpace == null ) {
- nSpace = [ " " ];
- }
- else {
- nSpace.push( " " );
- }
-
- if ( out.n.length === 0 ) {
- for ( i = 0; i < out.o.length; i++ ) {
- str += "" + out.o[i] + oSpace[i] + "";
- }
- }
- else {
- if ( out.n[0].text == null ) {
- for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
- str += "" + out.o[n] + oSpace[n] + "";
- }
- }
-
- for ( i = 0; i < out.n.length; i++ ) {
- if (out.n[i].text == null) {
- str += "" + out.n[i] + nSpace[i] + " ";
- }
- else {
- // `pre` initialized at top of scope
- pre = "";
-
- for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
- pre += "" + out.o[n] + oSpace[n] + "";
- }
- str += " " + out.n[i].text + nSpace[i] + pre;
- }
- }
- }
-
- return str;
- };
-}());
-
-// for CommonJS environments, export everything
-if ( typeof exports !== "undefined" ) {
- extend( exports, QUnit.constructor.prototype );
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/toastr-tests.html b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/toastr-tests.html
deleted file mode 100644
index 1fe155b424..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/toastr-tests.html
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- toastr QUnit Tests
-
-
-
-
-
-
-
-
-
-
- test markup, will be hidden
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/qunit-helper.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/qunit-helper.js
deleted file mode 100644
index 42ce5e23f3..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/qunit-helper.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Hack to expose spec count from QUnit to Karma
- */
-
-var testCount = 0;
-var qunitTest = QUnit.test;
-QUnit.test = window.test = function () {
- testCount += 1;
- qunitTest.apply(this, arguments);
-};
-QUnit.begin(function (args) {
- args.totalTests = testCount;
-});
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/toastr-tests.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/toastr-tests.js
deleted file mode 100644
index 71b704e7ef..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/toastr-tests.js
+++ /dev/null
@@ -1,861 +0,0 @@
-///
-///
-(function () {
- var iconClasses = {
- error: 'toast-error',
- info: 'toast-info',
- success: 'toast-success',
- warning: 'toast-warning'
- };
- var positionClasses = {
- topRight: 'toast-top-right',
- bottomRight: 'toast-bottom-right',
- bottomLeft: 'toast-bottom-left',
- topLeft: 'toast-top-left',
- topCenter: 'toast-top-center',
- bottomCenter: 'toast-bottom-center'
- };
- var sampleMsg = 'I don\'t think they really exist';
- var sampleTitle = 'TEST';
- var selectors = {
- container: 'div#toast-container',
- toastInfo: 'div#toast-container > div.toast-info',
- toastWarning: 'div#toast-container > div.toast-success',
- toastError: 'div#toast-container > div.toast-error',
- toastSuccess: 'div#toast-container > div.toast-success'
- };
-
- toastr.options = {
- timeOut: 2000,
- extendedTimeOut: 0,
- fadeOut: 0,
- fadeIn: 0,
- showDuration: 0,
- hideDuration: 0,
- debug: false
- };
-
- var delay = toastr.options.timeOut + 500;
-
- // 'Clears' must go first
- module('clear');
- asyncTest('clear - show 3 toasts, clear the 2nd', 1, function () {
- //Arrange
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
- $toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
- $toast[2] = toastr.info(sampleMsg, sampleTitle + '-3');
- var $container = toastr.getContainer();
- //Act
- toastr.clear($toast[1]);
- //Assert
- setTimeout(function () {
- ok($container && $container.children().length === 2);
- //Teardown
- resetContainer();
- start();
- }, 1000);
- });
- asyncTest('clear - show 3 toasts, clear all 3, 0 left', 1, function () {
- //Arrange
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
- $toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
- $toast[2] = toastr.info(sampleMsg, sampleTitle + '-3');
- var $container = toastr.getContainer();
- //Act
- toastr.clear();
- //Assert
- setTimeout(function () {
- ok($container && $container.children().length === 0);
- //Teardown
- resetContainer();
- start();
- }, delay);
- });
- test('clear - after clear with force option toast with focus disappears', 1, function () {
- //Arrange
- var $toast;
- var msg = sampleMsg + 'Clear ';
- //Act
- $toast = toastr.info(msg, sampleTitle + '-1');
- $toast.find('button').focus();
- toastr.clear($toast, { force: true });
- var $container = toastr.getContainer();
- //Assert
- ok($container && $container.children().length === 0, 'Focused toast after a clear with force is not visible');
- //Teardown
- resetContainer();
- });
- asyncTest('clear and show - show 2 toasts, clear both, then show 1 more', 2, function () {
- //Arrange
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
- $toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
- var $container = toastr.getContainer();
- toastr.clear();
- //Act
- setTimeout(function () {
- $toast[2] = toastr.info(sampleMsg, sampleTitle + '-3-Visible');
- //Assert
- equal($toast[2].find('div.toast-title').html(), sampleTitle + '-3-Visible', 'Finds toast after a clear');
- ok($toast[2].is(':visible'), 'Toast after a clear is visible');
- //Teardown
- resetContainer();
- start();
- }, delay);
- });
- asyncTest('clear and show - clear removes toast container', 2, function () {
- //Arrange
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
- $toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
- var $container = toastr.getContainer();
- toastr.clear();
- //Act
- setTimeout(function () {
- //Assert
- equal($(selectors.container).length, 0, 'Toast container does not exist');
- ok(!$toast[1].is(':visible'), 'Toast after a clear is visible');
- //Teardown
- resetContainer();
- start();
- }, delay);
- });
- asyncTest('clear and show - after clear new toast creates container', 1, function () {
- //Arrange
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
- $toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
- var $container = toastr.getContainer();
- toastr.clear();
- //Act
- setTimeout(function () {
- $toast[2] = toastr.info(sampleMsg, sampleTitle + '-3-Visible');
- //Assert
- equal($(selectors.container).find('div.toast-title').html(), sampleTitle + '-3-Visible', 'Finds toast after a clear'); //Teardown
- resetContainer();
- start();
- }, delay);
- });
- asyncTest('clear and show - clear toast after hover', 1, function () {
- //Arrange
- var $toast = toastr.info(sampleMsg, sampleTitle);
- var $container = toastr.getContainer();
- $toast.trigger("mouseout");
- //Act
- setTimeout(function () {
- //Assert
- ok($container.find('div.toast-title').length === 0, 'Toast clears after a mouse hover'); //Teardown
- resetContainer();
- start();
- }, 500);
- });
- asyncTest('clear and show - do not clear toast after hover', 1, function () {
- //Arrange
- var $toast = toastr.info(sampleMsg, sampleTitle, { closeOnHover: false });
- var $container = toastr.getContainer();
- $toast.trigger("mouseout");
- //Act
- setTimeout(function () {
- //Assert
- ok($container.find('div.toast-title').length === 1, 'Toast does not clear after a mouse hover'); //Teardown
- resetContainer();
- start();
- }, 500);
- });
- test('clear and show - after clear all toasts new toast still appears', 1, function () {
- //Arrange
- var $toast = [];
- //Act
- $toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
- $toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
- toastr.clear();
- $toast[2] = toastr.info(sampleMsg, sampleTitle + '-3-Visible');
- //Assert
- ok($toast[2].is(':visible'), 'Toast after a clear is visible');
- //Teardown
- resetContainer();
- });
- module('info');
- test('info - pass title and message', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.info(sampleMsg, sampleTitle);
- //Assert
- equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.info), 'Sets info icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('info - pass message, but no title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.info(sampleMsg);
- //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets null title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.info), 'Sets info icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('info - pass no message nor title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.info(); //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets null title');
- equal($toast.find('div.toast-message').html(), null, 'Sets message');
- ok($toast.hasClass(iconClasses.info), 'Sets info icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- module('warning');
- test('warning - pass message and title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.warning(sampleMsg, sampleTitle);
- //Assert
- equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.warning), 'Sets warning icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('warning - pass message, but no title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.warning(sampleMsg);
- //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.warning), 'Sets warning icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('warning - no message nor title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.warning('');
- //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets null title');
- equal($toast.find('div.toast-message').length, 0, 'Sets empty message');
- ok($toast.hasClass(iconClasses.warning), 'Sets warning icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- module('error');
- test('error - pass message and title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.error(sampleMsg, sampleTitle);
- //Assert
- equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.error), 'Sets error icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('error - pass message, but no title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.error(sampleMsg); //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.error), 'Sets error icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('error - no message nor title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.error('');
- //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
- equal($toast.find('div.toast-message').length, 0, 'Sets empty message');
- ok($toast.hasClass(iconClasses.error), 'Sets error icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- module('success');
- test('success - pass message and title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.success(sampleMsg, sampleTitle);
- //Assert
- equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.success), 'Sets success icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('success - pass message, but no title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.success(sampleMsg);
- //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
- equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
- ok($toast.hasClass(iconClasses.success), 'Sets success icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('success - no message nor title', 3, function () {
- //Arrange
- //Act
- var $toast = toastr.success('');
- //Assert
- equal($toast.find('div.toast-title').length, 0, 'Sets null title');
- equal($toast.find('div.toast-message').length, 0, 'Sets empty message');
- ok($toast.hasClass(iconClasses.success), 'Sets success icon'); //Teardown
- $toast.remove();
- clearContainerChildren();
- });
-
-
- module('escape html', {
- teardown: function () {
- toastr.options.escapeHtml = false;
- }
- });
- test('info - escape html', 2, function () {
- //Arrange
- toastr.options.escapeHtml = true;
- //Act
- var $toast = toastr.info('html message ', 'html title ');
- //Assert
- equal($toast.find('div.toast-title').html(), 'html <u>title</u>', 'Title is escaped');
- equal($toast.find('div.toast-message').html(), 'html <strong>message</strong>', 'Message is escaped');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('warning - escape html', 2, function () {
- //Arrange
- toastr.options.escapeHtml = true;
- //Act
- var $toast = toastr.warning('html message ', 'html title ');
- //Assert
- equal($toast.find('div.toast-title').html(), 'html <u>title</u>', 'Title is escaped');
- equal($toast.find('div.toast-message').html(), 'html <strong>message</strong>', 'Message is escaped');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('error - escape html', 2, function () {
- //Arrange
- toastr.options.escapeHtml = true;
- //Act
- var $toast = toastr.error('html message ', 'html title ');
- //Assert
- equal($toast.find('div.toast-title').html(), 'html <u>title</u>', 'Title is escaped');
- equal($toast.find('div.toast-message').html(), 'html <strong>message</strong>', 'Message is escaped');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('success - escape html', 2, function () {
- //Arrange
- toastr.options.escapeHtml = true;
- //Act
- var $toast = toastr.success('html message ', 'html title ');
- //Assert
- equal($toast.find('div.toast-title').html(), 'html <u>title</u>', 'Title is escaped');
- equal($toast.find('div.toast-message').html(), 'html <strong>message</strong>', 'Message is escaped');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
-
- module('closeButton', {
- teardown: function () {
- toastr.options.closeButton = false;
- }
- });
- test('close button disabled', 1, function () {
- //Arrange
- toastr.options.closeButton = false;
- //Act
- var $toast = toastr.success('');
- //Assert
- equal($toast.find('button.toast-close-button').length, 0, 'close button should not exist with closeButton=false');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('close button enabled', 1, function () {
- //Arrange
- toastr.options.closeButton = true;
- //Act
- var $toast = toastr.success('');
- //Assert
- equal($toast.find('button.toast-close-button').length, 1, 'close button should exist with closeButton=true');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('close button has type=button', 1, function () {
- //Arrange
- toastr.options.closeButton = true;
- //Act
- var $toast = toastr.success('');
- //Assert
- equal($toast.find('button[type="button"].toast-close-button').length, 1, 'close button should have type=button');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- asyncTest('close button duration', 1, function () {
- //Arrange
- toastr.options.closeButton = true;
- toastr.options.closeDuration = 0;
- toastr.options.hideDuration = 2000;
- var $container = toastr.getContainer();
- //Act
- var $toast = toastr.success('');
- $toast.find('button.toast-close-button').click();
- setTimeout(function () {
- //Assert
- ok($container && $container.children().length === 0, 'close button should support own hide animation');
- //Teardown
- toastr.options.hideDuration = 0;
- resetContainer();
- start();
- }, 500);
- });
-
- module('progressBar', {
- teardown: function () {
- toastr.options.progressBar = false;
- }
- });
- test('progress bar disabled', 1, function () {
- //Arrange
- toastr.options.progressBar = false;
- //Act
- var $toast = toastr.success('');
- //Assert
- equal($toast.find('div.toast-progress').length, 0, 'progress bar should not exist with progressBar=false');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('progress bar enabled', 1, function () {
- //Arrange
- toastr.options.progressBar = true;
- //Act
- var $toast = toastr.success('');
- //Assert
- equal($toast.find('div.toast-progress').length, 1, 'progress bar should exist with progressBar=true');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
-
- module('rtl', {
- teardown: function () {
- toastr.options.rtl = false;
- }
- });
- test('toastr is ltr by default', 1, function () {
- //Arrange
- //Act
- //Assert
- toastr.subscribe(function(response) {
- equal(response.options.rtl, false, 'ltr by default (i.e. rtl=false)');
- });
- var $toast = toastr.success('');
- //Teardown
- toastr.subscribe(null);
- $toast.remove();
- clearContainerChildren();
- });
- test('ltr toastr does not have .rtl class', 1, function () {
- //Arrange
- //Act
- var $toast = toastr.success('');
- //Assert
- ok($toast.hasClass('rtl') === false, 'ltr div container does not have .rtl class');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('rtl toastr has .rtl class', 1, function () {
- //Arrange
- toastr.options.rtl = true;
- //Act
- var $toast = toastr.success('');
- //Assert
- ok($toast.hasClass('rtl'), 'rtl div container has .rtl class');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
-
- module('accessibility');
- test('toastr success has aria polite',1,function() {
- // Arrange
- var $toast = toastr.success('');
-
- // Act
- ok($toast.attr('aria-live')==='polite', 'success toast has aria-live of polite');
-
- // Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('toastr info has aria polite',1,function() {
- // Arrange
- var $toast = toastr.info('');
-
- // Act
- ok($toast.attr('aria-live')==='polite', 'info toast has aria-live of polite');
-
- // Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('toastr warning has aria assertive',1,function() {
- // Arrange
- var $toast = toastr.warning('');
-
- // Act
- ok($toast.attr('aria-live')==='assertive', 'warning toast has aria-live of assertive');
-
- // Teardown
- $toast.remove();
- clearContainerChildren();
- });
- test('toastr error has aria assertive',1,function() {
- // Arrange
- var $toast = toastr.error('');
-
- // Act
- ok($toast.attr('aria-live')==='assertive', 'error toast has aria-live of assertive');
-
- // Teardown
- $toast.remove();
- clearContainerChildren();
- });
-
- module('event', {
- teardown: function () {
- toastr.options.closeButton = false;
- toastr.options.hideDuration = 0;
- }
- });
- asyncTest('event - onShown is executed', 1, function () {
- // Arrange
- var run = false;
- var onShown = function () { run = true; };
- toastr.options.onShown = onShown;
- // Act
- var $toast = toastr.success(sampleMsg, sampleTitle);
- setTimeout(function () {
- // Assert
- ok(run);
- //Teardown
- $toast.remove();
- clearContainerChildren();
- start();
- }, delay);
- });
-
- asyncTest('event - onHidden is executed', 1, function () {
- //Arrange
- var run = false;
- var onHidden = function () { run = true; };
- toastr.options.onHidden = onHidden;
- toastr.options.timeOut = 1;
- //Act
- var $toast = toastr.success(sampleMsg, sampleTitle);
- setTimeout(function () {
- // Assert
- ok(run); //Teardown
- $toast.remove();
- clearContainerChildren();
- start();
- }, delay);
- });
-
- asyncTest('event - onShown and onHidden are both executed', 2, function () {
- //Arrange
- var onShowRun = false;
- var onHideRun = false;
- var onShow = function () { onShowRun = true; };
- var onHide = function () { onHideRun = true; };
- toastr.options.onShown = onShow;
- toastr.options.onHidden = onHide;
- toastr.options.timeOut = 1;
- //Act
- var $toast = toastr.success(sampleMsg, sampleTitle);
- setTimeout(function () {
- // Assert
- ok(onShowRun);
- ok(onHideRun);
- //Teardown
- $toast.remove();
- clearContainerChildren();
- start();
- }, delay);
- });
-
- asyncTest('event - onCloseClick is executed', 1, function () {
- //Arrange
- var run = false;
- toastr.options.closeButton = true;
- toastr.options.closeDuration = 0;
- toastr.options.hideDuration = 2000;
- var onCloseClick = function () { run = true; };
- toastr.options.onCloseClick = onCloseClick;
- toastr.options.timeOut = 1;
- //Act
- var $toast = toastr.success(sampleMsg, sampleTitle);
- $toast.find('button.toast-close-button').click();
- setTimeout(function () {
- // Assert
- ok(run); //Teardown
- $toast.remove();
- clearContainerChildren();
- start();
- }, delay);
- });
-
- test('event - message appears when no show or hide method functions provided', 1, function () {
- //Arrange
- //Act
- var $toast = toastr.success(sampleMsg, sampleTitle);
- //Assert
- ok($toast.hasClass(iconClasses.success), 'Sets success icon');
- //Teardown
- $toast.remove();
- clearContainerChildren();
- });
-
- test('event - prevent duplicate sequential toasts.', 1, function(){
- toastr.options.preventDuplicates = true;
-
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle);
- $toast[1] = toastr.info(sampleMsg, sampleTitle);
- $toast[2] = toastr.info(sampleMsg + " 1", sampleTitle);
- $toast[3] = toastr.info(sampleMsg, sampleTitle);
- var $container = toastr.getContainer();
-
- ok($container && $container.children().length === 3);
-
- clearContainerChildren();
- });
-
- test('event - prevent duplicate sequential toasts, but allow previous after clear.', 1, function(){
- toastr.options.preventDuplicates = true;
-
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle);
- $toast[1] = toastr.info(sampleMsg, sampleTitle);
- clearContainerChildren();
- $toast[3] = toastr.info(sampleMsg, sampleTitle);
- var $container = toastr.getContainer();
-
- ok($container && $container.children().length === 1);
-
- clearContainerChildren();
- });
-
- test('event - allow duplicate sequential toasts.', 1, function(){
- toastr.options.preventDuplicates = false;
-
- var $toast = [];
- $toast[0] = toastr.info(sampleMsg, sampleTitle);
- $toast[1] = toastr.info(sampleMsg, sampleTitle);
- $toast[1] = toastr.info(sampleMsg, sampleTitle);
- var $container = toastr.getContainer();
-
- ok($container && $container.children().length === 3);
-
- clearContainerChildren();
- });
-
- test('event - allow preventDuplicates option to be overridden.', 1, function() {
- var $toast = [];
-
- $toast[0] = toastr.info(sampleMsg, sampleTitle, {
- preventDuplicates: true
- });
- $toast[1] = toastr.info(sampleMsg, sampleTitle, {
- preventDuplicates: true
- });
- $toast[2] = toastr.info(sampleMsg, sampleTitle);
- var $container = toastr.getContainer();
-
- ok($container && $container.children().length === 2);
- clearContainerChildren();
- });
-
- module('subscription');
- asyncTest('subscribe - triggers 2 visible and 2 hidden response notifications while clicking on a toast', 1, function () {
- //Arrange
- var $toast = [];
- var expectedReponses = [];
- //Act
- toastr.subscribe(function(response) {
- if(response.options.testId) {
- expectedReponses.push(response);
- }
- })
-
- $toast[0] = toastr.info(sampleMsg, sampleTitle, {testId : 1});
- $toast[1] = toastr.info(sampleMsg, sampleTitle, {testId : 2});
-
- $toast[1].click()
-
- setTimeout(function () {
- // Assert
- ok(expectedReponses.length === 4);
- //Teardown
- clearContainerChildren();
- toastr.subscribe(null);
- start();
- }, delay);
- });
-
- module('order of appearance');
- test('Newest toast on top', 1, function () {
- //Arrange
- resetContainer();
- toastr.options.newestOnTop = true;
- //Act
- var $first = toastr.success("First toast");
- var $second = toastr.success("Second toast");
- //Assert
- var containerHtml = toastr.getContainer().html();
- ok(containerHtml.indexOf("First toast") > containerHtml.indexOf("Second toast"), 'Newest toast is on top');
- //Teardown
- $first.remove();
- $second.remove();
- resetContainer();
- });
-
- test('Oldest toast on top', 1, function () {
- //Arrange
- resetContainer();
- toastr.options.newestOnTop = false;
- //Act
- var $first = toastr.success("First toast");
- var $second = toastr.success("Second toast");
- //Assert
- var containerHtml = toastr.getContainer().html();
- ok(containerHtml.indexOf("First toast") < containerHtml.indexOf("Second toast"), 'Oldest toast is on top');
- //Teardown
- $first.remove();
- $second.remove();
- resetContainer();
- });
-
- // These must go last
- module('positioning');
- test('Container - position top-right', 1, function () {
- //Arrange
- resetContainer();
- toastr.options.positionClass = positionClasses.topRight;
- //Act
- var $toast = toastr.success(sampleMsg);
- var $container = toastr.getContainer();
- //Assert
- ok($container.hasClass(positionClasses.topRight), 'Has position top right');
- //Teardown
- $toast.remove();
- resetContainer();
- });
- test('Container - position bottom-right', 1, function () {
- //Arrange
- resetContainer();
- toastr.options.positionClass = positionClasses.bottomRight;
- //Act
- var $toast = toastr.success(sampleMsg);
- var $container = toastr.getContainer();
- //Assert
- ok($container.hasClass(positionClasses.bottomRight), 'Has position bottom right');
- //Teardown
- $toast.remove();
- resetContainer();
- });
- test('Container - position bottom-left', 1, function () {
- //Arrange
- resetContainer();
- //$(selectors.container).remove()
- toastr.options.positionClass = positionClasses.bottomLeft;
- //Act
- var $toast = toastr.success(sampleMsg);
- var $container = toastr.getContainer();
- //Assert
- ok($container.hasClass(positionClasses.bottomLeft), 'Has position bottom left');
- //Teardown
- $toast.remove();
- resetContainer();
- });
- test('Container - position top-left', 1, function () {
- //Arrange
- resetContainer();
- toastr.options.positionClass = positionClasses.topLeft;
- //Act
- var $toast = toastr.success(sampleMsg);
- var $container = toastr.getContainer();
- //Assert
- ok($container.hasClass(positionClasses.topLeft), 'Has position top left');
- //Teardown
- $toast.remove();
- resetContainer();
- });
- test('Container - position top-center', 1, function () {
- //Arrange
- resetContainer();
- toastr.options.positionClass = positionClasses.topCenter;
- //Act
- var $toast = toastr.success(sampleMsg);
- var $container = toastr.getContainer();
- //Assert
- ok($container.hasClass(positionClasses.topCenter), 'Has position top center');
- //Teardown
- $toast.remove();
- resetContainer();
- });
- test('Container - position bottom-center', 1, function () {
- //Arrange
- resetContainer();
- toastr.options.positionClass = positionClasses.bottomCenter;
- //Act
- var $toast = toastr.success(sampleMsg);
- var $container = toastr.getContainer();
- //Assert
- ok($container.hasClass(positionClasses.bottomCenter), 'Has position bottom center');
- //Teardown
- $toast.remove();
- resetContainer();
- });
-
- function resetContainer() {
- var $container = toastr.getContainer();
- if ($container) {
- $container.remove();
- }
- $(selectors.container).remove();
- clearContainerChildren();
- }
-
- function clearContainerChildren() {
- toastr.clear();
- }
-
-})();
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/x.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/x.js
deleted file mode 100644
index b78dd48ac8..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/tests/unit/x.js
+++ /dev/null
@@ -1,3 +0,0 @@
- test('test test', 1, function () {
- ok(1 === 1, '1 equals 1');
- });
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr-icon.png b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr-icon.png
deleted file mode 100644
index 040102adcf..0000000000
Binary files a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr-icon.png and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.js b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.js
deleted file mode 100644
index f48cb73df3..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.js
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * Toastr
- * Copyright 2012-2015
- * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.
- * All Rights Reserved.
- * Use, reproduction, distribution, and modification of this code is subject to the terms and
- * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
- *
- * ARIA Support: Greta Krafsig
- *
- * Project: https://github.com/CodeSeven/toastr
- */
-/* global define */
-(function (define) {
- define(['jquery'], function ($) {
- return (function () {
- var $container;
- var listener;
- var toastId = 0;
- var toastType = {
- error: 'error',
- info: 'info',
- success: 'success',
- warning: 'warning'
- };
-
- var toastr = {
- clear: clear,
- remove: remove,
- error: error,
- getContainer: getContainer,
- info: info,
- options: {},
- subscribe: subscribe,
- success: success,
- version: '2.1.3',
- warning: warning
- };
-
- var previousToast;
-
- return toastr;
-
- ////////////////
-
- function error(message, title, optionsOverride) {
- return notify({
- type: toastType.error,
- iconClass: getOptions().iconClasses.error,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function getContainer(options, create) {
- if (!options) { options = getOptions(); }
- $container = $('#' + options.containerId);
- if ($container.length) {
- return $container;
- }
- if (create) {
- $container = createContainer(options);
- }
- return $container;
- }
-
- function info(message, title, optionsOverride) {
- return notify({
- type: toastType.info,
- iconClass: getOptions().iconClasses.info,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function subscribe(callback) {
- listener = callback;
- }
-
- function success(message, title, optionsOverride) {
- return notify({
- type: toastType.success,
- iconClass: getOptions().iconClasses.success,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function warning(message, title, optionsOverride) {
- return notify({
- type: toastType.warning,
- iconClass: getOptions().iconClasses.warning,
- message: message,
- optionsOverride: optionsOverride,
- title: title
- });
- }
-
- function clear($toastElement, clearOptions) {
- var options = getOptions();
- if (!$container) { getContainer(options); }
- if (!clearToast($toastElement, options, clearOptions)) {
- clearContainer(options);
- }
- }
-
- function remove($toastElement) {
- var options = getOptions();
- if (!$container) { getContainer(options); }
- if ($toastElement && $(':focus', $toastElement).length === 0) {
- removeToast($toastElement);
- return;
- }
- if ($container.children().length) {
- $container.remove();
- }
- }
-
- // internal functions
-
- function clearContainer (options) {
- var toastsToClear = $container.children();
- for (var i = toastsToClear.length - 1; i >= 0; i--) {
- clearToast($(toastsToClear[i]), options);
- }
- }
-
- function clearToast ($toastElement, options, clearOptions) {
- var force = clearOptions && clearOptions.force ? clearOptions.force : false;
- if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {
- $toastElement[options.hideMethod]({
- duration: options.hideDuration,
- easing: options.hideEasing,
- complete: function () { removeToast($toastElement); }
- });
- return true;
- }
- return false;
- }
-
- function createContainer(options) {
- $container = $('
')
- .attr('id', options.containerId)
- .addClass(options.positionClass);
-
- $container.appendTo($(options.target));
- return $container;
- }
-
- function getDefaults() {
- return {
- tapToDismiss: true,
- toastClass: 'toast',
- containerId: 'toast-container',
- debug: false,
-
- showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
- showDuration: 300,
- showEasing: 'swing', //swing and linear are built into jQuery
- onShown: undefined,
- hideMethod: 'fadeOut',
- hideDuration: 1000,
- hideEasing: 'swing',
- onHidden: undefined,
- closeMethod: false,
- closeDuration: false,
- closeEasing: false,
- closeOnHover: true,
-
- extendedTimeOut: 1000,
- iconClasses: {
- error: 'toast-error',
- info: 'toast-info',
- success: 'toast-success',
- warning: 'toast-warning'
- },
- iconClass: 'toast-info',
- positionClass: 'toast-top-right',
- timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky
- titleClass: 'toast-title',
- messageClass: 'toast-message',
- escapeHtml: false,
- target: 'body',
- closeHtml: '× ',
- closeClass: 'toast-close-button',
- newestOnTop: true,
- preventDuplicates: false,
- progressBar: false,
- progressClass: 'toast-progress',
- rtl: false
- };
- }
-
- function publish(args) {
- if (!listener) { return; }
- listener(args);
- }
-
- function notify(map) {
- var options = getOptions();
- var iconClass = map.iconClass || options.iconClass;
-
- if (typeof (map.optionsOverride) !== 'undefined') {
- options = $.extend(options, map.optionsOverride);
- iconClass = map.optionsOverride.iconClass || iconClass;
- }
-
- if (shouldExit(options, map)) { return; }
-
- toastId++;
-
- $container = getContainer(options, true);
-
- var intervalId = null;
- var $toastElement = $('
');
- var $titleElement = $('
');
- var $messageElement = $('
');
- var $progressElement = $('
');
- var $closeElement = $(options.closeHtml);
- var progressBar = {
- intervalId: null,
- hideEta: null,
- maxHideTime: null
- };
- var response = {
- toastId: toastId,
- state: 'visible',
- startTime: new Date(),
- options: options,
- map: map
- };
-
- personalizeToast();
-
- displayToast();
-
- handleEvents();
-
- publish(response);
-
- if (options.debug && console) {
- console.log(response);
- }
-
- return $toastElement;
-
- function escapeHtml(source) {
- if (source == null) {
- source = '';
- }
-
- return source
- .replace(/&/g, '&')
- .replace(/"/g, '"')
- .replace(/'/g, ''')
- .replace(//g, '>');
- }
-
- function personalizeToast() {
- setIcon();
- setTitle();
- setMessage();
- setCloseButton();
- setProgressBar();
- setRTL();
- setSequence();
- setAria();
- }
-
- function setAria() {
- var ariaValue = '';
- switch (map.iconClass) {
- case 'toast-success':
- case 'toast-info':
- ariaValue = 'polite';
- break;
- default:
- ariaValue = 'assertive';
- }
- $toastElement.attr('aria-live', ariaValue);
- }
-
- function handleEvents() {
- if (options.closeOnHover) {
- $toastElement.hover(stickAround, delayedHideToast);
- }
-
- if (!options.onclick && options.tapToDismiss) {
- $toastElement.click(hideToast);
- }
-
- if (options.closeButton && $closeElement) {
- $closeElement.click(function (event) {
- if (event.stopPropagation) {
- event.stopPropagation();
- } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {
- event.cancelBubble = true;
- }
-
- if (options.onCloseClick) {
- options.onCloseClick(event);
- }
-
- hideToast(true);
- });
- }
-
- if (options.onclick) {
- $toastElement.click(function (event) {
- options.onclick(event);
- hideToast();
- });
- }
- }
-
- function displayToast() {
- $toastElement.hide();
-
- $toastElement[options.showMethod](
- {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}
- );
-
- if (options.timeOut > 0) {
- intervalId = setTimeout(hideToast, options.timeOut);
- progressBar.maxHideTime = parseFloat(options.timeOut);
- progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;
- if (options.progressBar) {
- progressBar.intervalId = setInterval(updateProgress, 10);
- }
- }
- }
-
- function setIcon() {
- if (map.iconClass) {
- $toastElement.addClass(options.toastClass).addClass(iconClass);
- }
- }
-
- function setSequence() {
- if (options.newestOnTop) {
- $container.prepend($toastElement);
- } else {
- $container.append($toastElement);
- }
- }
-
- function setTitle() {
- if (map.title) {
- var suffix = map.title;
- if (options.escapeHtml) {
- suffix = escapeHtml(map.title);
- }
- $titleElement.append(suffix).addClass(options.titleClass);
- $toastElement.append($titleElement);
- }
- }
-
- function setMessage() {
- if (map.message) {
- var suffix = map.message;
- if (options.escapeHtml) {
- suffix = escapeHtml(map.message);
- }
- $messageElement.append(suffix).addClass(options.messageClass);
- $toastElement.append($messageElement);
- }
- }
-
- function setCloseButton() {
- if (options.closeButton) {
- $closeElement.addClass(options.closeClass).attr('role', 'button');
- $toastElement.prepend($closeElement);
- }
- }
-
- function setProgressBar() {
- if (options.progressBar) {
- $progressElement.addClass(options.progressClass);
- $toastElement.prepend($progressElement);
- }
- }
-
- function setRTL() {
- if (options.rtl) {
- $toastElement.addClass('rtl');
- }
- }
-
- function shouldExit(options, map) {
- if (options.preventDuplicates) {
- if (map.message === previousToast) {
- return true;
- } else {
- previousToast = map.message;
- }
- }
- return false;
- }
-
- function hideToast(override) {
- var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;
- var duration = override && options.closeDuration !== false ?
- options.closeDuration : options.hideDuration;
- var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;
- if ($(':focus', $toastElement).length && !override) {
- return;
- }
- clearTimeout(progressBar.intervalId);
- return $toastElement[method]({
- duration: duration,
- easing: easing,
- complete: function () {
- removeToast($toastElement);
- clearTimeout(intervalId);
- if (options.onHidden && response.state !== 'hidden') {
- options.onHidden();
- }
- response.state = 'hidden';
- response.endTime = new Date();
- publish(response);
- }
- });
- }
-
- function delayedHideToast() {
- if (options.timeOut > 0 || options.extendedTimeOut > 0) {
- intervalId = setTimeout(hideToast, options.extendedTimeOut);
- progressBar.maxHideTime = parseFloat(options.extendedTimeOut);
- progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;
- }
- }
-
- function stickAround() {
- clearTimeout(intervalId);
- progressBar.hideEta = 0;
- $toastElement.stop(true, true)[options.showMethod](
- {duration: options.showDuration, easing: options.showEasing}
- );
- }
-
- function updateProgress() {
- var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;
- $progressElement.width(percentage + '%');
- }
- }
-
- function getOptions() {
- return $.extend({}, getDefaults(), toastr.options);
- }
-
- function removeToast($toastElement) {
- if (!$container) { $container = getContainer(); }
- if ($toastElement.is(':visible')) {
- return;
- }
- $toastElement.remove();
- $toastElement = null;
- if ($container.children().length === 0) {
- $container.remove();
- previousToast = undefined;
- }
- }
-
- })();
- });
-}(typeof define === 'function' && define.amd ? define : function (deps, factory) {
- if (typeof module !== 'undefined' && module.exports) { //Node
- module.exports = factory(require('jquery'));
- } else {
- window.toastr = factory(window.jQuery);
- }
-}));
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.less b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.less
deleted file mode 100644
index 7a36d45f88..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.less
+++ /dev/null
@@ -1,302 +0,0 @@
-// Mix-ins
-.borderRadius(@radius) {
- -moz-border-radius: @radius;
- -webkit-border-radius: @radius;
- border-radius: @radius;
-}
-
-.boxShadow(@boxShadow) {
- -moz-box-shadow: @boxShadow;
- -webkit-box-shadow: @boxShadow;
- box-shadow: @boxShadow;
-}
-
-.opacity(@opacity) {
- @opacityPercent: (@opacity * 100);
- opacity: @opacity;
- -ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(Opacity=@{opacityPercent})";
- filter: ~"alpha(opacity=@{opacityPercent})";
-}
-
-.wordWrap(@wordWrap: break-word) {
- -ms-word-wrap: @wordWrap;
- word-wrap: @wordWrap;
-}
-
-// Variables
-@black: #000000;
-@grey: #999999;
-@light-grey: #CCCCCC;
-@white: #FFFFFF;
-@near-black: #030303;
-@green: #51A351;
-@red: #BD362F;
-@blue: #2F96B4;
-@orange: #F89406;
-@default-container-opacity: .8;
-
-// Styles
-.toast-title {
- font-weight: bold;
-}
-
-.toast-message {
- .wordWrap();
-
- a,
- label {
- color: @white;
- }
-
- a:hover {
- color: @light-grey;
- text-decoration: none;
- }
-}
-
-.toast-close-button {
- position: relative;
- right: -0.3em;
- top: -0.3em;
- float: right;
- font-size: 20px;
- font-weight: bold;
- color: @white;
- -webkit-text-shadow: 0 1px 0 rgba(255,255,255,1);
- text-shadow: 0 1px 0 rgba(255,255,255,1);
- .opacity(0.8);
- line-height: 1;
-
- &:hover,
- &:focus {
- color: @black;
- text-decoration: none;
- cursor: pointer;
- .opacity(0.4);
- }
-}
-
-.rtl .toast-close-button {
- left: -0.3em;
- float: left;
- right: 0.3em;
-}
-
-/*Additional properties for button version
- iOS requires the button element instead of an anchor tag.
- If you want the anchor version, it requires `href="#"`.*/
-button.toast-close-button {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-
-//#endregion
-
-.toast-top-center {
- top: 0;
- right: 0;
- width: 100%;
-}
-
-.toast-bottom-center {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-
-.toast-top-full-width {
- top: 0;
- right: 0;
- width: 100%;
-}
-
-.toast-bottom-full-width {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-
-.toast-top-left {
- top: 12px;
- left: 12px;
-}
-
-.toast-top-right {
- top: 12px;
- right: 12px;
-}
-
-.toast-bottom-right {
- right: 12px;
- bottom: 12px;
-}
-
-.toast-bottom-left {
- bottom: 12px;
- left: 12px;
-}
-
-#toast-container {
- position: fixed;
- z-index: 999999;
- // The container should not be clickable.
- pointer-events: none;
- * {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- }
-
- > div {
- position: relative;
- // The toast itself should be clickable.
- pointer-events: auto;
- overflow: hidden;
- margin: 0 0 6px;
- padding: 15px 15px 15px 50px;
- width: 300px;
- .borderRadius(3px 3px 3px 3px);
- background-position: 15px center;
- background-repeat: no-repeat;
- .boxShadow(0 0 12px @grey);
- color: @white;
- .opacity(@default-container-opacity);
- }
-
- > div.rtl {
- direction: rtl;
- padding: 15px 50px 15px 15px;
- background-position: right 15px center;
- }
-
- > div:hover {
- .boxShadow(0 0 12px @black);
- .opacity(1);
- cursor: pointer;
- }
-
- > .toast-info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
- }
-
- > .toast-error {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
- }
-
- > .toast-success {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
- }
-
- > .toast-warning {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
- }
-
- /*overrides*/
- &.toast-top-center > div,
- &.toast-bottom-center > div {
- width: 300px;
- margin-left: auto;
- margin-right: auto;
- }
-
- &.toast-top-full-width > div,
- &.toast-bottom-full-width > div {
- width: 96%;
- margin-left: auto;
- margin-right: auto;
- }
-}
-
-.toast {
- background-color: @near-black;
-}
-
-.toast-success {
- background-color: @green;
-}
-
-.toast-error {
- background-color: @red;
-}
-
-.toast-info {
- background-color: @blue;
-}
-
-.toast-warning {
- background-color: @orange;
-}
-
-.toast-progress {
- position: absolute;
- left: 0;
- bottom: 0;
- height: 4px;
- background-color: @black;
- .opacity(0.4);
-}
-
-/*Responsive Design*/
-
-@media all and (max-width: 240px) {
- #toast-container {
-
- > div {
- padding: 8px 8px 8px 50px;
- width: 11em;
- }
-
- > div.rtl {
- padding: 8px 50px 8px 8px;
- }
-
- & .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-
- & .rtl .toast-close-button {
- left: -0.2em;
- right: 0.2em;
- }
- }
-}
-
-@media all and (min-width: 241px) and (max-width: 480px) {
- #toast-container {
- > div {
- padding: 8px 8px 8px 50px;
- width: 18em;
- }
-
- > div.rtl {
- padding: 8px 50px 8px 8px;
- }
-
- & .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-
- & .rtl .toast-close-button {
- left: -0.2em;
- right: 0.2em;
- }
- }
-}
-
-@media all and (min-width: 481px) and (max-width: 768px) {
- #toast-container {
- > div {
- padding: 15px 15px 15px 50px;
- width: 25em;
- }
-
- > div.rtl {
- padding: 15px 50px 15px 15px;
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.scss b/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.scss
deleted file mode 100644
index b96d0cf724..0000000000
--- a/mayan/apps/appearance/static/appearance/packages/toastr-master-998959b0/toastr.scss
+++ /dev/null
@@ -1,201 +0,0 @@
-.toast-title {
- font-weight: bold;
-}
-.toast-message {
- -ms-word-wrap: break-word;
- word-wrap: break-word;
-}
-.toast-message a,
-.toast-message label {
- color: #ffffff;
-}
-.toast-message a:hover {
- color: #cccccc;
- text-decoration: none;
-}
-.toast-close-button {
- position: relative;
- right: -0.3em;
- top: -0.3em;
- float: right;
- font-size: 20px;
- font-weight: bold;
- color: #ffffff;
- -webkit-text-shadow: 0 1px 0 #ffffff;
- text-shadow: 0 1px 0 #ffffff;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
-}
-.toast-close-button:hover,
-.toast-close-button:focus {
- color: #000000;
- text-decoration: none;
- cursor: pointer;
- opacity: 0.4;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
- filter: alpha(opacity=40);
-}
-/*Additional properties for button version
- iOS requires the button element instead of an anchor tag.
- If you want the anchor version, it requires `href="#"`.*/
-button.toast-close-button {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
-}
-.toast-top-center {
- top: 0;
- right: 0;
- width: 100%;
-}
-.toast-bottom-center {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-.toast-top-full-width {
- top: 0;
- right: 0;
- width: 100%;
-}
-.toast-bottom-full-width {
- bottom: 0;
- right: 0;
- width: 100%;
-}
-.toast-top-left {
- top: 12px;
- left: 12px;
-}
-.toast-top-right {
- top: 12px;
- right: 12px;
-}
-.toast-bottom-right {
- right: 12px;
- bottom: 12px;
-}
-.toast-bottom-left {
- bottom: 12px;
- left: 12px;
-}
-#toast-container {
- position: fixed;
- z-index: 999999;
- /*overrides*/
-
-}
-#toast-container * {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-#toast-container > div {
- position: relative;
- overflow: hidden;
- margin: 0 0 6px;
- padding: 15px 15px 15px 50px;
- width: 300px;
- -moz-border-radius: 3px 3px 3px 3px;
- -webkit-border-radius: 3px 3px 3px 3px;
- border-radius: 3px 3px 3px 3px;
- background-position: 15px center;
- background-repeat: no-repeat;
- -moz-box-shadow: 0 0 12px #999999;
- -webkit-box-shadow: 0 0 12px #999999;
- box-shadow: 0 0 12px #999999;
- color: #ffffff;
- opacity: 0.8;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
- filter: alpha(opacity=80);
-}
-#toast-container > div:hover {
- -moz-box-shadow: 0 0 12px #000000;
- -webkit-box-shadow: 0 0 12px #000000;
- box-shadow: 0 0 12px #000000;
- opacity: 1;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
- filter: alpha(opacity=100);
- cursor: pointer;
-}
-#toast-container > .toast-info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-error {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
-}
-#toast-container > .toast-success {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
-}
-#toast-container > .toast-warning {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
-}
-#toast-container.toast-top-center > div,
-#toast-container.toast-bottom-center > div {
- width: 300px;
- margin-left: auto;
- margin-right: auto;
-}
-#toast-container.toast-top-full-width > div,
-#toast-container.toast-bottom-full-width > div {
- width: 96%;
- margin-left: auto;
- margin-right: auto;
-}
-.toast {
- background-color: #030303;
-}
-.toast-success {
- background-color: #51a351;
-}
-.toast-error {
- background-color: #bd362f;
-}
-.toast-info {
- background-color: #2f96b4;
-}
-.toast-warning {
- background-color: #f89406;
-}
-
-.toast-progress {
- position: absolute;
- left: 0;
- bottom: 0;
- height: 4px;
- background-color: #000000;
- opacity: 0.4;
- -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
- filter: alpha(opacity=40);
-}
-
-/*Responsive Design*/
-@media all and (max-width: 240px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 11em;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-}
-@media all and (min-width: 241px) and (max-width: 480px) {
- #toast-container > div {
- padding: 8px 8px 8px 50px;
- width: 18em;
- }
- #toast-container .toast-close-button {
- right: -0.2em;
- top: -0.2em;
- }
-}
-@media all and (min-width: 481px) and (max-width: 768px) {
- #toast-container > div {
- padding: 15px 15px 15px 50px;
- width: 25em;
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.editorconfig b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.editorconfig
deleted file mode 100644
index 778c1485cb..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.editorconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-root = true
-
-[**]
-charset = utf-8
-end_of_line = lf
-indent_size = 2
-indent_style = space
-insert_final_newline = true
-trim_trailing_whitespace = true
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.gitignore b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.gitignore
deleted file mode 100644
index 9daa8247da..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.DS_Store
-node_modules
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.jshintrc b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.jshintrc
deleted file mode 100644
index 8327de8cb3..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/.jshintrc
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "node": true,
- "browser": false,
- "esnext": false,
- "bitwise": false,
- "camelcase": true,
- "curly": true,
- "eqeqeq": true,
- "immed": true,
- "indent": 2,
- "latedef": true,
- "newcap": true,
- "noarg": true,
- "quotmark": "single",
- "regexp": true,
- "undef": true,
- "unused": true,
- "strict": true,
- "trailing": true,
- "smarttabs": true,
- "expr": true,
- "globals": {
- "describe": false,
- "it": false,
- "before": false,
- "beforeEach": false,
- "after": false,
- "afterEach": false,
- "define": false
- }
-}
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/CHANGELOG.md b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/CHANGELOG.md
deleted file mode 100644
index e3641caa87..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/CHANGELOG.md
+++ /dev/null
@@ -1,383 +0,0 @@
-# URI.js - Changelog #
-
-The release notes tracked in this document are also made available on the [releases page](https://github.com/medialize/URI.js/releases)
-
-### 1.19.1 (February 10th 2018) ###
-
-* fixing [`.href()`](http://medialize.github.io/URI.js/docs.html#href) to parse `query` property - [Issue #366](https://github.com/medialize/URI.js/issues/366), [PR #367](https://github.com/medialize/URI.js/issues/367)
-
-### 1.19.0 (October 1st 2017) ###
-
-* adding `.setFragment()` to [query fragment plugin](http://medialize.github.io/URI.js/docs.html#fragment-abuse-query) - [Issue #338](https://github.com/medialize/URI.js/issues/338), [PR #356](https://github.com/medialize/URI.js/issues/356)
-* adding setting [`URI.preventInvalidHostname`](http://medialize.github.io/URI.js/docs.html#setting-preventInvalidHostname) to control if an error should be thrown on invalid input - [Issue #352](https://github.com/medialize/URI.js/issues/352), [Issue #354](https://github.com/medialize/URI.js/issues/354), [Issue #355](https://github.com/medialize/URI.js/issues/355) - effectively making the changes of version 1.18.11 opt-in rather than default.
-
-### 1.18.12 (August 9th 2017) ###
-
-* making [`URI.parse()`](http://medialize.github.io/URI.js/docs.html#static-parse) allow `_` in hostname - [Issue #347](https://github.com/medialize/URI.js/issues/347), [PR #348](https://github.com/medialize/URI.js/issues/348)
-* fixing [`URI.parse()`](http://medialize.github.io/URI.js/docs.html#static-parse) to not use `Number.isNumber()` for IE compatibility - [Issue #350](https://github.com/medialize/URI.js/issues/350), [PR #351](https://github.com/medialize/URI.js/issues/351)
-
-### 1.18.11 (August 8th 2017) ###
-
-* making [`URI.parse()`](http://medialize.github.io/URI.js/docs.html#static-parse) throw on invalid port and hostname - [Issue #344](https://github.com/medialize/URI.js/issues/344), [PR #345](https://github.com/medialize/URI.js/issues/345)
-
-### 1.18.10 (March 30th 2017) ###
-
-* adding support for [CentralNic](https://en.wikipedia.org/wiki/CentralNic#Second-level_domains) Second Level Domains - [Issue #333](https://github.com/medialize/URI.js/issues/333)
-
-### 1.18.9 (March 6th 2017) ###
-
-* adding option `strict` to [`URITemplate()`](http://medialize.github.io/URI.js/uri-template.html) in order to throw an exception in case a placeholder could not be replaced - [PR #330](https://github.com/medialize/URI.js/issues/330)
-
-### 1.18.8 (February 27th 2017) ###
-
-* fixing [`.absoluteTo()`](http://medialize.github.io/URI.js/docs.html#absoluteto) to not resolve URIs containing a scheme - [Issue #328](https://github.com/medialize/URI.js/issues/328)
-
-### 1.18.7 (February 13th 2017) ###
-
-* fixing [`URI.withinString()`](http://medialize.github.io/URI.js/docs.html#static-withinString) to ignore `www.` and `http://.` - [Issue #327](https://github.com/medialize/URI.js/issues/327)
-
-### 1.18.6 (February 10th 2017) ###
-
-* fixing [`URITemplate()`](http://medialize.github.io/URI.js/uri-template.html) to allow `'` (single quotes) in literals - [PR #326](https://github.com/medialize/URI.js/pull/326)
-
-### 1.18.5 (January 30th 2017) ###
-
-* prevent `new URI(null)` from blowing up - [PR #321](https://github.com/medialize/URI.js/issues/321)
-* fixing [`URI.withinString()`](http://medialize.github.io/URI.js/docs.html#static-withinString) to properly handle fully contained parentheses - [Issue #325](https://github.com/medialize/URI.js/issues/325)
-
-### 1.18.4 (December 4th 2016) ###
-
-* fixing [`URI.withinString()`](http://medialize.github.io/URI.js/docs.html#static-withinString) to capture balanced parentheses - [Issue #247](https://github.com/medialize/URI.js/issues/247)
-
-### 1.18.3 (November 17th 2016) ###
-
-* fixing UMD wrappers to properly detect CommonJS - [Issue #318](https://github.com/medialize/URI.js/issues/318), [PR #319](https://github.com/medialize/URI.js/pull/319)
-
-### 1.18.2 (September 25th 2016) ###
-
-* fixing [`URI.withinString()`](http://medialize.github.io/URI.js/docs.html#static-withinString) to allow callback to return `undefined` or `string` - [Issue #303](https://github.com/medialize/URI.js/issues/303)
-* fixing [`.absoluteTo()`](http://medialize.github.io/URI.js/docs.html#absoluteto) to properly resolve relative paths for fragment-only URLs
-
-### 1.18.1 (May 29th 2016) ###
-
-* fixing UMD wrapper of `jquery.URI.js` - [Issue #295](https://github.com/medialize/URI.js/issues/295)
-
-### 1.18.0 (April 30th 2016) ###
-
-* adding [`URI.joinPaths()`](http://medialize.github.io/URI.js/docs.html#static-joinPaths) to compose paths from directory tokens - [Issue #285](https://github.com/medialize/URI.js/issues/285)
-* fixing [`URITemplate()`](http://medialize.github.io/URI.js/uri-template.html) to allow `.` in variable names - [PR #287](https://github.com/medialize/URI.js/pull/287)
-* fixing [`URITemplate()`](http://medialize.github.io/URI.js/uri-template.html) to reject invalid literals - [PR #289](https://github.com/medialize/URI.js/pull/289)
-* fixing [`URITemplate()`](http://medialize.github.io/URI.js/uri-template.html) to reject prefix modifier on composite values - [PR #290](https://github.com/medialize/URI.js/pull/290)
-* fixing [`URI.buildUserinfo()`](http://medialize.github.io/URI.js/docs.html#static-buildUserinfo) to properly serialize password-only values - [PR #293](https://github.com/medialize/URI.js/pull/293)
-
-### 1.17.1 (February 25th 2016) ###
-
-* fixing [`.normalizePath()`](http://medialize.github.io/URI.js/docs.html#normalize-path) to properly handle percent-encoded dot segments and leading dots in basename - [Issue #264](https://github.com/medialize/URI.js/issues/264), by [JordanMilne](https://github.com/JordanMilne)
-* fixing [`.hasQuery()`](http://medialize.github.io/URI.js/docs.html#search-has) to accept `RegExp` for name argument - [Issue #274](https://github.com/medialize/URI.js/issues/274), [Issue #277](https://github.com/medialize/URI.js/issues/277) by [mbrodala](https://github.com/mbrodala)
-
-### 1.17.0 (November 13th 2015) ###
-
-* fixing [`URI.removeQuery()`](http://medialize.github.io/URI.js/docs.html#search-remove) to cast values to string before matching - [Issue #250](https://github.com/medialize/URI.js/pull/250), [Issue #252](https://github.com/medialize/URI.js/pull/252), by [ryanelian](https://github.com/ryanelian) and [Siltaar](https://github.com/Siltaar)
-* fixing [`.segment()`](http://medialize.github.io/URI.js/docs.html#accessors-segment) to allow appending an empty element - [Issue #236](https://github.com/medialize/URI.js/issues/236), [Issue #253](https://github.com/medialize/URI.js/pull/253), by [orlando](https://github.com/orlando)
-* adding [`.origin()`](http://medialize.github.io/URI.js/docs.html#accessors-origin) to get protocol and authority, counter-part to `.resource()` - [Issue #210](https://github.com/medialize/URI.js/issues/210), [Issue #263](https://github.com/medialize/URI.js/pull/263), by [justinmchase](https://github.com/justinmchase)
-
-### 1.16.1 (September 19th 2015) ###
-
-Package Management Cleanup - no changes to source code!
-
-* renaming package to "urijs", was "URIjs" (because npm decided to go lower-case at some point and maintaining capitals in your package name poses all sorts of stupid issues)
-* removing [jam](http://jamjs.org/), [spm](http://spmjs.org/), `component.json` and `URI.jquery.json` as nobody cared that URI.js was stuck on 1.14 for a year
-
-### 1.16.0 (July 24th 2015) ###
-
-* **SECURITY** fixing [`URI.parseHost()`](http://medialize.github.io/URI.js/docs.html#static-parseHost) to rewrite `\` to `/` as Node and Browsers do - [Issue #233](https://github.com/medialize/URI.js/pull/233)
-* fixing [`.host()`](http://medialize.github.io/URI.js/docs.html#accessors-host) and [`.authority()`](http://medialize.github.io/URI.js/docs.html#accessors-authority) to raise an error if they contain a path segment (extending [Issue #233](https://github.com/medialize/URI.js/pull/233))
-
-### 1.15.2 (July 2nd 2015) ###
-
-* fixing [`URI.parseQuery()`](http://medialize.github.io/URI.js/docs.html#static-parseQuery) to accept `?foo&foo=bar` - [Issue #220](https://github.com/medialize/URI.js/issues/220)
-* fixing [`.segmentCoded()`](http://medialize.github.io/URI.js/docs.html#accessors-segmentCoded) to encode (instead of decode) array input - [Issue #223](https://github.com/medialize/URI.js/issues/223)
-* fixing [`.normalizePath()`](http://medialize.github.io/URI.js/docs.html#normalize-path) to properly resolve `/foo/..` to `/` - [Issue #224](https://github.com/medialize/URI.js/issues/224)
-* fixing [`.relativeTo()`](http://medialize.github.io/URI.js/docs.html#relativeto) to resolve `/foo/` and `/foo/bar` to `./` instead of empty string - [Issue #226](https://github.com/medialize/URI.js/issues/226)
-* fixing `bower.json`'s `"main": "src/URI.js"` - [Issue #227](https://github.com/medialize/URI.js/issues/227)
-
-### 1.15.1 (April 5th 2015) ###
-
-* fixing `URI()` to match behavior of `new URI()` (caused by [#196](https://github.com/medialize/URI.js/issues/196)) - [Issue #205](https://github.com/medialize/URI.js/issues/205)
-* fixing [`URI.removeQuery()`](http://medialize.github.io/URI.js/docs.html#search-remove) to accept RegExp for name and value arguments - ([Issue #204](https://github.com/medialize/URI.js/issues/204), [peterwillis](https://github.com/peterwillis))
-
-### 1.15.0 (April 1st 2015 - no joke, promise!) ###
-
-* fixing `URI(undefined)` to throw TypeError - ([Issue #189](https://github.com/medialize/URI.js/issues/189), [Issue #196](https://github.com/medialize/URI.js/issues/196), [eakron](https://github.com/eakron)) - *tiny backward-compatibility-break*
-* fixing [`.absoluteTo()`](http://medialize.github.io/URI.js/docs.html#absoluteto) - ([Issue #200](https://github.com/medialize/URI.js/issues/200), [giltayar](https://github.com/giltayar))
-* fixing [`.pathname()`](http://medialize.github.io/URI.js/docs.html#accessors-pathname) to properly en/decode URN paths - ([Issue #201](https://github.com/medialize/URI.js/pull/201), [mlefoster](https://github.com/mlefoster))
-* fixing URI normalization to properly handle URN paths based on [RFC 2141](https://www.ietf.org/rfc/rfc2141.txt) syntax - ([Issue #201](https://github.com/medialize/URI.js/pull/201), [mlefoster](https://github.com/mlefoster))
- * fixing [`.normalize()`](http://medialize.github.io/URI.js/docs.html#normalize) and [`.normalizePath()`](http://medialize.github.io/URI.js/docs.html#normalize-path) to properly normalize URN paths
- * adding `URI.encodeUrnPathSegment()`
- * adding `URI.decodeUrnPathSegment()`
- * adding `URI.decodeUrnPath()`
- * adding `URI.recodeUrnPath()`
-
-### 1.14.2 (February 25th 2015) ###
-
-* fixing inclusion of LICENSE in packages - ([Issue #174](https://github.com/medialize/URI.js/issues/174))
-* fixing [`URI.parseHost()`](http://medialize.github.io/URI.js/docs.html#static-parseHost) to not interpret colon in path as IPv6 hostname - ([Issue #190](https://github.com/medialize/URI.js/issues/190))
-* adding meta data for [SPM](http://www.spmjs.io/) package manager - ([Issue #176](https://github.com/medialize/URI.js/issues/176))
-* adding license meta to `bower.json`
-
-### 1.14.1 (October 1st 2014) ###
-
-* fixing handling of String instances (not string primitives) - ([Issue #146](https://github.com/medialize/URI.js/issues/146))
-* fixing Firefox [`.watch()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch) interfering with `.parseQuery()` - ([Issue #169](https://github.com/medialize/URI.js/issues/169))
-* fixing [`addQuery()`](http://medialize.github.io/URI.js/docs.html#search-add) to not throw error on null value - ([Issue #171](https://github.com/medialize/URI.js/issues/171))
-
-### 1.14.0 (September 8th 2014) ###
-
-* adding Hungarian second level domains - ([Issue #159](https://github.com/medialize/URI.js/issues/159))
-* adding `` and `` to supported DOM attributes - ([Issue #160](https://github.com/medialize/URI.js/issues/160)), ([Issue #161](https://github.com/medialize/URI.js/issues/161))
-* fixing `file://hostname/path` parsing - ([Issue #158](https://github.com/medialize/URI.js/issues/158))
-* fixing `.decodePathSegment()` to not throw malformed URI error - ([Issue #163](https://github.com/medialize/URI.js/issues/163))
-
-### 1.13.2 (May 29th 2014) ###
-
-* changes to package management manifests only
-
-### 1.13.1 (April 16th 2014) ###
-
-* fixing IPv6 normalization (bad variable name) - ([Issue #145](https://github.com/medialize/URI.js/issues/145))
-* adding grunt and jshint
-* changing code style to 2 spaces indentation, single quote strings
-* applying `'use strict';` everywhere
-* fixing jshint warnings
-
-### 1.13.0 (April 15th 2014) ###
-
-* fixing [`URI.parseHost()`](http://medialize.github.io/URI.js/docs.html#static-parseHost) and [`URI.buildHost()`](http://medialize.github.io/URI.js/docs.html#static-buildHost) to properly parse and build the IPv6 examples given in [RFC2732 Format for Literal IPv6 Addresses in URL's](http://tools.ietf.org/html/rfc2732#section-2) - ([Issue #144](https://github.com/medialize/URI.js/issues/144))
-* adding performance improvements to SecondLevelDomain - ([PR #122](https://github.com/medialize/URI.js/pull/122), [gorhill](https://github.com/gorhill))
-
-### 1.12.1 (March 8th 2014) ###
-
-* fixing [`.encodeQuery()`](http://medialize.github.io/URI.js/docs.html#static-encodeQuery) and [`.decodeQuery()`](http://medialize.github.io/URI.js/docs.html#static-decodeQuery) to respect [`URI.escapeQuerySpace`](http://medialize.github.io/URI.js/docs.html#setting-escapeQuerySpace) - ([Issue #137](https://github.com/medialize/URI.js/issues/137))
-* fixing fragment plugins to return URI for simpler loading - ([Issue #139](https://github.com/medialize/URI.js/issues/139))
-
-### 1.12.0 (January 23rd 2014) ###
-
-* fixing [`.absoluteTo()`](http://medialize.github.io/URI.js/docs.html#absoluteto) to comply with [RFC3986 Reference Resolution Examples](http://tools.ietf.org/html/rfc3986#section-5.4) - ([Issue #113](https://github.com/medialize/URI.js/issues/113))
-* fixing [`.normalizePath()`](http://medialize.github.io/URI.js/docs.html#normalize-path) to maintain leading parent references (`../`) for relative paths, while removing them for absolute paths - ([Issue #133](https://github.com/medialize/URI.js/issues/133))
-* fixing `URI.protocol_expression` to properly accept `.` in compliance with [RFC 3986 - Scheme](http://tools.ietf.org/html/rfc3986#section-3.1) - ([Issue #132](https://github.com/medialize/URI.js/issues/132))
-* fixing [`URI.withinString()`](http://medialize.github.io/URI.js/docs.html#static-withinString) to not use backtracking prone regular expression `URI.find_uri_expression` anymore - ([Issue #131](https://github.com/medialize/URI.js/issues/131))
-* fixing [`URI.withinString()`](http://medialize.github.io/URI.js/docs.html#static-withinString) to accept options `ignore` and `ignoreHtml` to allow better control over which detected URLs get handled - ([Issue #117](https://github.com/medialize/URI.js/issues/117))
-* fixing [`URI.withinString()`](http://medialize.github.io/URI.js/docs.html#static-withinString) to accept option `start` to specify the RegExp used for finding the beginning of an URL (defaults to `/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi`) - ([Issue #115](https://github.com/medialize/URI.js/issues/115))
-
-### 1.11.2 (August 14th 2013) ###
-
-* fixing regression for Node.js introduced by `fixing unsafe eval by using UMD's root` - ([Issue #107](https://github.com/medialize/URI.js/issues/107))
-* fixing parser to accept malformed userinfo (non-encoded email address) - ([Issue #108](https://github.com/medialize/URI.js/issues/108))
-
-### 1.11.1 (August 13th 2013) ###
-
-* fixing inconsistent [`.relativeTo()`](http://medialize.github.io/URI.js/docs.html#relativeto) results caused by inconsistent URI component handling - ([Issue #103](https://github.com/medialize/URI.js/issues/103))
-* fixing unsafe eval by using UMD's root - ([Issue #105](https://github.com/medialize/URI.js/issues/105))
-* fixing [`.segment()`](http://medialize.github.io/URI.js/docs.html#accessors-segment) to allow appending an empty element - ([Issue #106](https://github.com/medialize/URI.js/issues/106))
-* fixing [`.segment()`](http://medialize.github.io/URI.js/docs.html#accessors-segment) to collapse empty elements in array notation
-
-### 1.11.0 (August 6th 2013) ###
-
-* adding [`.segmentCoded()`](http://medialize.github.io/URI.js/docs.html#accessors-segmentCoded) to provide en/decoding interface to `.segment()` - ([Issue #79](https://github.com/medialize/URI.js/issues/79))
-* optimize [`.relativeTo()`](http://medialize.github.io/URI.js/docs.html#relativeto) results - ([Issue #78](https://github.com/medialize/URI.js/issues/78), [Issue #95](https://github.com/medialize/URI.js/issues/95))
-* removing obsolete code fragments from `URI.parse()` and `relativeTo()` - ([Issue #100](https://github.com/medialize/URI.js/issues/100))
-* adding setting [`URI.escapeQuerySpace`](http://medialize.github.io/URI.js/docs.html#setting-escapeQuerySpace) to control if query string should escape spaces using `+` or `%20` - ([Issue #74](https://github.com/medialize/URI.js/issues/74))
-* updating [Punycode.js](https://github.com/bestiejs/punycode.js/) to version 1.2.3
-* fixing internal `strictEncodeURIComponent()` to work in Firefox 3.6 - ([Issue #91](https://github.com/medialize/URI.js/issues/91))
-* fixing [`.normalizePath()`](http://medialize.github.io/URI.js/docs.html#normalize-path) to properly resolve `/.` and `/.//` to `/` - ([Issue #97](https://github.com/medialize/URI.js/issues/97))
-* fixing [`.path()`](http://medialize.github.io/URI.js/docs.html#accessors-pathname) to return empty string if there is no path - ([Issue #82](https://github.com/medialize/URI.js/issues/82))
-* fixing crashing of `URI.decodeQuery()` on malformed input - now returns original undecoded data - ([Issue #87](https://github.com/medialize/URI.js/issues/87), [Issue #92](https://github.com/medialize/URI.js/issues/92))
-* fixing build tool - ([Issue #83](https://github.com/medialize/URI.js/issues/83))
-* fixing for-loop to make closure compiler happy - ([Issue #93](https://github.com/medialize/URI.js/issues/93))
-* adding [`URI.noConflict()`](http://medialize.github.io/URI.js/docs.html#static-noConflict) - ([Issue #84](https://github.com/medialize/URI.js/issue/84))
-* fixing whitespace in code - ([Issue #84](https://github.com/medialize/URI.js/issue/84))
-* fixing [`.readable()`](http://medialize.github.io/URI.js/docs.html#readable) to decode the hash value as well - ([Issue #90](https://github.com/medialize/URI.js/issue/90))
-* prevent `jquery.URI.js` from temporarily using `window.location` as the `href` of an empty attribute of a DOM element - ([Issue #94](https://github.com/medialize/URI.js/issues/94))
-* fixing internal `getType()` for IE8 with undefined value - ([Issue #96](https://github.com/medialize/URI.js/issues/96))
-* adding DOM elements to [URI constructor](http://medialize.github.io/URI.js/docs.html#constructor) - ([Issue #77](https://github.com/medialize/URI.js/issues/77)):
- * [``](http://www.w3.org/html/wg/drafts/html/master/text-level-semantics.html#the-a-element)
- * [``](http://www.w3.org/html/wg/drafts/html/master/grouping-content.html#the-blockquote-element)
- * [` `](http://www.w3.org/html/wg/drafts/html/master/document-metadata.html#the-link-element)
- * [` `](http://www.w3.org/html/wg/drafts/html/master/document-metadata.html#the-base-element)
- * [`` that sucker, too.
-
-### Node.js and NPM ###
-
-Install with `npm install urijs` or add `"urijs"` to the dependencies in your `package.json`.
-
-```javascript
-// load URI.js
-var URI = require('urijs');
-// load an optional module (e.g. URITemplate)
-var URITemplate = require('urijs/src/URITemplate');
-
-URI("/foo/bar/baz.html")
- .relativeTo("/foo/bar/sub/world.html")
- // -> ../baz.html
-```
-
-### RequireJS ###
-
-Clone the URI.js repository or use a package manager to get URI.js into your project.
-
-```javascript
-require.config({
- paths: {
- urijs: 'where-you-put-uri.js/src'
- }
-});
-
-require(['urijs/URI'], function(URI) {
- console.log("URI.js and dependencies: ", URI("//amazon.co.uk").is('sld') ? 'loaded' : 'failed');
-});
-require(['urijs/URITemplate'], function(URITemplate) {
- console.log("URITemplate.js and dependencies: ", URITemplate._cache ? 'loaded' : 'failed');
-});
-```
-
-## Minify ##
-
-See the [build tool](http://medialize.github.io/URI.js/build.html) or use [Google Closure Compiler](http://closure-compiler.appspot.com/home):
-
-```
-// ==ClosureCompiler==
-// @compilation_level SIMPLE_OPTIMIZATIONS
-// @output_file_name URI.min.js
-// @code_url http://medialize.github.io/URI.js/src/IPv6.js
-// @code_url http://medialize.github.io/URI.js/src/punycode.js
-// @code_url http://medialize.github.io/URI.js/src/SecondLevelDomains.js
-// @code_url http://medialize.github.io/URI.js/src/URI.js
-// @code_url http://medialize.github.io/URI.js/src/URITemplate.js
-// ==/ClosureCompiler==
-```
-
-
-## Resources ##
-
-Documents specifying how URLs work:
-
-* [URL - Living Standard](http://url.spec.whatwg.org/)
-* [RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax](http://tools.ietf.org/html/rfc3986)
-* [RFC 3987 - Internationalized Resource Identifiers (IRI)](http://tools.ietf.org/html/rfc3987)
-* [RFC 2732 - Format for Literal IPv6 Addresses in URL's](http://tools.ietf.org/html/rfc2732)
-* [RFC 2368 - The `mailto:` URL Scheme](https://www.ietf.org/rfc/rfc2368.txt)
-* [RFC 2141 - URN Syntax](https://www.ietf.org/rfc/rfc2141.txt)
-* [IANA URN Namespace Registry](http://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml)
-* [Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)](http://tools.ietf.org/html/rfc3492)
-* [application/x-www-form-urlencoded](http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type) (Query String Parameters) and [application/x-www-form-urlencoded encoding algorithm](http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#application/x-www-form-urlencoded-encoding-algorithm)
-* [What every web developer must know about URL encoding](http://blog.lunatech.com/2009/02/03/what-every-web-developer-must-know-about-url-encoding)
-
-Informal stuff
-
-* [Parsing URLs for Fun and Profit](http://tools.ietf.org/html/draft-abarth-url-01)
-* [Naming URL components](http://tantek.com/2011/238/b1/many-ways-slice-url-name-pieces)
-
-How other environments do things
-
-* [Java URI Class](http://docs.oracle.com/javase/7/docs/api/java/net/URI.html)
-* [Java Inet6Address Class](http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Inet6Address.html)
-* [Node.js URL API](http://nodejs.org/docs/latest/api/url.html)
-
-[Discussion on Hacker News](https://news.ycombinator.com/item?id=3398837)
-
-### Forks / Code-borrow ###
-
-* [node-dom-urls](https://github.com/passy/node-dom-urls) passy's partial implementation of the W3C URL Spec Draft for Node
-* [urlutils](https://github.com/cofounders/urlutils) cofounders' `window.URL` constructor for Node
-
-### Alternatives ###
-
-If you don't like URI.js, you may like one of the following libraries. (If yours is not listed, drop me a line…)
-
-#### Polyfill ####
-
-* [DOM-URL-Polyfill](https://github.com/arv/DOM-URL-Polyfill/) arv's polyfill of the [DOM URL spec](https://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#interface-urlutils) for browsers
-* [inexorabletash](https://github.com/inexorabletash/polyfill/#whatwg-url-api) inexorabletash's [WHATWG URL API](http://url.spec.whatwg.org/)
-
-#### URL Manipulation ####
-
-* [The simple URL Mutation "Hack"](http://jsfiddle.net/rodneyrehm/KkGUJ/) ([jsPerf comparison](http://jsperf.com/idl-attributes-vs-uri-js))
-* [URL.js](https://github.com/ericf/urljs)
-* [furl (Python)](https://github.com/gruns/furl)
-* [mediawiki Uri](https://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/resources/mediawiki/mediawiki.Uri.js?view=markup) (needs mw and jQuery)
-* [jurlp](https://github.com/tombonner/jurlp)
-* [jsUri](https://github.com/derek-watson/jsUri)
-
-#### URL Parsers ####
-
-* [The simple URL Mutation "Hack"](http://jsfiddle.net/rodneyrehm/KkGUJ/) ([jsPerf comparison](http://jsperf.com/idl-attributes-vs-uri-js))
-* [URI Parser](http://blog.stevenlevithan.com/archives/parseuri)
-* [jQuery-URL-Parser](https://github.com/allmarkedup/jQuery-URL-Parser)
-* [Google Closure Uri](https://google.github.io/closure-library/api/class_goog_Uri.html)
-* [URI.js by Gary Court](https://github.com/garycourt/uri-js)
-
-#### URI Template ####
-
-* [uri-template](https://github.com/rezigned/uri-template.js) (supporting extraction as well) by Rezigne
-* [uri-templates](https://github.com/geraintluff/uri-templates) (supporting extraction as well) by Geraint Luff
-* [uri-templates](https://github.com/marc-portier/uri-templates) by Marc Portier
-* [uri-templates](https://github.com/geraintluff/uri-templates) by Geraint Luff (including reverse operation)
-* [URI Template JS](https://github.com/fxa/uritemplate-js) by Franz Antesberger
-* [Temple](https://github.com/brettstimmerman/temple) by Brett Stimmerman
-* ([jsperf comparison](http://jsperf.com/uri-templates/2))
-
-#### Various ####
-
-* [TLD.js](https://github.com/oncletom/tld.js) - second level domain names
-* [Public Suffix](http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1) - second level domain names
-* [uri-collection](https://github.com/scivey/uri-collection) - underscore based utility for working with many URIs
-
-## Authors ##
-
-* [Rodney Rehm](https://github.com/rodneyrehm)
-* [Various Contributors](https://github.com/medialize/URI.js/graphs/contributors)
-
-
-## Contains Code From ##
-
-* [punycode.js](http://mths.be/punycode) - Mathias Bynens
-* [IPv6.js](http://intermapper.com/support/tools/IPV6-Validator.aspx) - Rich Brown - (rewrite of the original)
-
-
-## License ##
-
-URI.js is published under the [MIT license](http://www.opensource.org/licenses/mit-license). Until version 1.13.2 URI.js was also published under the [GPL v3](http://opensource.org/licenses/GPL-3.0) license - but as this dual-licensing causes more questions than helps anyone, it was dropped with version 1.14.0.
-
-
-## Changelog ##
-
-moved to [Changelog](./CHANGELOG.md)
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/about-uris.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/about-uris.html
deleted file mode 100644
index d22912db08..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/about-uris.html
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-
-
-
- URI.js - About URIs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Understanding URIs
-
-
- Uniform Resource Identifiers (URI) can be one of two things, a Uniform Resource Locator (URL) or a Uniform Resource Name (URN).
- You likely deal with URLs most of the time. See RFC 3986 for a proper definition of the terms URI, URL and URN
-
-
-
- URNs name a resource.
- They are (supposed to) designate a globally unique, permanent identifier for that resource.
- For example, the URN urn:isbn:0201896834 uniquely identifies Volume 1 of Donald Knuth's The Art of Computer Porgramming .
- Even if that book goes out of print, that URN will continue to identify that particular book in that particular printing.
- While the term "URN" technically refers to a specific URI scheme laid out by RFC 2141 ,
- the previously-mentioned RFC 3986 indicates that in common usage "URN" refers to any kind of URI that identifies a resource.
-
-
-
- URLs locate a resource.
- They designate a protocol to use when looking up the resource and provide an "address" for finding the resource within that scheme.
- For example, the URL http://tools.ietf.org/html/rfc3986 tells the consumer (most likely a web browser)
- to use the HTTP protocol to access whatever site is found at the /html/rfc3986 path of tools.ietf.org.
- URLs are not permanent; it is possible that in the future that the IETF will move to a different domain or even that some other organization will acquire the rights to tools.ietf.org.
- It is also possible that multiple URLs may locate the same resource;
- for example, an admin at the IETF might be able to access the document found at the example URL via the ftp:// protocol.
-
-
-
URLs and URNs in URI.js
-
-
- The distinction between URLs and URNs is one of semantics .
- In principle, it is impossible to tell, on a purely syntactical level, whether a given URI is a URN or a URL without knowing more about its scheme.
- Practically speaking, however, URIs that look like HTTP URLs (scheme is followed by a colon and two slashes, URI has an authority component, and paths are delimited by slashes) tend to be URLs,
- and URIs that look like RFC 2141 URNs (scheme is followed by a colon, no authority component, and paths are delimited by colons) tend to be URNs (in the broad sense of "URIs that name").
-
-
-
- So, for the purposes of URI.js, the distinction between URLs and URNs is treated as one of syntax .
- The main functional differences between the two are that (1) URNs will not have an authority element and
- (2) when breaking the path of the URI into segments, the colon will be used as the delimiter rather than the slash.
- The most surprising result of this is that mailto: URLs will be considered by URI.js to be URNs rather than URLs.
- That said, the functional differences will not adversely impact the handling of those URLs.
-
-
-
Components of an URI
-
RFC 3986 Section 3 visualizes the structure of URI s as follows:
-
-URL: foo://example.com:8042/over/there?name=ferret#nose
- \_/ \______________/\_________/ \_________/ \__/
- | | | | |
- scheme authority path query fragment
- | _____________________|__
- / \ / \
- URN: urn:example:animal:ferret:nose
-
-
Components of an URL in URI.js
-
-
- origin
- __________|__________
- / \
- authority
- | __________|_________
- | / \
- userinfo host resource
- | __|___ ___|___ __________|___________
- | / \ / \ / \
- username password hostname port path & segment query fragment
- | __|___ __|__ ______|______ | __________|_________ ____|____ |
- | / \ / \ / \ / \ / \ / \ / \
- foo://username:password@www.example.com:123/hello/world/there.html?name=ferret#foo
- \_/ \ / \ \ / \__________/ \ \__/
- | | \ | | \ |
- scheme subdomain \ tld directory \ suffix
- \____/ \___/
- | |
- domain filename
-
-
-
-
- In Javascript the query is often referred to as the search .
- URI.js provides both accessors with the subtle difference of .search() beginning with the ?-character
- and .query() not.
-
-
- In Javascript the fragment is often referred to as the hash .
- URI.js provides both accessors with the subtle difference of .hash() beginning with the #-character
- and .fragment() not.
-
-
-
Components of an URN in URI.js
-
-
- urn:example:animal:ferret:nose?name=ferret#foo
- \ / \________________________/ \_________/ \ /
- | | | |
- scheme path & segment query fragment
-
-
-
While RFC 2141 does not define URNs having a query or fragment component, URI.js enables these accessors for convenience.
-
-
URLs - Man Made Problems
-
-
URLs (URIs, whatever) aren't easy. There are a couple of issues that make this simple text representation of a resource a real pain
-
- Look simple but have tricky encoding issues
- Domains aren't part of the specification
- Query String Format isn't part of the specification
- Environments (PHP, JS, Ruby, …) handle Query Strings quite differently
-
-
-
Parsing (seemingly) invalid URLs
-
Because URLs look very simple, most people haven't read the formal specification. As a result, most people get URLs wrong on many different levels. The one thing most everybody screws up is proper encoding/escaping.
-
http://username:pass:word@example.org/ is such a case. Often times homebrew URL handling misses escaping the less frequently used parts such as the userinfo.
-
http://example.org/@foo that "@" doesn't have to be escaped according to RFC3986. Homebrew URL handlers often just treat everything between "://" and "@" as the userinfo.
-
some/path/:foo is a valid relative path (as URIs don't have to contain scheme and authority). Since homebrew URL handlers usually just look for the first occurence of ":" to delimit the scheme, they'll screw this up as well.
-
+ is the proper escape-sequence for a space-character within the query string component, while every other component prefers %20. This is due to the fact that the actual format used within the query string component is not defined in RFC 3986, but in the HTML spec.
-
There is encoding and strict encoding - and Javascript won't get them right: encodeURIComponent()
-
-
Top Level Domains
-
The hostname component can be one of may things. An IPv4 or IPv6 address, an IDN or Punycode domain name, or a regular domain name. While the format (and meaning) of IPv4 and IPv6 addresses is defined in RFC 3986, the meaning of domain names is not.
-
DNS is the base of translating domain names to IP addresses. DNS itself only specifies syntax, not semantics. The missing semantics is what's driving us crazy here.
-
ICANN provides a list of registered Top Level Domains (TLD). There are country code TLDs (ccTLDs, assigned to each country, like ".uk" for United Kindom) and generic TLDs (gTLDs, like ".xxx" for you know what). Also note that a TLD may be non-ASCII .香港 (IDN version of HK, Hong Kong).
-
IDN TLDs such as .香港 and the fact that any possible new TLD could pop up next month has lead to a lot of URL/Domain verification tools to fail.
-
-
Second Level Domains
-
To make Things worse, people thought it to be a good idea to introduce Second Level Domains (SLD, ".co.uk" - the commercial namespace of United Kingdom). These SLDs are not up to ICANN to define, they're handled individually by each NIC (Network Information Center, the orgianisation responsible for a specific TLD).
-
Since there is no central oversight, things got really messy in this particular space. Germany doesn't do SDLs, Australia does. Australia has different SLDs than the United Kingdom (".csiro.au" but no ".csiro.uk"). The individual NICs are not required to publish their arbitrarily chosen SLDs in a defined syntax anywhere.
-
You can scour each NIC's website to find some hints at their SLDs. You can look them up on Wikipedia and hope they're right. Or you can use PublicSuffix .
-
Speaking of PublicSuffix, it's time mentioning that browser vendors actually keep a list of known Second Level Domains. They need to know those for security issues. Remember cookies? They can be read and set on a domain level. What do you think would happen if "co.uk" was treated as the domain? amazon.co.uk would be able to read the cookies of google.co.uk. PublicSuffix also contains custom SLDs, such as .dyndns.org. While this makes perfect sense for browser security, it's not what we need for basic URL handling.
-
TL;DR: It's a mess.
-
-
The Query String
-
PHP (parse_str() ) will automatically parse the query string and populate the superglobal $_GET for you. ?foo=1&foo=2 becomes $_GET = array('foo' => 2);, while ?foo[]=1&foo[]=2 becomes $_GET = array('foo' => array("1", "2"));.
-
Ruby's CGI.parse() turns ?a=1&a=2 into {"a" : ["1", "2"]}, while Ruby on Rails chose the PHP-way.
-
Python's parse_qs() doesn't care for [] either.
-
Most other languages don't follow the []-style array-notation and deal with this mess differently.
-
TL;DR: You need to know the target-environment, to know how complex query string data has to be encoded
-
-
The Fragment
-
Given the URL http://example.org/index.html#foobar, browsers only request http://example.org/index.html, the fragment #foobar is a client-side thing.
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/bower.json b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/bower.json
deleted file mode 100644
index a043b31a86..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/bower.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "urijs",
- "version": "1.19.1",
- "main": "src/URI.js",
- "ignore": [
- ".*",
- "*.css",
- "/*.js",
- "/*.html",
- "/*.json",
- "utils",
- "test",
- "prettify"
- ],
- "license": "MIT"
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/build.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/build.html
deleted file mode 100644
index e36b47a65a..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/build.html
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
-
- URI.js - Custom Build
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Building URI.js
-
- Warning: The output of this "build tool" is not compatible
- with module loaders (like RequireJS), because it only concatenates and minifies files.
- Only use this if you plan on loading the file by way of <script> element.
-
-
Choose the Modules you want to include in your custom build of URI.js:
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/build.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/build.js
deleted file mode 100644
index df1958271d..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/build.js
+++ /dev/null
@@ -1,78 +0,0 @@
-(function($, undefined){
- window.URL = window.webkitURL || window.URL;
- window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
-
-function build(files) {
- var $out = $('#output'),
- $progress = $('#prog'),
- sources = [],
- connections = [],
- source;
-
- $out.parent().hide();
- $progress.show().prop('value', 1).text('Loading Files');
-
- for (var i = 0, length = files.length; i < length; i++) {
- sources.push("");
- (function(i, file){
- connections.push($.get("src/" + file, function(data) {
- sources[i] = data;
- }, "text"));
- })(i, files[i]);
- }
-
- $.when.apply($, connections).done(function() {
- $progress.prop('value', 2).text('Compiling Scripts');
- $.post('https://closure-compiler.appspot.com/compile', {
- js_code: sources.join("\n\n"),
- compilation_level: "SIMPLE_OPTIMIZATIONS",
- output_format: "text",
- output_info: "compiled_code"
- }, function(data) {
- var code = "/*! URI.js v1.19.1 http://medialize.github.io/URI.js/ */\n/* build contains: " + files.join(', ') + " */\n" + data;
- $progress.hide();
- $out.val(code).parent().show();
- $out.prev().find('a').remove();
- $out.prev().prepend(download(code));
- }).error(function() {
- alert("Your browser is incapable of cross-domain communication.\nPlease see instructions for manual build below.");
- });
- });
-};
-
-function download(code) {
- var blob = new Blob([code], {type: 'text\/javascript'});
-
- var a = document.createElement('a');
- a.download = 'URI.js';
- a.href = window.URL.createObjectURL(blob);
- a.textContent = 'Download';
- a.dataset.downloadurl = ['text/javascript', a.download, a.href].join(':');
-
- return a;
-};
-
-$(function(){
- $('#builder').on('submit', function(e) {
- var $this = $(this),
- $files = $this.find('input:checked'),
- files = [];
-
- e.preventDefault();
- e.stopImmediatePropagation();
-
- if (!$files.length) {
- alert("please choose at least one file!");
- return;
- }
-
- $files.each(function() {
- var val = $(this).val();
- val.length && files.push(val);
- });
-
- build(files);
- });
-});
-
-})(jQuery);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/contributing.md b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/contributing.md
deleted file mode 100644
index dc66b342a5..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/contributing.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Contributing to URI.js #
-
-URI.js Project License: MIT License
-
-* You will only Submit Contributions where You have authored 100% of the content.
-* You will only Submit Contributions to which You have the necessary rights. This means that if You are employed You have received the necessary permissions from Your employer to make the Contributions.
-* Whatever content You Contribute will be provided under the project License.
-
----
-
-Thanks for your help!
-
-Pull Requests go into the branch **master**. The *gh-pages* branch is a presentation of the *master* branch at the last given release.
-
-Whenever you change code, make sure you run the test suite before sending a pull request. Please add tests for any features you add to the code base. We're using [QUnit](http://qunitjs.com/) for testing.
-
-We're looking forward to splitting URI.js in several files, each dealing with a specific domain, to make the 1800 lines of code more bearable to work with. This will lead to using [Grunt](http://gruntjs.com/) to build a distributable version (and the removal of `build.html`). We're not sure when we'll get to this. If you want to pitch in, just holler!
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/docs.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/docs.html
deleted file mode 100644
index 2feb9e439f..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/docs.html
+++ /dev/null
@@ -1,1410 +0,0 @@
-
-
-
-
-
- URI.js - API Documentation
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Constructing an URI
-
-
-
- Working with URI parts
-
-
-
- Working with the query string
-
-
-
- Working with the Fragment (Hash)
-
-
-
- Normalizing URLs
-
-
-
- Charsets / Encodings
-
-
- readable()
-
- Relative and Absolute URLs
-
-
-
- Comparing URLs
-
-
-
- Parsing URLs
-
-
-
- Serializing URLs
-
-
-
- Encoding and Decoding URLs
-
-
-
- Static Helper Functions
-
-
-
-
-
URI.js API
-
-
URI Constructor
-
var uri = new URI(); // same as new URI(location.href)
-// string
-var uri = new URI("http://example.org");
-
-// URI object for cloning
-var uri = new URI(new URI("http://example.org"));
-
-// URI parts object
-var uri = new URI({
- protocol: "http",
- hostname: "example.org"
-});
-
-// without new keyword
-var uri = URI("http://example.org");
-
-// resolving right in the constructor
-var uri = URI("../foobar.html", "http://example.org/hello/world.html");
-// which is exactly the same as
-URI("../foobar.html").absoluteTo("http://example.org/hello/world.html");
-// but specified in URL constructor
-
-
The following parts can be specified in an object:
-
var uri = new URI({
- protocol: "http", // no trailing :
- username: "user",
- password: "pass",
- hostname: "example.org",
- port: "80", // string, please
- // "path", not "pathname", sorry
- path: "/foo/bar.html",
- // "query", not "search", sorry
- query: "foo=bar&bar=baz", // no leading ?
- // "fragment", not "hash", sorry
- fragment: "frag" // no leading #
-});
-
-
using only components of URIs:
-
// Look ma! I'm only working the pathname
-var uri = new URI("some/directory/file.html");
-
-// Look ma! I'm only working the query string
-var uri = new URI("?foo=bar");
-
-// Look ma! I'm only working the fragment / hash
-var uri = new URI("#call-me-hash");
-
-// and any combination of the above…
-
-
using DOM elements:
-
var element = document.createElement('a');
-element.href = 'http://example.org';
-var uri = new URI(element);
-// uri.domain() === 'example.org';
-
The following DOM elements can be parsed:
-
-<a href="...">
-<blockquote cite="...">
-<link href="...">
-<base href="...">
-<script src="...">
-<form action="...">
-<input type="image" src="...">
-<img src="...">
-<area href="...">
-<iframe src="...">
-<embed src="...">
-<source src="...">
-<track src="...">
-
-
-any other element yields URI("")
-
-
-
cloning URIs
-
Get a copy of the current URI instance
-
var uri = new URI("http://example.org");
-var uri2 = uri.clone();
-
-uri2.tld("com");
-uri == "http://example.org/";
-uri2 == "http://example.com/";
-
-
href()
-
get and set the entire URI
-
var uri = URI("http://example.com");
-uri.href() === "http://example.com/";
-
-uri.href("ftp://google.org");
-uri.toString() === "ftp://google.org/"
-
-
toString(), valueOf()
-
serialize the URI to string. valueOf() is an alias to toString(), as string is the base primitive.
-
var uri = URI("http://example.com");
-var s = uri.toString();
-typeof s === "string";
-s === "http://example.com/";
-
-
-
protocol(), scheme()
-
.scheme() is an alias of .protocol()
-
var uri = new URI("http://example.org/foo/hello.html");
-// get protocol
-uri.protocol(); // returns string "http"
-// set protocol
-uri.protocol("ftp"); // returns the URI instance for chaining
-
-// relative scheme
-uri.protocol("");
-uri.toString() === "//example.org/foo/hello.html";
-
Throws a TypeError on illegal input, that is anything but [a-z0-9.+-] and [empty string] and null
-
-
username()
-
var uri = new URI("http://user:pass@example.org/foo/hello.html");
-// get username
-uri.username(); // returns string "user"
-// set username
-uri.username("user"); // returns the URI instance for chaining
-
-
password()
-
var uri = new URI("http://user:pass@example.org/foo/hello.html");
-// get password
-uri.password(); // returns string "pass"
-// set password
-uri.password("user"); // returns the URI instance for chaining
-
-
hostname()
-
var uri = new URI("http://example.org/foo/hello.html");
-// get hostname
-uri.hostname(); // returns string
-// set hostname
-uri.hostname("example.org"); // returns the URI instance for chaining
-
.hostname() returns the actual hostname, whereas .host() returns the hostname including the port
-
-
port()
-
var uri = new URI("http://example.org:8080/foo/hello.html");
-// get port
-uri.port(); // returns string "8080"
-// set port
-uri.port("80"); // returns the URI instance for chaining
-
although the port may be considered an integer, within URI it is a string.
-
Throws a TypeError on illegal input
-
-
host()
-
var uri = new URI("http://example.org:80/foo/hello.html");
-// get host
-uri.host(); // returns string "example.org:80"
-// set host
-uri.host("example.org:80"); // returns the URI instance for chaining
-
.hostname() returns the actual hostname, whereas .host() returns the hostname including the port
-
Throws a TypeError if path is part of the input
-
-
userinfo()
-
Userinfo is comprised of username and password
-
var uri = new URI("http://user:pass@example.org:88/foo/hello.html");
-// get userinfo
-uri.userinfo(); // returns string "user:pass"
-// set userinfo
-uri.userinfo("user:pass"); // returns the URI instance for chaining
-
-
authority()
-
Authority is comprised of username, password, hostname and port
-
var uri = new URI("http://user:pass@example.org:88/foo/hello.html");
-// get authority
-uri.authority(); // returns string "user:pass@example.org:88"
-// set authority
-uri.authority("user:pass@example.org:80"); // returns the URI instance for chaining
-
.authority() will reset any of username, password and port if they're not specified.
-
Throws a TypeError if path is part of the input
-
-
origin()
-
Origin is comprised of the scheme and authority.
-
var uri = new URI("http://example.com/foo.html?q=hello");
-// get origin
-uri.origin(); // returns string "http://example.com"
-// set origin
-uri.origin('https://other.org'); // returns URI instance for chaining
-
-// the URI will now have the string representation of:
-// "https://other.org/foo.html?q=hello"
-
.origin() will reset the entire authority, including username, password and port if not specified in the new origin.
-
.origin() will be empty if there is no authority.
-
.origin() will be the same as .authority() (e.g. "example.org") if there is no scheme available.
-
-
domain()
-
.domain() is a convenience method that returns example.org from the hostname www.example.org.
-
var uri = new URI("http://example.org/foo/hello.html");
-// get domain
-uri.domain(); // returns string "example.org"
-// set domain
-uri.domain("otherdomain.com"); // returns the URI instance for chaining
-
-// Second Level Domain (SLD) Support (as of URI.js 1.5.0)
-uri = new URI("http://example.co.uk/foo/hello.html");
-uri.domain(); // return string "example.co.uk"
-uri.domain(true); // return string "co.uk"
-
.domain() will throw an error if you pass it an empty string.
-
Throws a TypeError on illegal input
-
-
subdomain()
-
.subdomain() is a convenience method that returns www from the hostname www.example.org.
-
var uri = new URI("http://www.example.org/foo/hello.html");
-// get subdomain
-uri.subdomain(); // returns string "www"
-// set subdomain
-uri.subdomain("other.subdomain"); // returns the URI instance for chaining
-
Throws a TypeError on illegal input
-
-
tld()
-
.tld() is a convenience method that returns org from the hostname www.example.org.
-
var uri = new URI("http://example.org/foo/hello.html");
-// get tld
-uri.tld(); // returns string "org"
-// set tld
-uri.tld("com"); // returns the URI instance for chaining
-
-// Second Level Domain (SLD) Support (as of URI.js 1.5.0)
-uri = new URI("http://example.co.uk/foo/hello.html");
-uri.tld(); // return string "co.uk"
-uri.tld(true); // return string "uk"
-
Throws an Error if you pass it an empty string or use it on an IP-host.
-
-
pathname(), path()
-
.path() is an alias of .pathname()
-
var uri = new URI("http://example.org/foo/hello.html");
-// get pathname
-uri.pathname(); // returns string "/foo/hello.html"
-// set pathname
-uri.pathname("/foo/hello.html"); // returns the URI instance for chaining
-
-// will encode for you
-uri.pathname("/hello world/");
-uri.pathname() === "/hello%20world/";
-// will decode for you
-uri.pathname(true) === "/hello world/";
-
-// will return empty string for empty paths, but:
-URI("").path() === "";
-URI("/").path() === "/";
-URI("http://example.org").path() === "/";
-
-
-
directory()
-
.directory() is an convenience method for mutating the directory part of a path
-
var uri = new URI("http://example.org/foo/hello.html");
-// get directory
-uri.directory(); // returns string "/foo" (no trailing slash)
-// set directory
-uri.directory("/bar"); // returns the URI instance for chaining
-// uri == "http://example.org/bar/hello.html"
-
-// will encode for you
-uri.directory("/hello world/");
-uri.directory() === "/hello%20world";
-// will decode for you
-uri.directory(true) === "/hello world";
-
-uri.href("http://example.com/foo").directory()
-// -&t; "/"
-uri.href("/foo").directory()
-// -&t; "/"
-uri.href("foo").directory()
-// -&t; ""
-
-
filename()
-
.filename() is an convenience method for mutating the filename part of a path
-
var uri = new URI("http://example.org/foo/hello.html");
-// get filename
-uri.filename(); // returns string "hello.html" (no leading slash)
-// set filename
-uri.filename("world.xml"); // returns the URI instance for chaining
-// uri == "http://example.org/foo/world.xml"
-
-// will encode for you
-uri.filename("hello world.html");
-uri.filename() === "hello%20world.html";
-// will decode for you
-uri.filename(true) === "hello world.html";
-
If you pass ../file.html, the directory will be changed accordingly
-
-
suffix()
-
.suffix() is an convenience method for mutating the filename part of a path
-
var uri = new URI("http://example.org/foo/hello.html");
-// get suffix
-uri.suffix(); // returns string "html" (no leading dot)
-// set suffix
-uri.suffix("xml"); // returns the URI instance for chaining
-// uri == "http://example.org/bar/world.xml"
-
-// will encode for you
-uri.suffix("würgh");
-uri.suffix() === "w%C3%BCrgh";
-// will decode for you
-uri.suffix(true) === "würgh";
-
-
segment()
-
.segment() allows convenient access to directory levels / URN segments within the path. See .segmentCoded() for an interface that transparently encodes and decodes path segments.
-
var uri = new URI("http://example.org/foo/hello.html");
-// get segments
-uri.segment(); // returns array ["foo", "hello.html"]
-// set segments
-uri.segment(["foo", "bar", "foobar.html"]); // -> http://example.org/foo/bar/foobar.html
-
-// get specific level
-uri.segment(0); // returns "foo"
-uri.segment(1); // returns "bar"
-uri.segment(-1); // returns "foobar.html"
-// set specific level
-uri.segment(0, "bar"); // -> http://example.org/bar/bar/foobar.html
-// remove specific level
-uri.segment(0, ""); // -> http://example.org/bar/foobar.html
-
-// append level
-uri.segment("appendthis"); // -> http://example.org/bar/foobar.html/appendthis
-
-
segmentCoded()
-
.segmentCoded() works the same way .segment() does, with the difference of transparently encoding and decoding values.
-
var uri = new URI("http://example.org/foo/hello%20world.html");
-// get segments
-uri.segmentCoded(); // returns array ["foo", "hello world.html"]
-// set segments
-uri.segmentCoded(["foo", "bar", "foo bar.html"]); // -> http://example.org/foo/bar/foo%20bar.html
-
-// get specific level
-uri.segmentCoded(0); // returns "foo"
-uri.segmentCoded(1); // returns "bar"
-uri.segmentCoded(-1); // returns "foo bar.html"
-// set specific level
-uri.segmentCoded(0, "bar bam"); // -> http://example.org/bar%20bam/bar/foobar.html
-// remove specific level
-uri.segmentCoded(0, ""); // -> http://example.org/bar/foobar.html
-
-// append level
-uri.segmentCoded("append this"); // -> http://example.org/bar/foobar.html/append%20this
-
-
-
search(), query()
-
var uri = new URI("http://example.org/foo/hello.html?foo=bar&bar=baz");
-// get search
-uri.search(); // returns string "?foo=bar&bar=baz" (leading ?)
-// get query
-uri.query(); // returns string "foo=bar&bar=baz" (no leading ?)
-
-// .query() and .search() behave the same for the following:
-
-// set search
-uri.search("?foo=bar&bar=baz"); // returns the URI instance for chaining
-uri.search("foo=bar&bar=baz"); // returns the URI instance for chaining
-// uri == "http://example.org/bar/world.html?foo=bar&bar=baz"
-
-// remove query
-uri.search(""); // returns the URI instance for chaining
-// uri == "http://example.org/bar/world.html"
-
-// get data map:
-uri.search(true); // returns { foo: "bar", hello : ["world", "mars"] }
-
-// set data map:
-uri.search({ foo: "bar", hello : ["world", "mars"] });
-// uri == "http://example.org/bar/world.html?foo=bar&hello=world&hello=mars"
-
-// overwrite data through callback
-uri.search(function(data) {
- return { hello : "world" };
-});
-// uri == "http://example.org/bar/world.html?hello=world"
-
-// augment data through callback
-uri.search(function(data) {
- data.foo = "bar";
-});
-// uri == "http://example.org/bar/world.html?hello=world&foo=bar"
-
-// CAUTION: beware of arrays, the following are not quite the same
-// If you're dealing with PHP, you probably want the latter…
-uri.search("?foo=bar&bar=baz");
-uri.search("?foo=bar[]&bar[]=baz");
-
Note that names and values passed in an object are encoded automatically.
- The object, resulting from parsing the query string, contains decoded values
-
Hint: If you're using jQuery, have a look at their .serialize() function.
-
-
hash(), fragment()
-
var uri = new URI("http://example.org/foo/hello.html#world");
-// get hash
-uri.hash(); // returns string "#world" (leading #)
-// get fragment
-uri.fragment(); // returns string "world" (no leading #)
-
-// remove fragment
-uri.fragment(""); // returns the URI instance for chaining
-// uri == "http://example.org/bar/world.html"
-
-// .hash() and .fragment() behave the same for the following:
-
-// set hash
-uri.hash("#mars"); // returns the URI instance for chaining
-uri.hash("mars"); // returns the URI instance for chaining
-// uri == "http://example.org/bar/world.xml#mars"
-
-
resource()
-
Resource is comprised of path, query and fragment
-
var uri = new URI("http://example.org/foo/hello.html?query=string#hash");
-// get resource
-uri.resource(); // returns string "/foo/hello.html?query=string#hash"
-// set resource
-uri.resource("/mars.txt?query=foo#other"); // returns the URI instance for chaining
-
.resource() will reset any of path, query and fragment if they're not specified.
-
-
is()
-
.is() tells what a URL is. It responds with a boolean and can be asked the following questions:
-
- relativetrue if URL doesn't have a hostname
- absolutetrue if URL has a hostname
- urntrue if URI looks like a URN
- urltrue if URI is a URL
- domain, nametrue if hostname is not an IP
- sldtrue if hostname is a second level domain (i.e. "example.co.uk")
- idntrue if hostname contains non-alphanumeric characters and is not an IP
- punycodetrue if hostname contains xn--
- iptrue if hostname is IPv4 or IPv6
- ip4, ipv4, inet4true if hostname is IPv4
- ip6, ipv6, inet6true if hostname is IPv6
-
-
var uri = new URI("http://example.org/");
-uri.is("relative") === false;
-uri.is("absolute") === true;
-uri.is("urn") === false;
-uri.is("url") === true;
-uri.is("name") === true;
-uri.is("sld") === false;
-uri.is("punycode") === false;
-uri.is("IDN") === false; // case doesn't matter
-uri.is("idn") === false; // case doesn't matter
-uri.is("ip") === false;
-
-var uri = new URI("http://123.123.123.123/");
-uri.is("relative") === false;
-uri.is("absolute") === true;
-uri.is("urn") === false;
-uri.is("url") === true;
-uri.is("name") === false;
-uri.is("sld") === false;
-uri.is("IP") === true;
-uri.is("IPv4") === true;
-uri.is("IPv6") === false;
-
-var uri = new URI("http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/");
-uri.is("IP") === true;
-uri.is("IPv4") === false;
-uri.is("IPv6") === true;
-
-var uri = new URI("/hello/world.html");
-uri.is("relative") === true;
-uri.is("absolute") === false;
-uri.is("urn") === false;
-uri.is("url") === true;
-uri.is("name") === false;
-uri.is("IP") === false;
-
-var uri = new URI("http://example.co.uk/");
-uri.is("name") === true;
-uri.is("sld") === true;
-
-var uri = new URI("mailto:mail@example.org");
-uri.is("relative") === false;
-uri.is("absolute") === false;
-uri.is("urn") === true;
-uri.is("url") === false;
-uri.is("name") === false;
-uri.is("sld") === false;
-uri.is("punycode") === false;
-uri.is("idn") === false;
-uri.is("ip") === false;
-
-
-
Working with the query string
-
-
setSearch(), setQuery()
-
.setQuery() is an alias of .setSearch()
-
var uri = new URI("?hello=world");
-uri.setSearch("hello", "mars"); // returns the URI instance for chaining
-// uri == "?hello=mars"
-
-uri.setSearch({ foo: "bar", goodbye : ["world", "mars"] });
-// uri == "?hello=mars&foo=bar&goodbye=world&goodbye=mars"
-
-uri.setSearch("goodbye", "sun");
-// uri == "?hello=mars&foo=bar&goodbye=sun"
-
-// CAUTION: beware of arrays, the following are not quite the same
-// If you're dealing with PHP, you probably want the latter…
-uri.setSearch("foo", ["bar", "baz"]);
-uri.setSearch("foo[]", ["bar", "baz"]);
-
Note that names and values passed in are encoded automatically.
-
-
addSearch(), addQuery()
-
.addQuery() is an alias of .addSearch()
-
var uri = new URI("?hello=world");
-uri.addSearch("hello", "mars"); // returns the URI instance for chaining
-// uri == "?hello=world&hello=mars"
-
-uri.addSearch({ foo: "bar", goodbye : ["world", "mars"] });
-// uri == "?hello=world&hello=mars&foo=bar&goodbye=world&goodbye=mars"
-
-uri.addSearch("no-value");
-// uri == "?hello=world&hello=mars&foo=bar&goodbye=world&goodbye=mars&no-value"
-
-// CAUTION: beware of arrays, the following are not quite the same
-// If you're dealing with PHP, you probably want the latter…
-uri.addSearch("foo", ["bar", "baz"]);
-uri.addSearch("foo[]", ["bar", "baz"]);
-
Note that names and values passed in are encoded automatically.
-
-
removeSearch(), removeQuery()
-
.removeQuery() is an alias of .removeSearch()
-
var uri = new URI("?hello=world&hello=mars&foo=bar");
-// remove an attribute
-uri.removeSearch("hello"); // returns the URI instance for chaining
-// uri == "?foo=bar"
-
-// remove an attribute with value filter
-uri.search("?hello=world&hello=mars&foo=bar");
-uri.removeSearch("hello", "world"); // returns the URI instance for chaining
-// uri == "?hello=mars&foo=bar"
-
-// remove multiple values
-uri.search("?hello=world&hello=mars&foo=bar&mine=true");
-uri.removeSearch(["hello", "foo"]);
-// uri == "?mine=true"
-
-// remove multiple values with value filter
-uri.search("?hello=world&hello=mars&foo=bar&mine=true&a=1&a=2&a=3");
-uri.removeSearch({hello: "world", foo: undefined, a: ["1", "3"]});
-// uri == "?hello=mars&mine=true&a=2"
-
-// remove multiple values with RegExp
-uri.search("?hello=world&hello=mars&foo=bar&mine=true&a=1&a=2&a=3");
-uri.removeSearch(/^hello/);
-// uri == "?foo=bar&mine=true&a=1&a=2&a=3"
-
-// filter values with RegExp
-uri.search("?foo=bar&foo=baz&foo=bam&obj=bam&bar=bar&bar=baz&bar=bam");
-uri.removeSearch('foo', /[rz]$/);
-// uri == "?foo=bam&obj=bam&bar=bar&bar=baz&bar=bam"
-
-
hasSearch(), hasQuery()
-
.hasQuery() is an alias of .hasSearch(). The method checks the existence and value of a given parameter within the query string.
-
var uri = URI("?string=bar&list=one&list=two&number=123&null&empty=");
-
-// check if parameter exists (regardless of value)
-uri.hasQuery("string") === true;
-uri.hasQuery("nono") === false;
-
-// check if parameter has a truthy / falsy value
-uri.hasQuery("string", true) === true;
-uri.hasQuery("string", false) === false;
-uri.hasQuery("empty", true) === false;
-uri.hasQuery("empty", false) === true;
-
-// check if parameter has a given value
-uri.hasQuery("string", "bar") === true;
-uri.hasQuery("number", 123) === true;
-
-// check if value is contained in parameter list
-uri.hasQuery("list", "two", true) === true;
-uri.hasQuery("list", ["two"], true) === true;
-uri.hasQuery("list", "three", true) === false;
-uri.hasQuery("list", ["two", "three"], true) === false;
-uri.hasQuery("list", /ne$/, true) === true;
-
-// check if parameter matches an expression
-uri.hasQuery("string", /ar$/) === true;
-
-// check if parameter name matches an expression
-uri.hasQuery(/^str/) === true;
-// check if parameter name matches an expression and value exists
-uri.hasQuery(/^li/, "two") === true;
-
-// check by comparison function
-uri.hasQuery("string", function(value, name, data) {
- // value === "bar";
- // name === "string";
- // data === uri.query(true);
- return true;
-}) === true;
-
-
Working with the Fragment (Hash)
-
-
- There are virtually no limits to what you might do with fragments (hash).
- Every system has their own bag of tricks.
- As a result URI.js cannot offer any of the following tools right out of the box.
- The most common abuse of fragments are storing URLs or query string like data.
-
-
-
- Usually a prefix is used to identify data with special meaning. This prefix can be pretty much what you want.
- For URIs it's usually ! and for query-like data it often is ?.
- But they don't have to, which is why you can define a global default: URI.fragmentPrefix = "$";
-
-
-
Query String Fragments
-
The file src/URI.fragmentQuery.js is a "plugin" that allows you to store data in hashes in the same manner the .query() functions provide.
-
-
var uri = new URI("#?hello=world");
-uri.addFragment("hello", "mars"); // returns the URI instance for chaining
-// uri == "#?hello=world&hello=mars"
-
-// to change the fragment prefix on an instance level:
-uri.fragmentPrefix("!");
-
-// to change the fragment prefix on a global level:
-URI.fragmentPrefix = "!";
-
-
-
URL Fragments
-
The file src/URI.fragmentURI.js is a "plugin" that allows you to store URLs in hashes.
-
-
var uri = URI("http://example.org/#!/foo/bar/baz.html");
-var furi = uri.fragment(true);
-
-// manipulating the fragment URI
-furi.pathname() === "/foo/bar/baz.html";
-furi.pathname("/hello.html");
-
-// has direct effect on the actual URI
-uri.toString() === "http://example.org/#!/hello.html"
-
-// to change the fragment prefix on an instance level:
-uri.fragmentPrefix("?");
-
-// to change the fragment prefix on a global level:
-URI.fragmentPrefix = "?";
-
-
Normalizing URLs
-
-
normalize()
-
executes normalizeProtocol(), normalizeHostname(), normalizePort(), normalizePath(), normalizeSearch(), normalizeHash()
-
-
normalizeProtocol()
-
var uri = new URI("hTTp://www.example.org/");
-// normalize protocol
-uri.normalizeProtocol(); // returns the URI instance for chaining
-// uri == "http://www.example.org/"
-
-
normalizeHostname()
-
For IDN conversion punycode.js must be available (bundled in URI.js).
- For IPv6-best-notation conversion IPv6.js must be available (bundled in URI.js). Also lower-cases hostnames.
-
var uri = new URI("http://www.exämple.org/");
-// normalize IDN host
-uri.normalizeHostname(); // returns the URI instance for chaining
-// uri == "http://www.xn--exmple-cua.org/"
-
-// normalize IPv6 host
-uri.hostname("fe80:0000:0000:0000:0204:61ff:fe9d:f156");
-uri.normalizeHostname(); // returns the URI instance for chaining
-// uri == "http://fe80::204:61ff:fe9d:f156/"
-
-// normalize hostname to lower case
-uri.hostname("wWw.eXample.Org");
-uri.normalizeHostname(); // returns the URI instance for chaining
-// uri == "http://www.example.org/"
-
There is no .normalizeHost(), as .host() is a property comprised of .hostname() and .port()
-
-
normalizePort()
-
Removes the port, if it's the default for the given protocol (http: 80, https: 443, ftp: 21).
-
The list of default ports can be modified at URI.defaultPorts
-
var uri = new URI("http://example.org:80/foo.html");
-// normalize port
-uri.normalizePort(); // returns the URI instance for chaining
-// uri == "http://example.org/foo.html"
-
-
normalizePathname(), normalizePath()
-
.normalizePath() is an alias of .normalizePathname(), they resolve relative hierarchies
-
var uri = new URI("/hello/foo/woo/.././../world.html");
-// normalize path
-uri.normalizePathname(); // returns the URI instance for chaining
-// uri == "/hello/world.html"
-
-
normalizeSearch(), normalizeQuery()
-
Turns ?&foo=bar&&foo=bar&foo=baz& into ?foo=bar&foo=baz and removes ? if there is no query string.
-
var uri = new URI("?&foo=bar&&foo=bar&foo=baz&");
-// normalize search
-uri.normalizeSearch(); // returns the URI instance for chaining
-// uri == "?foo=bar&foo=baz"
-
-
normalizeHash(), normalizeFragment()
-
removes # if there is no hash
-
var uri = new URI("http://example.org/foo/hello.html#");
-// normalize hash
-uri.normalizeHash(); // returns the URI instance for chaining
-// uri == "http://example.org/bar/world.xml"
-
-
-
Charsets / Encodings
-
-
iso8859()
-
.iso8859() converts unicode-encoded escape sequences to ISO8859-encoded escape sequences. It does this by calling .normalize() internally.
-
var uri = new URI("/%C3%A4.html");
-uri.iso8859(); // returns the URI instance for chaining
-// uri == "/%E4.html"
-
You can make URI work with ISO8859 encoding by default by calling URI.iso8859() .
-
-
unicode()
-
.unicode() converts ISO8859-encoded escape sequences to unicode-encoded escape sequences. It does this by calling .normalize() internally.
-
var uri = new URI("/%E4.html");
-uri.unicode(); // returns the URI instance for chaining
-// uri == "/%C3%A4.html"
-
-
-
-
-
readable()
-
Formats URLs to be human readable (much like your browser does nowadays).
-
var uri = new URI("http://foo:bar@www.xn--exmple-cua.org/"
- + "hello%20world/ä.html?foo%5B%5D=b+är#fragment");
-
-uri.readable() === "http://www.exämple.org/"
- + "hello world/ä.html?foo[]=b är#fragment";
-
-
-
Relative and Absolute URLs
-
-
relativeTo()
-
.relativeTo() compares two paths and makes one relative to the other
-
var uri = new URI("/relative/path");
-// make path relative
-var relUri = uri.relativeTo("/relative/sub/foo/sub/file"); // returns a new URI instance
-// relUri == "../../../path"
-
-// absolute URLs are passed through unchanged
-URI("http://example.org/world.html")
- .relativeTo("http://google.com/baz");
-// -> "http://example.org/world.html"
-
-// absolute URLs relative to absolute URLs
-// may resolve the protocol
-URI("http://example.org/world.html")
- .clone()
- .authority("")
- .relativeTo("http://google.com/baz");
-// -> "//google.com/world.html"
-
-// equal URLs are relative by empty string
-URI("http://www.example.com:8080/dir/file")
- .relativeTo('http://www.example.com:8080/dir/file');
-// -> ""
-
-// relative on fragment and query string as well
-URI("http://www.example.com:8080/dir/file?foo=bar#abcd")
- .relativeTo('http://www.example.com:8080/dir/file');
-// -> "?foo=bar#abcd"
-
.relativeTo() and .absoluteTo() reverse each other.
-
-
absoluteTo()
-
.absoluteTo() makes a relative path absolute based on another path
-
var uri = new URI("../../../path");
-// make path absolute
-var relUri = uri.absoluteTo("/relative/sub/foo/sub/file"); // returns a new URI instance
-// relUri == "/relative/path"
-
-// resolves protocols
-var u = new URI('//example.com/path');
-u.absoluteTo('https://example.com');
-// -> "https://example.com/path"
-var u = new URI('//example.com/path');
-u.absoluteTo('https://');
-// -> "https://example.com/path"
-
.relativeTo() and .absoluteTo() reverse each other.
-
-
-
Comparing URLs
-
-
equals()
-
.equals() determines if the given URLs are the same - disregarding default ports, capitalization, dot-pathnames, query-parameter order, etc.
-
var a = "http://example.org/foo/bar.html"
- + "?foo=bar&hello=world&hello=mars#fragment";
-var b;
-
-// normalizing URI before comparison:
-b = "http://exAMPle.org:80/foo/../foo/bar.html"
- + "?foo=bar&hello=world&hello=mars#fragment";
-
-a !== b;
-URI(a).equals(b) === true;
-
-
-// comparing query string parameters:
-b = "http://example.org/foo/bar.html"
- + "?hello=mars&foo=bar&hello=world&#fragment";
-
-a !== b;
-URI(a).equals(b) === true;
-
-// shorthand for comparing to window.location.href:
-URI(a).equals();
-
-
-
Parsing URLs
-
-
URI.parse(string url)
-
parses a string into its URI components. returns an object containing the found components
-
var result = URI.parse("http://example.org/foo.html");
-result === {
- protocol: "http",
- username: null,
- password: null,
- hostname: "example.org",
- port: null,
- path: "/foo.html",
- query: null,
- fragment: null
-};
-
-
URI.parseAuthority(string url, object parts)
-
parses a string's beginning into its URI components username, password, hostname, port.
- Found components are appended to the parts parameter.
- Remaining string is returned
-
var parts = {};
-var result = URI.parseAuthority("user:pass@example.org:8080/foo.html", parts);
-result === "/foo.html";
-parts === {
- username: "user",
- password: "pass",
- hostname: "example.org",
- port: "8080"
-};
-
-
URI.parseUserinfo(string url, object parts)
-
parses a string's beginning into its URI components username, password.
- Found components are appended to the parts parameter.
- Remaining string is returned
-
var parts = {};
-var result = URI.parseUserinfo("user:pass@example.org:8080/foo.html", parts);
-result === "example.org:8080/foo.html";
-parts === {
- username: "user",
- password: "pass"
-};
-
-
URI.parseHost(string url, object parts)
-
parses a string's beginning into its URI components hostname, port.
- Found components are appended to the parts parameter.
- Remaining string is returned
-
var parts = {};
-var result = URI.parseHost("example.org:8080/foo.html", parts);
-result === "/foo.html";
-parts === {
- hostname: "example.org",
- port: "8080"
-};
-
As of v1.19.0 you can activate host name validation (disabled by default):
-
URI.preventInvalidHostname = true;
-var parts = {};
-var result = URI.parseHost("/foo.html", parts);
-// throws TypeError
-
-URI.preventInvalidHostname = false;
-var uri = new URI('http://example.org/')
- .preventInvalidHostname(true)
- .hostname('')
-// throws TypeError
-
-
URI.parseQuery(string querystring)
-
Parses the passed query string into an object. Returns object {propertyName: propertyValue}
-
var result = URI.parseQuery("?foo=bar&hello=world&hello=mars&bam=&yup");
-result === {
- foo: "bar",
- hello: ["world", "mars"],
- bam: "",
- yup: null
-};
-
-
Serializing URLs
-
-
URI.build(object parts)
-
serializes the URI components passed in parts into a URI string
-
var parts = {
- protocol: "http",
- username: null,
- password: null,
- hostname: "example.org",
- port: null,
- path: "/foo.html",
- query: null,
- fragment: null
-};
-URI.build(parts) === "http://example.org/foo.html";
-
-
URI.buildAuthority(object parts)
-
serializes the URI components username, password, hostname, port passed in parts into a URI string
-
var parts = {
- username: "user",
- password: "pass",
- hostname: "example.org",
- port: "8080"
-};
-URI.buildAuthority(parts) === "user:pass@example.org:8080";
-
-
URI.buildUserinfo(object parts)
-
serializes the URI components username, password passed in parts into a URI string
-
var parts = {
- username: "user",
- password: "pass"
-};
-URI.buildUserinfo(parts) === "user:pass@";
-
-
URI.buildHost(object parts)
-
serializes the URI components hostname, port passed in parts into a URI string
-
var parts = {
- hostname: "example.org",
- port: "8080"
-};
-URI.buildHost(parts) === "example.org:8080";
-
-
URI.buildQuery(object data, [boolean duplicateQueryParameters], [boolean escapeQuerySpace])
-
serializes the query string parameters
-
var data = {
- foo: "bar",
- hello: ["world", "mars", "mars"],
- bam: "",
- yup: null,
- removed: undefined
-};
-
-// Note: duplicate hello=mars is dropped (default behavior!)
-URI.buildQuery(data) === "foo=bar&hello=world&hello=mars&bam=&yup";
-
-// Note: duplicate hello=mars is preserved
-URI.buildQuery(data, true) === "foo=bar&hello=world&hello=mars&hello=mars&bam=&yup";
-
To preserve duplicate values, use URI.buildQuery() directly:
-
var uri = new URI("http://example.org/foo.html?bar=baz");
-var data = uri.query(true);
-
-data.some = "new data";
-uri.query(URI.buildQuery(data, true));
-
-// you can also use the static URI.addQuery() and URI.removeQuery()
-URI.addQuery(data, "hello", "world");
-uri.query(URI.buildQuery(data, true));
-
-
As of v1.8.0 you can configure query parameter de/duplication:
-
// make all new URI instances allow duplicates:
-URI.duplicateQueryParameters = true; // default is false
-
-// make a specific URI instance allow duplicates:
-var withDuplicates = URI("?bar=1&bar=1")
- .duplicateQueryParameters(true)
- .normalizeQuery()
- .toString();
-
-// make a specific URI instance avoid duplicates (default):
-var noDuplicates = URI("?bar=1&bar=1")
- .duplicateQueryParameters(false)
- .normalizeQuery()
- .toString();
-
-withDuplicates === "?bar=1&bar=1";
-noDuplicates === "?bar=1";
-
-
As of v1.11.0 you can configure query space en/decoding:
-
// prevent all new URI instances from escaping spaces in query strings:
-URI.escapeQuerySpace = false; // default is true
-
-// make a specific URI instance escape spaces in query:
-var withPlus = URI("?bar=hello+world")
- .escapeQuerySpace(true)
- .query(true).bar;
-
-// make a specific URI instance not escape spaces in query
-var withPercent = URI("?bar=hello%20world")
- .escapeQuerySpace(false)
- .query(true).bar;
-
-withPlus === "hello world";
-withPercent === "hello world";
-
-
Encoding and Decoding URLs
-
-
URI.encode()
-
Encode an URI component with strict compliance to RFC3986
-
URI.encode("hä lo#w*rl:d!") === "h%C3%A4%20lo%23w%2Arl%3Ad%21";
-// vs.
-encodeURIComponent("hä lo#w*rl:d!") === "h%C3%A4%20lo%23w*rl%3Ad!";
-// not how * and ! were not encoded
-
-
URI.decode()
-
Decode an URI component
-
URI.decode("h%C3%A4%20lo%23w%2Arl%3Ad%21") === "hä lo#w*rl:d!";
-// note:
-URI.decode === decodeURIComponent;
-
-
URI.encodeReserved()
-
Encode an URI component whilst preserving reserved characters
-
URI.encodeReserved("ä:/?#[]@!$&'()*+,;=") === "%C3%A4:/?#[]@!$&'()*+,;=";
-// vs.
-URI.encode("ä:/?#[]@!$&'()*+,;=") ===
- "%C3%A4%3A%2F%3F%23%5B%5D%40%21%24%26%27%28%29%2A%2B%2C%3B%3D";
-
-
URI.encodeQuery()
-
Encode a query string component. Works like encode() , except it handles %20 as + (space) if URI.escapeQuerySpace = true; .
-
URI.escapeQuerySpace = true; // default
-URI.encodeQuery(" ") === "+";
-
-URI.escapeQuerySpace = false;
-URI.encodeQuery(" ") === "%20";
-
-// vs.
-URI.encode(" ") === "%20";
-
-
URI.decodeQuery()
-
Decode a query string component. Works like decode() , except it handles + as %20 (space) if URI.escapeQuerySpace = true; .
-
URI.escapeQuerySpace = true; // default
-URI.decodeQuery("+") === " ";
-
-URI.escapeQuerySpace = false;
-URI.decodeQuery("+") === "+";
-
-// vs.
-URI.decode("+") === "+";
-
-
-
Static Helper Functions
-
-
URI.noConflict()
-
removes URI variables from global scope
-
// restores window.URI to its previous state and returns URI
-URI.noConflict();
-// restores the global variable to its previous state and returns the object itself
-URITemplate.noConflict();
-IPv6.noConflict();
-SecondLevelDomains.noConflict();
-
-// restore all objects and return them as a map {URI: ..., IPv6: ..., ....}
-URI.noConflict(true);
-
-
URI.addQuery()
-
adds data to a map
-
var data = {};
-
-URI.addQuery(data, "hello", "mars");
-data === {hello: "mars"};
-
-URI.addQuery(data, "hello", "world");
-data === {hello: ["mars", "world"]};
-
-URI.addQuery(data, {foo: "bar", goodbye : ["world", "mars"]});
-data === {hello: ["mars", "world"], foo: "bar", goodbye : ["world", "mars"]};
-
-
URI.removeQuery()
-
removes data from a map
-
var data === {hello: ["mars", "world"], foo: "bar", goodbye : ["world", "mars"]};
-
-URI.removeQuery(data, "hello");
-data === {foo: "bar", goodbye : ["world", "mars"]};
-
-// remove an attribute with value filter
-data = {hello: ["world", "mars"], foo: "bar"};
-URI.removeQuery(data, "hello", "world");
-data === {hello: ["mars"], foo: "bar"} // yes, still an array
-
-// remove multiple values
-data = {hello: ["world", "mars"], foo: "bar", mine: "true"}
-URI.removeQuery(["hello", "foo"]);
-data === {mine: "true"};
-
-// remove multiple values with value filter
-data = {hello: ["world", "mars"], foo: "bar", mine: "true", a: ["1", "2", "3"]}
-URI.removeQuery({hello: "world", foo: undefined, a: ["1", "3"]});
-data === {hello: ["mars"], mine: "true", a: ["2"]}
-
-
URI.commonPath()
-
URI.commonPath() determines the common base directory of two paths.
-
URI.commonPath("/foo/bar/baz.html", "/foo/bar/world.html");
-// returns "/foo/bar/"
-
-URI.commonPath("/foo/bar/baz.html", "/foo/bazz/world.html");
-// returns "/foo/"
-
-URI.commonPath("/foo/bar/baz.html", "/other/world.html");
-// returns "/"
-
-URI.commonPath("/foo", "bar");
-// returns ""
-
-
URI.joinPaths()
-
URI.joinPaths() composes a path from directory tokens.
-
URI.joinPaths('/a/b', '/c', 'd', '/e');
-// returns URI("/a/b/c/d/e")
-
-URI.joinPaths('a/b', 'http://example.com/c', new URI('d/'), '/e');
-// returns URI("a/b/c/d/e")
-
-URI.joinPaths('/a/');
-// returns URI("/a/")
-
-URI.joinPaths('');
-// returns URI("")
-
-URI.joinPaths('', 'a', '');
-// returns URI("/a/")
-
-
URI.withinString()
-
URI.withinString() identifies URIs within text, e.g. to translate them to <a>-Tags. (Obviously you'd want to put the urls inside the href-Attribute and escape them properly…)
-
.withinString() only works on plain text, it will not work with HTML!
-
var source = "Hello www.example.com,\n"
- + "http://google.com is a search engine, like http://www.bing.com\n"
- + "http://exämple.org/foo.html?baz=la#bumm is an IDN URL,\n"
- + "http://123.123.123.123/foo.html is IPv4 and "
- + "http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html is IPv6.\n"
- + "links can also be in parens (http://example.org) "
- + "or quotes »http://example.org«.";
-
-var result = URI.withinString(source, function(url) {
- // callback needs to return a string
- // feel free to URI(url).normalize().toString() or something
- return "<a>" + url + "</a>";
-});
-
-/* result is:
-Hello <a>www.example.com</a> ,
-<a>http://google.com</a> is a search engine, like <a>http://www.bing.com</a>
-<a>http://exämple.org/foo.html?baz=la#bumm</a> is an IDN URL,
-<a>http://123.123.123.123/foo.html</a> is IPv4 and <a>http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html</a> is IPv6.
-links can also be in parens (<a>http://example.org</a> ) or quotes »<a>http://example.org</a> «.
-*/
-
-// a proper replacement could look like the following:
-var escapeHtml = function(string) {
- return string
- .replace(/&/g, "&")
- .replace(/</g, "<")
- .replace(/>/g, ">")
- .replace(/"/g, """);
-};
-var result = URI.withinString(source, function(url) {
- var uri = new URI(url);
- uri.normalize();
- return "<a href="" + escapeHtml(uri) + "">"
- + escapeHtml(uri.readable ()) + "</a>";
-});
-
-
As of URI.js 1.12.0 withinString accepts the following parameters:
-
var source = "Hello www.example.com.";
-var decorate = function(url) {
- return "<code>" + url + "</code>";
-};
-var result = null;
-
-// access to the original input text from the callback
-URI.withinString(source, function(url, start, end, source) {
- source.slice(start, end) === url;
- return url;
-});
-
-// ignore certain URLs
-source = "Hello www.example.com,\n"
- + "ohgodno://example.org/ is a a protocol we want ignored";
-result = URI.withinString(source, decorate, {
- ignore: /^ohgodno:/i
-});
-
-/* result is:
-Hello <code>www.example.com</code> ,
-ohgodno://example.org/ is a a protocol we want ignored
-*/
-
-// ignore URLs in HTML
-source = "Hello www.example.com,\n"
- + '<img src="http://example.org/image.png" alt=""> is HTML,\n'
- + "<a href='http://example.org/target.html'> is HTML</a>,\n"
- + "<a href=http://example.org/target.html> is HTML, too</a>.";
-result = URI.withinString(source, decorate, {
- ignoreHtml: true
-});
-
-/* result is:
-Hello <code>www.example.com</code> ,
-<img src="http://example.org/image.png" alt=""> is HTML,
-<a href='http://example.org/target.html'> is HTML</a>,
-<a href=http://example.org/target.html> is HTML, too</a>
-*/
-
-// custom URI beginning pattern
-source = "That example.com/ is just a domain";
-result = URI.withinString(source, decorate, {
- // "scheme://" or "www." or "domain.tld/"
- start: /\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.|[a-z]+\.[a-z]{2,4}\/)/gi
-});
-
-/* result is:
-That <code>example.com/</code> is just a domain
-*/
-
-
URI.iso8859()
-
URI.iso8859() tells URI.js to use the older escape/unescape methods, for backwards compatibility with non-unicode platforms.
-
URI.iso8859();
-
-var uri = new URI("http://example.org/foo/æ.html");
-// http://example.org/foo/%E6.html
-
-
URI.unicode()
-
URI.unicode() restores the default unicode-encoded URLs.
-
URI.unicode();
-
-var uri = new URI("http://example.org/foo/æ.html");
-// http://example.org/foo/%C3%A6.html
-
-
URI.expand()
-
URI.expand() is a convenience wrapper for URITemplate .
- While URITemplate#expand returns a string, URI.expand() returns an URI instance.
-
URI.expand("/foo/{var}/{iable}", {
- "var": "bar",
- "iable": "hello world.html"
-});
-
-// returns URI("/foo/bar/hello%20world.html")
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/index.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/index.html
deleted file mode 100644
index 880a24fbd0..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/index.html
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
-
-
- URI.js - URLs in Javascript
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
URI.js is a javascript library for working with URLs. It offers a "jQuery-style" API (Fluent Interface , Method Chaining) to read and write all regular components and a number of convenience methods like
- .directory () and .authority ().
-
URI.js offers simple, yet powerful ways of working with query string, has a number of URI-normalization functions and converts relative/absolute paths.
-
While URI.js provides a jQuery plugin . URI.js itself does not rely on jQuery. You don't need jQuery to use URI.js
-
-
Examples
-
How do you like manipulating URLs the "jQuery-style"?
-
// mutating URLs
-URI("http://example.org/foo.html?hello=world")
- .username ("rodneyrehm")
- // -> http://rodneyrehm@example.org/foo.html?hello=world
- .username ("")
- // -> http://example.org/foo.html?hello=world
- .directory ("bar")
- // -> http://example.org/bar/foo.html?hello=world
- .suffix ("xml")
- // -> http://example.org/bar/foo.xml?hello=world
- .hash ("hackernews")
- // -> http://example.org/bar/foo.xml?hello=world#hackernews
- .fragment ("")
- // -> http://example.org/bar/foo.xml?hello=world
- .search ("") // alias of .query()
- // -> http://example.org/bar/foo.xml
- .tld ("com")
- // -> http://example.com/bar/foo.xml
- .search ({ foo: "bar", hello: ["world", "mars"] });
- // -> http://example.com/bar/foo.xml?foo=bar&hello=world&hello=mars
-
-
How do you like working query strings?
-
URI("?hello=world")
- .addSearch ("hello", "mars")
- // -> ?hello=world&hello=mars
- .addSearch ({ foo: ["bar", "baz"] })
- // -> ?hello=world&hello=mars&foo=bar&foo=baz
- .removeSearch ("hello", "mars")
- // -> ?hello=world&foo=bar&foo=baz
- .removeSearch ("foo")
- // -> ?hello=world
-
-
-
How do you like relative paths?
-
URI("/relative/path")
- .relativeTo ("/relative/sub/foo/sub/file")
- // -> ../../../path
- .absoluteTo ("/relative/sub/foo/sub/file");
- // -> /relative/path
-
-
How do you like cleaning things up?
-
URI("?&foo=bar&&foo=bar&foo=baz&")
- .normalizeSearch ();
- // -> ?foo=bar&foo=baz
-
-URI("/hello/foo/woo/.././../world.html")
- .normalizePathname ();
- // -> /hello/world.html
-
-
How do you like detecting URIs within random text?
-
var source = "Hello www.example.com,\n"
- + "http://google.com is a search engine, like http://www.bing.com\n"
- + "http://exämple.org/foo.html?baz=la#bumm is an IDN URL,\n"
- + "http://123.123.123.123/foo.html is IPv4 and "
- + "http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html is IPv6.\n"
- + "links can also be in parens (http://example.org) "
- + "or quotes »http://example.org«.";
-
-var result = URI.withinString (source, function(url) {
- return "<a>" + url + "</a>";
-});
-
-/* result is:
-Hello <a>www.example.com</a> ,
-<a>http://google.com</a> is a search engine, like <a>http://www.bing.com</a>
-<a>http://exämple.org/foo.html?baz=la#bumm</a> is an IDN URL,
-<a>http://123.123.123.123/foo.html</a> is IPv4 and <a>http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html</a> is IPv6.
-links can also be in parens (<a>http://example.org</a> ) or quotes »<a>http://example.org</a> «.
-*/
-
-
-
How do you like comparing URLs?
-
var a = "http://example.org/foo/bar.html"
- + "?foo=bar&hello=world&hello=mars#fragment",
- b = "http://exAMPle.org:80/foo/../foo/bar.html"
- + "?hello=mars&foo=bar&hello=world&#fragment";
-
-a !== b;
-URI(a).equals (b) === true;
-
-
How do you like fiddling with the fragment?
-
// storing values in the fragment (hash):
-var uri = URI("#hello-world");
-uri.fragment({foo: "bar", bar: ["hello", "world"]});
-uri.fragment() === "foo=bar&bar=hello&bar=world";
-// required src/URI.fragmentQuery.js to be loaded
-
-// storing URLs in the fragment (hash):
-var uri = URI("http://example.org/#!/foo/bar/baz.html"),
- furi = uri.fragment(true);
-furi.pathname() === "/foo/bar/baz.html";
-furi.pathname("/hello.html");
-uri.toString() === "http://example.org/#!/hello.html"
-// required src/URI.fragmentURI.js to be loaded
-
-
How do you like parsing URNs?
-
var uri = URI("urn:uuid:c5542ab6-3d96-403e-8e6b-b8bb52f48d9a?query=string");
-uri.protocol() == "urn";
-uri.path() == "uuid:c5542ab6-3d96-403e-8e6b-b8bb52f48d9a";
-uri.query() == "query=string";
-
-
How do you like URI Templating?
-
URI.expand("/foo/{dir}/{file}", {
- dir: "bar",
- file: "world.html"
-});
-// -> /foo/bar/world.html
-
-
Authors
-
-
-
License
-
URI.js is published under the MIT license .
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/jquery-1.10.2.min.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/jquery-1.10.2.min.js
deleted file mode 100644
index da4170647d..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/jquery-1.10.2.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
-//@ sourceMappingURL=jquery-1.10.2.min.map
-*/
-(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML=" ",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML=" ","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML=" ",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" a ",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
-}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:x.support.htmlSerialize?[0,"",""]:[1,"X","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
-u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write(""),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/jquery-1.7.2.min.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/jquery-1.7.2.min.js
deleted file mode 100644
index 93adea19fd..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/jquery-1.7.2.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.7.2 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g
0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;ca ",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q=""+"",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
-a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c ",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=" ",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/ ]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
-.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
URI.js jQuery Plugin
-
As of version 1.6.0 URI.js offers a simple jQuery integration. For the plugin to work, you need to regularly load URI.js, as well as jquery.URI.js.
-
URI.js does not depend on jQuery unless you want to use the URI.js jQuery Plugin
-
-
Accessing the URI Instance
-
-var $a = $('<a href="http://google.com/hello.html">Demo</a>');
-var uri = $a.uri();
-
-// URI instance and DOMElement are always in sync
-uri.domain() == 'google.com';
-uri.domain('example.org');
-$a.attr('href') == 'http://example.org/hello.html';
-
-// access to href , src and action
-// transparently update the URI instance
-$a.attr('href', '/other.file');
-uri.href() == '/other.file';
-
-// $.fn.uri() passes values to DOM and URI
-$a.uri('/hello/world.html');
-$a.attr('href') == '/hello/world.html';
-uri.href() == '/hello/world.html';
-
-
Accessing URI components
-
var $a = $('<a href="http://www.google.com/hello.html">Demo</a>');
-
-// read
-$a.attr('uri:domain') == 'google.com';
-
-// write
-$a.attr('uri:domain', 'example.org');
-$a.attr('href') == 'http://www.example.org/hello.html';
-
-
All URI-component accessors (except segment ) can be used:
- origin ,
- authority ,
- directory ,
- domain ,
- filename ,
- fragment ,
- hash ,
- host ,
- hostname ,
- href ,
- password ,
- path ,
- pathname ,
- port ,
- protocol ,
- query ,
- scheme ,
- resource ,
- search ,
- subdomain ,
- suffix ,
- tld ,
- username .
-
-
-
Selectors
-
You may find yourself wanting to select all links to a certain file-type or a specific domain. :uri() is a pseudo-class filter that will help you with that:
-
-<div class="first">
- <a href="/my.pdf?with=query">PDF</a>
- <a href="http://google.com/">Google1</a>
-</div>
-<div class="second">
- <a href="http://www.google.com/">Google2</a>
- <a href="https://github.com/some/directory/help.html">Github</a>
-</div>
-
-
// finding links to a given file-type
-$('a:uri(suffix = pdf)');
-// -> finds PDF
-
-// selecting links to a directory (or child thereof)
-$('a:uri(directory *= /directory/)');
-// -> finds Github
-
-// selecting links to google.com
-$('a:uri(domain = google.com)');
-// -> finds Google1, Google2
-
-// selecting all relative links
-$('a:uri(is: relative)');
-// -> finds PDF
-
-// selecting links regardless of their representation
-$('a:uri(equals: http://github.com/some/other/../directory/help.html)');
-// -> finds Github
-
-// finding elements containing a link to github
-$('div').has('a:uri(domain = github)')
-// -> finds div.second
-
-// testing if the protocol matches
-$('a').eq(1).is(':uri(protocol = http)');
-// -> is true
-
-// event delegation
-$(document).on('click', 'a:uri(scheme=javscript)', function(e) {
- if (!confirm("do you really want to execute this script?\n\n" + this.href)) {
- e.preventDefault();
- e.stopImmediatePropagation();
- }
-});
-
-
The :uri() pseudo selector
-
:uri() accepts the following three argument patterns:
-
-
- :uri(accessor operator string ) to compare a single URI-component
- :uri(is: string ) to compare against .is()
- :uri(equals: string ) to compare URLs using .equals()
-
-
-
Note: It is a good idea to prepend the element(s) you're looking for. a:uri(is: relative) is much faster than :uri(is: relative).
-
Note: ")" may not be used in your comparison-string, as jQuery (Sizzle, actually) can't handle that properly.
-
-
Comparison Accessors
-
All URI-component accessors (except segment ) can be used:
- authority ,
- directory ,
- domain ,
- filename ,
- fragment ,
- hash ,
- host ,
- hostname ,
- href ,
- password ,
- path ,
- pathname ,
- port ,
- protocol ,
- query ,
- scheme ,
- resource ,
- search ,
- subdomain ,
- suffix ,
- tld ,
- username .
-
-
-
Comparison Operators
-
Comparison operators are derived from CSS attribute match operators:
-
- = Exact match of accessor and string
- ^= accessor begins with string (case-insensitive)
- $= accessor ends with string (case-insensitive)
- *= accessor contains string (case-insensitive)
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/package.json b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/package.json
deleted file mode 100644
index fdd0829ff3..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "name": "urijs",
- "version": "1.19.1",
- "title": "URI.js - Mutating URLs",
- "author": {
- "name": "Rodney Rehm",
- "url": "http://rodneyrehm.de"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/medialize/URI.js.git"
- },
- "license": "MIT",
- "description": "URI.js is a Javascript library for working with URLs.",
- "keywords": [
- "uri",
- "url",
- "urn",
- "uri mutation",
- "url mutation",
- "uri manipulation",
- "url manipulation",
- "uri template",
- "url template",
- "unified resource locator",
- "unified resource identifier",
- "query string",
- "RFC 3986",
- "RFC3986",
- "RFC 6570",
- "RFC6570",
- "jquery-plugin",
- "ecosystem:jquery"
- ],
- "categories": [
- "Parsers & Compilers",
- "Utilities"
- ],
- "main": "./src/URI",
- "homepage": "http://medialize.github.io/URI.js/",
- "contributors": [
- "Francois-Guillaume Ribreau (http://fgribreau.com)",
- "Justin Chase (http://justinmchase.com)"
- ],
- "files": [
- "src/URI.js",
- "src/IPv6.js",
- "src/SecondLevelDomains.js",
- "src/punycode.js",
- "src/URITemplate.js",
- "src/jquery.URI.js",
- "src/URI.min.js",
- "src/jquery.URI.min.js",
- "src/URI.fragmentQuery.js",
- "src/URI.fragmentURI.js",
- "LICENSE.txt"
- ],
- "npmName": "urijs",
- "npmFileMap": [
- {
- "basePath": "/src/",
- "files": [
- "*.js"
- ]
- },
- {
- "basePath": "/",
- "files": [
- "LICENSE.txt"
- ]
- }
- ],
- "devDependencies": {
- "jshint-stylish": "~0.1.5",
- "grunt": "~0.4.2",
- "grunt-contrib-jshint": "~0.8.0"
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-apollo.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-apollo.js
deleted file mode 100644
index 7098baf410..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-apollo.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
-null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-clj.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-clj.js
deleted file mode 100644
index 542a2205fc..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-clj.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright (C) 2011 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-var a=null;
-PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a],
-["typ",/^:[\dA-Za-z-]+/]]),["clj"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-css.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-css.js
deleted file mode 100644
index 041e1f5906..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-css.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
-/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-go.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-go.js
deleted file mode 100644
index fc18dc0796..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-go.js
+++ /dev/null
@@ -1 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-hs.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-hs.js
deleted file mode 100644
index 9d77b08389..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-hs.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n\r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/,
-null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-lisp.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-lisp.js
deleted file mode 100644
index 02a30e8d16..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-lisp.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var a=null;
-PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a],
-["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-lua.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-lua.js
deleted file mode 100644
index e83a3c4693..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-lua.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],
-["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-ml.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-ml.js
deleted file mode 100644
index 6df02d728d..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-ml.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
-["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-n.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-n.js
deleted file mode 100644
index 6c2e85b98f..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-n.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var a=null;
-PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/,
-a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/,
-a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-proto.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-proto.js
deleted file mode 100644
index f006ad8cfb..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-proto.js
+++ /dev/null
@@ -1 +0,0 @@
-PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-scala.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-scala.js
deleted file mode 100644
index 60d034de49..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-scala.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
-["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-sql.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-sql.js
deleted file mode 100644
index da705b0b67..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-sql.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i,
-null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-tex.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-tex.js
deleted file mode 100644
index ce96fbbd1f..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-tex.js
+++ /dev/null
@@ -1 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-vb.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-vb.js
deleted file mode 100644
index 07506b03cd..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-vb.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r Â\xa0

"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“â€'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i,
-null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-vhdl.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-vhdl.js
deleted file mode 100644
index 128b5b6cfc..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-vhdl.js
+++ /dev/null
@@ -1,3 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i,
-null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i],
-["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-wiki.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-wiki.js
deleted file mode 100644
index 9b0b44873f..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-wiki.js
+++ /dev/null
@@ -1,2 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t Â\xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]);
-PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-xq.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-xq.js
deleted file mode 100644
index e323ae3237..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-xq.js
+++ /dev/null
@@ -1,3 +0,0 @@
-PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[\w-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^@[\w-]+/],["tag",/^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["com",/^\(:[\S\s]*?:\)/],["pln",/^[(),/;[\]{}]$/],["str",/^(?:"(?:[^"\\{]|\\[\S\s])*(?:"|$)|'(?:[^'\\{]|\\[\S\s])*(?:'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/],
-["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/],
-["pln",/^[\w:-]+/],["pln",/^[\t\n\r \xa0]+/]]),["xq","xquery"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-yaml.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-yaml.js
deleted file mode 100644
index c38729b6cf..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/lang-yaml.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var a=null;
-PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]);
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/prettify.css b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/prettify.css
deleted file mode 100644
index d44b3a2282..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/prettify.css
+++ /dev/null
@@ -1 +0,0 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/prettify.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/prettify.js
deleted file mode 100644
index eef5ad7e6a..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/prettify/prettify.js
+++ /dev/null
@@ -1,28 +0,0 @@
-var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
-(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
-[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
-l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
-q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
-q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
-"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
-a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
-for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
-"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
-H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
-J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
-I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]+/],["dec",/^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/pre_libs.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/pre_libs.js
deleted file mode 100644
index c12a06e76e..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/pre_libs.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*global window */
-// FIXME: v2.0.0 renamce non-camelCase properties to uppercase
-/*jshint camelcase: false */
-window.URI = window.URI_pre_lib = 'original URI, before loading URI.js library';
-window.URITemplate = window.URITemplate_pre_lib = 'original URITemplate, before loading URI.js library';
-window.IPv6 = window.IPv6_pre_lib = 'original IPv6, before loading URI.js library';
-window.SecondLevelDomains = window.SecondLevelDomains_pre_lib = 'original SecondLevelDomains, before loading URI.js library';
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit-composite.css b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit-composite.css
deleted file mode 100644
index 54e791b137..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit-composite.css
+++ /dev/null
@@ -1,13 +0,0 @@
-.qunit-composite-suite {
- position: fixed;
- bottom: 0;
- left: 0;
-
- margin: 0;
- padding: 0;
- border-width: 1px 0 0;
- height: 45%;
- width: 100%;
-
- background: #fff;
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit-composite.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit-composite.js
deleted file mode 100644
index b713f55c84..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit-composite.js
+++ /dev/null
@@ -1,167 +0,0 @@
-/**
- * JUnit reporter for QUnit v1.0.1
- *
- * https://github.com/jquery/qunit-composite
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-(function( QUnit ) {
-var iframe, hasBound, addClass,
- modules = 1,
- executingComposite = false;
-
-// TODO: Kill this fallback method once QUnit 1.12 is released
-addClass = typeof QUnit.addClass === "function" ?
- QUnit.addClass :
- (function() {
- var hasClass = typeof QUnit.hasClass === "function" ?
- QUnit.hasClass :
- function hasClass( elem, name ) {
- return ( " " + elem.className + " " ).indexOf( " " + name + " " ) > -1;
- };
- return function addClass( elem, name ) {
- if ( !hasClass( elem, name ) ) {
- elem.className += ( elem.className ? " " : "" ) + name;
- }
- };
- })();
-
-function runSuite( suite ) {
- var path;
-
- if ( QUnit.is( "object", suite ) ) {
- path = suite.path;
- suite = suite.name;
- } else {
- path = suite;
- }
-
- QUnit.asyncTest( suite, function() {
- iframe.setAttribute( "src", path );
- // QUnit.start is called from the child iframe's QUnit.done hook.
- });
-}
-
-function initIframe() {
- var iframeWin,
- body = document.body;
-
- function onIframeLoad() {
- var moduleName, testName,
- count = 0;
-
- if ( !iframe.src ) {
- return;
- }
-
- iframeWin.QUnit.moduleStart(function( data ) {
- // Capture module name for messages
- moduleName = data.name;
- });
-
- iframeWin.QUnit.testStart(function( data ) {
- // Capture test name for messages
- testName = data.name;
- });
- iframeWin.QUnit.testDone(function() {
- testName = undefined;
- });
-
- iframeWin.QUnit.log(function( data ) {
- if (testName === undefined) {
- return;
- }
- // Pass all test details through to the main page
- var message = ( moduleName ? moduleName + ": " : "" ) + testName + ": " + ( data.message || ( data.result ? "okay" : "failed" ) );
- expect( ++count );
- QUnit.push( data.result, data.actual, data.expected, message );
- });
-
- // Continue the outer test when the iframe's test is done
- iframeWin.QUnit.done( QUnit.start );
- }
-
- iframe = document.createElement( "iframe" );
- iframe.className = "qunit-composite-suite";
- body.appendChild( iframe );
-
- QUnit.addEvent( iframe, "load", onIframeLoad );
-
- iframeWin = iframe.contentWindow;
-}
-
-/**
- * @param {string} [name] Module name to group these test suites.
- * @param {Array} suites List of suites where each suite
- * may either be a string (path to the html test page),
- * or an object with a path and name property.
- */
-QUnit.testSuites = function( name, suites ) {
- var i, suitesLen;
-
- if ( arguments.length === 1 ) {
- suites = name;
- name = "Composition #" + modules++;
- }
- suitesLen = suites.length;
-
- if ( !hasBound ) {
- hasBound = true;
- QUnit.begin( initIframe );
-
- // TODO: Would be better to use something like QUnit.once( 'moduleDone' )
- // after the last test suite.
- QUnit.moduleDone( function () {
- executingComposite = false;
- } );
-
- QUnit.done(function() {
- iframe.style.display = "none";
- });
- }
-
- QUnit.module( name, {
- setup: function () {
- executingComposite = true;
- }
- });
-
- for ( i = 0; i < suitesLen; i++ ) {
- runSuite( suites[ i ] );
- }
-};
-
-QUnit.testDone(function() {
- if ( !executingComposite ) {
- return;
- }
-
- var i, len,
- current = QUnit.id( this.config.current.id ),
- children = current.children,
- src = iframe.src;
-
- QUnit.addEvent( current, "dblclick", function( e ) {
- var target = e && e.target ? e.target : window.event.srcElement;
- if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
- target = target.parentNode;
- }
- if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
- window.location = src;
- }
- });
-
- // Undo QUnit's auto-expansion for bad tests
- for ( i = 0, len = children.length; i < len; i++ ) {
- if ( children[ i ].nodeName.toLowerCase() === "ol" ) {
- addClass( children[ i ], "qunit-collapsed" );
- }
- }
-
- // Update Rerun link to point to the standalone test suite page
- current.getElementsByTagName( "a" )[ 0 ].href = src;
-});
-
-})( QUnit );
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit.css b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit.css
deleted file mode 100644
index 7ba3f9a30b..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit.css
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
- font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
- margin: 0;
- padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
- padding: 0.5em 0 0.5em 1em;
-
- color: #8699a4;
- background-color: #0d3349;
-
- font-size: 1.5em;
- line-height: 1em;
- font-weight: normal;
-
- border-radius: 5px 5px 0 0;
- -moz-border-radius: 5px 5px 0 0;
- -webkit-border-top-right-radius: 5px;
- -webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
- text-decoration: none;
- color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
- color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
- display: inline-block;
- padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
- height: 5px;
-}
-
-#qunit-testrunner-toolbar {
- padding: 0.5em 0 0.5em 2em;
- color: #5E740B;
- background-color: #eee;
- overflow: hidden;
-}
-
-#qunit-userAgent {
- padding: 0.5em 0 0.5em 2.5em;
- background-color: #2b81af;
- color: #fff;
- text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
- float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
- list-style-position: inside;
-}
-
-#qunit-tests li {
- padding: 0.4em 0.5em 0.4em 2.5em;
- border-bottom: 1px solid #fff;
- list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
- display: none;
-}
-
-#qunit-tests li strong {
- cursor: pointer;
-}
-
-#qunit-tests li a {
- padding: 0.5em;
- color: #c2ccd1;
- text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
- color: #000;
-}
-
-#qunit-tests li .runtime {
- float: right;
- font-size: smaller;
-}
-
-.qunit-assert-list {
- margin-top: 0.5em;
- padding: 0.5em;
-
- background-color: #fff;
-
- border-radius: 5px;
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
-}
-
-.qunit-collapsed {
- display: none;
-}
-
-#qunit-tests table {
- border-collapse: collapse;
- margin-top: .2em;
-}
-
-#qunit-tests th {
- text-align: right;
- vertical-align: top;
- padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
- vertical-align: top;
-}
-
-#qunit-tests pre {
- margin: 0;
- white-space: pre-wrap;
- word-wrap: break-word;
-}
-
-#qunit-tests del {
- background-color: #e0f2be;
- color: #374e0c;
- text-decoration: none;
-}
-
-#qunit-tests ins {
- background-color: #ffcaca;
- color: #500;
- text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts { color: black; }
-#qunit-tests b.passed { color: #5E740B; }
-#qunit-tests b.failed { color: #710909; }
-
-#qunit-tests li li {
- padding: 5px;
- background-color: #fff;
- border-bottom: none;
- list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
- color: #3c510c;
- background-color: #fff;
- border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected { color: #999999; }
-
-#qunit-banner.qunit-pass { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
- color: #710909;
- background-color: #fff;
- border-left: 10px solid #EE5757;
- white-space: pre;
-}
-
-#qunit-tests > li:last-child {
- border-radius: 0 0 5px 5px;
- -moz-border-radius: 0 0 5px 5px;
- -webkit-border-bottom-right-radius: 5px;
- -webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name { color: #000000; }
-
-#qunit-tests .fail .test-actual { color: #EE5757; }
-#qunit-tests .fail .test-expected { color: green; }
-
-#qunit-banner.qunit-fail { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
- padding: 0.5em 0.5em 0.5em 2.5em;
-
- color: #2b81af;
- background-color: #D2E0E6;
-
- border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
- font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
- position: absolute;
- top: -10000px;
- left: -10000px;
- width: 1000px;
- height: 1000px;
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit.js
deleted file mode 100644
index 84c73907de..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/qunit/qunit.js
+++ /dev/null
@@ -1,2212 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-
-(function( window ) {
-
-var QUnit,
- assert,
- config,
- onErrorFnPrev,
- testId = 0,
- fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
- toString = Object.prototype.toString,
- hasOwn = Object.prototype.hasOwnProperty,
- // Keep a local reference to Date (GH-283)
- Date = window.Date,
- setTimeout = window.setTimeout,
- defined = {
- setTimeout: typeof window.setTimeout !== "undefined",
- sessionStorage: (function() {
- var x = "qunit-test-string";
- try {
- sessionStorage.setItem( x, x );
- sessionStorage.removeItem( x );
- return true;
- } catch( e ) {
- return false;
- }
- }())
- },
- /**
- * Provides a normalized error string, correcting an issue
- * with IE 7 (and prior) where Error.prototype.toString is
- * not properly implemented
- *
- * Based on http://es5.github.com/#x15.11.4.4
- *
- * @param {String|Error} error
- * @return {String} error message
- */
- errorString = function( error ) {
- var name, message,
- errorString = error.toString();
- if ( errorString.substring( 0, 7 ) === "[object" ) {
- name = error.name ? error.name.toString() : "Error";
- message = error.message ? error.message.toString() : "";
- if ( name && message ) {
- return name + ": " + message;
- } else if ( name ) {
- return name;
- } else if ( message ) {
- return message;
- } else {
- return "Error";
- }
- } else {
- return errorString;
- }
- },
- /**
- * Makes a clone of an object using only Array or Object as base,
- * and copies over the own enumerable properties.
- *
- * @param {Object} obj
- * @return {Object} New object with only the own properties (recursively).
- */
- objectValues = function( obj ) {
- // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
- /*jshint newcap: false */
- var key, val,
- vals = QUnit.is( "array", obj ) ? [] : {};
- for ( key in obj ) {
- if ( hasOwn.call( obj, key ) ) {
- val = obj[key];
- vals[key] = val === Object(val) ? objectValues(val) : val;
- }
- }
- return vals;
- };
-
-function Test( settings ) {
- extend( this, settings );
- this.assertions = [];
- this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
- init: function() {
- var a, b, li,
- tests = id( "qunit-tests" );
-
- if ( tests ) {
- b = document.createElement( "strong" );
- b.innerHTML = this.nameHtml;
-
- // `a` initialized at top of scope
- a = document.createElement( "a" );
- a.innerHTML = "Rerun";
- a.href = QUnit.url({ testNumber: this.testNumber });
-
- li = document.createElement( "li" );
- li.appendChild( b );
- li.appendChild( a );
- li.className = "running";
- li.id = this.id = "qunit-test-output" + testId++;
-
- tests.appendChild( li );
- }
- },
- setup: function() {
- if (
- // Emit moduleStart when we're switching from one module to another
- this.module !== config.previousModule ||
- // They could be equal (both undefined) but if the previousModule property doesn't
- // yet exist it means this is the first test in a suite that isn't wrapped in a
- // module, in which case we'll just emit a moduleStart event for 'undefined'.
- // Without this, reporters can get testStart before moduleStart which is a problem.
- !hasOwn.call( config, "previousModule" )
- ) {
- if ( hasOwn.call( config, "previousModule" ) ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.previousModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
- config.previousModule = this.module;
- config.moduleStats = { all: 0, bad: 0 };
- runLoggingCallbacks( "moduleStart", QUnit, {
- name: this.module
- });
- }
-
- config.current = this;
-
- this.testEnvironment = extend({
- setup: function() {},
- teardown: function() {}
- }, this.moduleTestEnvironment );
-
- this.started = +new Date();
- runLoggingCallbacks( "testStart", QUnit, {
- name: this.testName,
- module: this.module
- });
-
- /*jshint camelcase:false */
-
-
- /**
- * Expose the current test environment.
- *
- * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
- */
- QUnit.current_testEnvironment = this.testEnvironment;
-
- /*jshint camelcase:true */
-
- if ( !config.pollution ) {
- saveGlobal();
- }
- if ( config.notrycatch ) {
- this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
- return;
- }
- try {
- this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
- } catch( e ) {
- QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
- }
- },
- run: function() {
- config.current = this;
-
- var running = id( "qunit-testresult" );
-
- if ( running ) {
- running.innerHTML = "Running: " + this.nameHtml;
- }
-
- if ( this.async ) {
- QUnit.stop();
- }
-
- this.callbackStarted = +new Date();
-
- if ( config.notrycatch ) {
- this.callback.call( this.testEnvironment, QUnit.assert );
- this.callbackRuntime = +new Date() - this.callbackStarted;
- return;
- }
-
- try {
- this.callback.call( this.testEnvironment, QUnit.assert );
- this.callbackRuntime = +new Date() - this.callbackStarted;
- } catch( e ) {
- this.callbackRuntime = +new Date() - this.callbackStarted;
-
- QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
- // else next test will carry the responsibility
- saveGlobal();
-
- // Restart the tests if they're blocking
- if ( config.blocking ) {
- QUnit.start();
- }
- }
- },
- teardown: function() {
- config.current = this;
- if ( config.notrycatch ) {
- if ( typeof this.callbackRuntime === "undefined" ) {
- this.callbackRuntime = +new Date() - this.callbackStarted;
- }
- this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
- return;
- } else {
- try {
- this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
- } catch( e ) {
- QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
- }
- }
- checkPollution();
- },
- finish: function() {
- config.current = this;
- if ( config.requireExpects && this.expected === null ) {
- QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
- } else if ( this.expected !== null && this.expected !== this.assertions.length ) {
- QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
- } else if ( this.expected === null && !this.assertions.length ) {
- QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
- }
-
- var i, assertion, a, b, time, li, ol,
- test = this,
- good = 0,
- bad = 0,
- tests = id( "qunit-tests" );
-
- this.runtime = +new Date() - this.started;
- config.stats.all += this.assertions.length;
- config.moduleStats.all += this.assertions.length;
-
- if ( tests ) {
- ol = document.createElement( "ol" );
- ol.className = "qunit-assert-list";
-
- for ( i = 0; i < this.assertions.length; i++ ) {
- assertion = this.assertions[i];
-
- li = document.createElement( "li" );
- li.className = assertion.result ? "pass" : "fail";
- li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
- ol.appendChild( li );
-
- if ( assertion.result ) {
- good++;
- } else {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
-
- // store result when possible
- if ( QUnit.config.reorder && defined.sessionStorage ) {
- if ( bad ) {
- sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
- } else {
- sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
- }
- }
-
- if ( bad === 0 ) {
- addClass( ol, "qunit-collapsed" );
- }
-
- // `b` initialized at top of scope
- b = document.createElement( "strong" );
- b.innerHTML = this.nameHtml + " (" + bad + " , " + good + " , " + this.assertions.length + ") ";
-
- addEvent(b, "click", function() {
- var next = b.parentNode.lastChild,
- collapsed = hasClass( next, "qunit-collapsed" );
- ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
- });
-
- addEvent(b, "dblclick", function( e ) {
- var target = e && e.target ? e.target : window.event.srcElement;
- if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
- target = target.parentNode;
- }
- if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
- window.location = QUnit.url({ testNumber: test.testNumber });
- }
- });
-
- // `time` initialized at top of scope
- time = document.createElement( "span" );
- time.className = "runtime";
- time.innerHTML = this.runtime + " ms";
-
- // `li` initialized at top of scope
- li = id( this.id );
- li.className = bad ? "fail" : "pass";
- li.removeChild( li.firstChild );
- a = li.firstChild;
- li.appendChild( b );
- li.appendChild( a );
- li.appendChild( time );
- li.appendChild( ol );
-
- } else {
- for ( i = 0; i < this.assertions.length; i++ ) {
- if ( !this.assertions[i].result ) {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
- }
-
- runLoggingCallbacks( "testDone", QUnit, {
- name: this.testName,
- module: this.module,
- failed: bad,
- passed: this.assertions.length - bad,
- total: this.assertions.length,
- duration: this.runtime
- });
-
- QUnit.reset();
-
- config.current = undefined;
- },
-
- queue: function() {
- var bad,
- test = this;
-
- synchronize(function() {
- test.init();
- });
- function run() {
- // each of these can by async
- synchronize(function() {
- test.setup();
- });
- synchronize(function() {
- test.run();
- });
- synchronize(function() {
- test.teardown();
- });
- synchronize(function() {
- test.finish();
- });
- }
-
- // `bad` initialized at top of scope
- // defer when previous test run passed, if storage is available
- bad = QUnit.config.reorder && defined.sessionStorage &&
- +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
- if ( bad ) {
- run();
- } else {
- synchronize( run, true );
- }
- }
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
- // call on start of module test to prepend name to all tests
- module: function( name, testEnvironment ) {
- config.currentModule = name;
- config.currentModuleTestEnvironment = testEnvironment;
- config.modules[name] = true;
- },
-
- asyncTest: function( testName, expected, callback ) {
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- QUnit.test( testName, expected, callback, true );
- },
-
- test: function( testName, expected, callback, async ) {
- var test,
- nameHtml = "" + escapeText( testName ) + " ";
-
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- if ( config.currentModule ) {
- nameHtml = "" + escapeText( config.currentModule ) + " : " + nameHtml;
- }
-
- test = new Test({
- nameHtml: nameHtml,
- testName: testName,
- expected: expected,
- async: async,
- callback: callback,
- module: config.currentModule,
- moduleTestEnvironment: config.currentModuleTestEnvironment,
- stack: sourceFromStacktrace( 2 )
- });
-
- if ( !validTest( test ) ) {
- return;
- }
-
- test.queue();
- },
-
- // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
- expect: function( asserts ) {
- if (arguments.length === 1) {
- config.current.expected = asserts;
- } else {
- return config.current.expected;
- }
- },
-
- start: function( count ) {
- // QUnit hasn't been initialized yet.
- // Note: RequireJS (et al) may delay onLoad
- if ( config.semaphore === undefined ) {
- QUnit.begin(function() {
- // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
- setTimeout(function() {
- QUnit.start( count );
- });
- });
- return;
- }
-
- config.semaphore -= count || 1;
- // don't start until equal number of stop-calls
- if ( config.semaphore > 0 ) {
- return;
- }
- // ignore if start is called more often then stop
- if ( config.semaphore < 0 ) {
- config.semaphore = 0;
- QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
- return;
- }
- // A slight delay, to avoid any current callbacks
- if ( defined.setTimeout ) {
- setTimeout(function() {
- if ( config.semaphore > 0 ) {
- return;
- }
- if ( config.timeout ) {
- clearTimeout( config.timeout );
- }
-
- config.blocking = false;
- process( true );
- }, 13);
- } else {
- config.blocking = false;
- process( true );
- }
- },
-
- stop: function( count ) {
- config.semaphore += count || 1;
- config.blocking = true;
-
- if ( config.testTimeout && defined.setTimeout ) {
- clearTimeout( config.timeout );
- config.timeout = setTimeout(function() {
- QUnit.ok( false, "Test timed out" );
- config.semaphore = 1;
- QUnit.start();
- }, config.testTimeout );
- }
- }
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
- /**
- * Asserts rough true-ish result.
- * @name ok
- * @function
- * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
- */
- ok: function( result, msg ) {
- if ( !config.current ) {
- throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
- result = !!result;
- msg = msg || (result ? "okay" : "failed" );
-
- var source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: msg
- };
-
- msg = "" + escapeText( msg ) + " ";
-
- if ( !result ) {
- source = sourceFromStacktrace( 2 );
- if ( source ) {
- details.source = source;
- msg += " Source: " + escapeText( source ) + "
";
- }
- }
- runLoggingCallbacks( "log", QUnit, details );
- config.current.assertions.push({
- result: result,
- message: msg
- });
- },
-
- /**
- * Assert that the first two arguments are equal, with an optional message.
- * Prints out both actual and expected values.
- * @name equal
- * @function
- * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
- */
- equal: function( actual, expected, message ) {
- /*jshint eqeqeq:false */
- QUnit.push( expected == actual, actual, expected, message );
- },
-
- /**
- * @name notEqual
- * @function
- */
- notEqual: function( actual, expected, message ) {
- /*jshint eqeqeq:false */
- QUnit.push( expected != actual, actual, expected, message );
- },
-
- /**
- * @name propEqual
- * @function
- */
- propEqual: function( actual, expected, message ) {
- actual = objectValues(actual);
- expected = objectValues(expected);
- QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name notPropEqual
- * @function
- */
- notPropEqual: function( actual, expected, message ) {
- actual = objectValues(actual);
- expected = objectValues(expected);
- QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name deepEqual
- * @function
- */
- deepEqual: function( actual, expected, message ) {
- QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name notDeepEqual
- * @function
- */
- notDeepEqual: function( actual, expected, message ) {
- QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name strictEqual
- * @function
- */
- strictEqual: function( actual, expected, message ) {
- QUnit.push( expected === actual, actual, expected, message );
- },
-
- /**
- * @name notStrictEqual
- * @function
- */
- notStrictEqual: function( actual, expected, message ) {
- QUnit.push( expected !== actual, actual, expected, message );
- },
-
- "throws": function( block, expected, message ) {
- var actual,
- expectedOutput = expected,
- ok = false;
-
- // 'expected' is optional
- if ( typeof expected === "string" ) {
- message = expected;
- expected = null;
- }
-
- config.current.ignoreGlobalErrors = true;
- try {
- block.call( config.current.testEnvironment );
- } catch (e) {
- actual = e;
- }
- config.current.ignoreGlobalErrors = false;
-
- if ( actual ) {
- // we don't want to validate thrown error
- if ( !expected ) {
- ok = true;
- expectedOutput = null;
- // expected is a regexp
- } else if ( QUnit.objectType( expected ) === "regexp" ) {
- ok = expected.test( errorString( actual ) );
- // expected is a constructor
- } else if ( actual instanceof expected ) {
- ok = true;
- // expected is a validation function which returns true is validation passed
- } else if ( expected.call( {}, actual ) === true ) {
- expectedOutput = null;
- ok = true;
- }
-
- QUnit.push( ok, actual, expectedOutput, message );
- } else {
- QUnit.pushFailure( message, null, "No exception was thrown." );
- }
- }
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
- */
-QUnit.raises = assert[ "throws" ];
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
- QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
- QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
- function F() {}
- F.prototype = QUnit;
- QUnit = new F();
- // Make F QUnit's constructor so that we can add to the prototype later
- QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
- // The queue of tests to run
- queue: [],
-
- // block until document ready
- blocking: true,
-
- // when enabled, show only failing tests
- // gets persisted through sessionStorage and can be changed in UI via checkbox
- hidepassed: false,
-
- // by default, run previously failed tests first
- // very useful in combination with "Hide passed tests" checked
- reorder: true,
-
- // by default, modify document.title when suite is done
- altertitle: true,
-
- // when enabled, all tests must call expect()
- requireExpects: false,
-
- // add checkboxes that are persisted in the query-string
- // when enabled, the id is set to `true` as a `QUnit.config` property
- urlConfig: [
- {
- id: "noglobals",
- label: "Check for Globals",
- tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
- },
- {
- id: "notrycatch",
- label: "No try-catch",
- tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
- }
- ],
-
- // Set of all modules.
- modules: {},
-
- // logging callback queues
- begin: [],
- done: [],
- log: [],
- testStart: [],
- testDone: [],
- moduleStart: [],
- moduleDone: []
-};
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
- extend( window, QUnit.constructor.prototype );
-
- // Expose QUnit object
- window.QUnit = QUnit;
-}
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
- var i,
- location = window.location || { search: "", protocol: "file:" },
- params = location.search.slice( 1 ).split( "&" ),
- length = params.length,
- urlParams = {},
- current;
-
- if ( params[ 0 ] ) {
- for ( i = 0; i < length; i++ ) {
- current = params[ i ].split( "=" );
- current[ 0 ] = decodeURIComponent( current[ 0 ] );
- // allow just a key to turn on a flag, e.g., test.html?noglobals
- current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
- urlParams[ current[ 0 ] ] = current[ 1 ];
- }
- }
-
- QUnit.urlParams = urlParams;
-
- // String search anywhere in moduleName+testName
- config.filter = urlParams.filter;
-
- // Exact match of the module name
- config.module = urlParams.module;
-
- config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
- // Figure out if we're running the tests from a server or not
- QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
- assert: assert,
-
- config: config,
-
- // Initialize the configuration options
- init: function() {
- extend( config, {
- stats: { all: 0, bad: 0 },
- moduleStats: { all: 0, bad: 0 },
- started: +new Date(),
- updateRate: 1000,
- blocking: false,
- autostart: true,
- autorun: false,
- filter: "",
- queue: [],
- semaphore: 1
- });
-
- var tests, banner, result,
- qunit = id( "qunit" );
-
- if ( qunit ) {
- qunit.innerHTML =
- "" +
- " " +
- "
" +
- " " +
- " ";
- }
-
- tests = id( "qunit-tests" );
- banner = id( "qunit-banner" );
- result = id( "qunit-testresult" );
-
- if ( tests ) {
- tests.innerHTML = "";
- }
-
- if ( banner ) {
- banner.className = "";
- }
-
- if ( result ) {
- result.parentNode.removeChild( result );
- }
-
- if ( tests ) {
- result = document.createElement( "p" );
- result.id = "qunit-testresult";
- result.className = "result";
- tests.parentNode.insertBefore( result, tests );
- result.innerHTML = "Running... ";
- }
- },
-
- // Resets the test setup. Useful for tests that modify the DOM.
- /*
- DEPRECATED: Use multiple tests instead of resetting inside a test.
- Use testStart or testDone for custom cleanup.
- This method will throw an error in 2.0, and will be removed in 2.1
- */
- reset: function() {
- var fixture = id( "qunit-fixture" );
- if ( fixture ) {
- fixture.innerHTML = config.fixture;
- }
- },
-
- // Trigger an event on an element.
- // @example triggerEvent( document.body, "click" );
- triggerEvent: function( elem, type, event ) {
- if ( document.createEvent ) {
- event = document.createEvent( "MouseEvents" );
- event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
- 0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
- elem.dispatchEvent( event );
- } else if ( elem.fireEvent ) {
- elem.fireEvent( "on" + type );
- }
- },
-
- // Safe object type checking
- is: function( type, obj ) {
- return QUnit.objectType( obj ) === type;
- },
-
- objectType: function( obj ) {
- if ( typeof obj === "undefined" ) {
- return "undefined";
- // consider: typeof null === object
- }
- if ( obj === null ) {
- return "null";
- }
-
- var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
- type = match && match[1] || "";
-
- switch ( type ) {
- case "Number":
- if ( isNaN(obj) ) {
- return "nan";
- }
- return "number";
- case "String":
- case "Boolean":
- case "Array":
- case "Date":
- case "RegExp":
- case "Function":
- return type.toLowerCase();
- }
- if ( typeof obj === "object" ) {
- return "object";
- }
- return undefined;
- },
-
- push: function( result, actual, expected, message ) {
- if ( !config.current ) {
- throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
- }
-
- var output, source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: message,
- actual: actual,
- expected: expected
- };
-
- message = escapeText( message ) || ( result ? "okay" : "failed" );
- message = "" + message + " ";
- output = message;
-
- if ( !result ) {
- expected = escapeText( QUnit.jsDump.parse(expected) );
- actual = escapeText( QUnit.jsDump.parse(actual) );
- output += "Expected: " + expected + " ";
-
- if ( actual !== expected ) {
- output += "Result: " + actual + " ";
- output += "Diff: " + QUnit.diff( expected, actual ) + " ";
- }
-
- source = sourceFromStacktrace();
-
- if ( source ) {
- details.source = source;
- output += "Source: " + escapeText( source ) + " ";
- }
-
- output += "
";
- }
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: !!result,
- message: output
- });
- },
-
- pushFailure: function( message, source, actual ) {
- if ( !config.current ) {
- throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
-
- var output,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: false,
- message: message
- };
-
- message = escapeText( message ) || "error";
- message = "" + message + " ";
- output = message;
-
- output += "";
-
- if ( actual ) {
- output += "Result: " + escapeText( actual ) + " ";
- }
-
- if ( source ) {
- details.source = source;
- output += "Source: " + escapeText( source ) + " ";
- }
-
- output += "
";
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: false,
- message: output
- });
- },
-
- url: function( params ) {
- params = extend( extend( {}, QUnit.urlParams ), params );
- var key,
- querystring = "?";
-
- for ( key in params ) {
- if ( hasOwn.call( params, key ) ) {
- querystring += encodeURIComponent( key ) + "=" +
- encodeURIComponent( params[ key ] ) + "&";
- }
- }
- return window.location.protocol + "//" + window.location.host +
- window.location.pathname + querystring.slice( 0, -1 );
- },
-
- extend: extend,
- id: id,
- addEvent: addEvent,
- addClass: addClass,
- hasClass: hasClass,
- removeClass: removeClass
- // load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
- // Logging callbacks; all receive a single argument with the listed properties
- // run test/logs.html for any related changes
- begin: registerLoggingCallback( "begin" ),
-
- // done: { failed, passed, total, runtime }
- done: registerLoggingCallback( "done" ),
-
- // log: { result, actual, expected, message }
- log: registerLoggingCallback( "log" ),
-
- // testStart: { name }
- testStart: registerLoggingCallback( "testStart" ),
-
- // testDone: { name, failed, passed, total, duration }
- testDone: registerLoggingCallback( "testDone" ),
-
- // moduleStart: { name }
- moduleStart: registerLoggingCallback( "moduleStart" ),
-
- // moduleDone: { name, failed, passed, total }
- moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
- config.autorun = true;
-}
-
-QUnit.load = function() {
- runLoggingCallbacks( "begin", QUnit, {} );
-
- // Initialize the config, saving the execution queue
- var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
- urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
- numModules = 0,
- moduleNames = [],
- moduleFilterHtml = "",
- urlConfigHtml = "",
- oldconfig = extend( {}, config );
-
- QUnit.init();
- extend(config, oldconfig);
-
- config.blocking = false;
-
- len = config.urlConfig.length;
-
- for ( i = 0; i < len; i++ ) {
- val = config.urlConfig[i];
- if ( typeof val === "string" ) {
- val = {
- id: val,
- label: val,
- tooltip: "[no tooltip available]"
- };
- }
- config[ val.id ] = QUnit.urlParams[ val.id ];
- urlConfigHtml += "" + val.label + " ";
- }
- for ( i in config.modules ) {
- if ( config.modules.hasOwnProperty( i ) ) {
- moduleNames.push(i);
- }
- }
- numModules = moduleNames.length;
- moduleNames.sort( function( a, b ) {
- return a.localeCompare( b );
- });
- moduleFilterHtml += "Module: < All Modules > ";
-
-
- for ( i = 0; i < numModules; i++) {
- moduleFilterHtml += "" + escapeText(moduleNames[i]) + " ";
- }
- moduleFilterHtml += " ";
-
- // `userAgent` initialized at top of scope
- userAgent = id( "qunit-userAgent" );
- if ( userAgent ) {
- userAgent.innerHTML = navigator.userAgent;
- }
-
- // `banner` initialized at top of scope
- banner = id( "qunit-header" );
- if ( banner ) {
- banner.innerHTML = "" + banner.innerHTML + " ";
- }
-
- // `toolbar` initialized at top of scope
- toolbar = id( "qunit-testrunner-toolbar" );
- if ( toolbar ) {
- // `filter` initialized at top of scope
- filter = document.createElement( "input" );
- filter.type = "checkbox";
- filter.id = "qunit-filter-pass";
-
- addEvent( filter, "click", function() {
- var tmp,
- ol = document.getElementById( "qunit-tests" );
-
- if ( filter.checked ) {
- ol.className = ol.className + " hidepass";
- } else {
- tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
- ol.className = tmp.replace( / hidepass /, " " );
- }
- if ( defined.sessionStorage ) {
- if (filter.checked) {
- sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
- } else {
- sessionStorage.removeItem( "qunit-filter-passed-tests" );
- }
- }
- });
-
- if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
- filter.checked = true;
- // `ol` initialized at top of scope
- ol = document.getElementById( "qunit-tests" );
- ol.className = ol.className + " hidepass";
- }
- toolbar.appendChild( filter );
-
- // `label` initialized at top of scope
- label = document.createElement( "label" );
- label.setAttribute( "for", "qunit-filter-pass" );
- label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
- label.innerHTML = "Hide passed tests";
- toolbar.appendChild( label );
-
- urlConfigCheckboxesContainer = document.createElement("span");
- urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
- urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
- // For oldIE support:
- // * Add handlers to the individual elements instead of the container
- // * Use "click" instead of "change"
- // * Fallback from event.target to event.srcElement
- addEvents( urlConfigCheckboxes, "click", function( event ) {
- var params = {},
- target = event.target || event.srcElement;
- params[ target.name ] = target.checked ? true : undefined;
- window.location = QUnit.url( params );
- });
- toolbar.appendChild( urlConfigCheckboxesContainer );
-
- if (numModules > 1) {
- moduleFilter = document.createElement( "span" );
- moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
- moduleFilter.innerHTML = moduleFilterHtml;
- addEvent( moduleFilter.lastChild, "change", function() {
- var selectBox = moduleFilter.getElementsByTagName("select")[0],
- selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
- window.location = QUnit.url({
- module: ( selectedModule === "" ) ? undefined : selectedModule,
- // Remove any existing filters
- filter: undefined,
- testNumber: undefined
- });
- });
- toolbar.appendChild(moduleFilter);
- }
- }
-
- // `main` initialized at top of scope
- main = id( "qunit-fixture" );
- if ( main ) {
- config.fixture = main.innerHTML;
- }
-
- if ( config.autostart ) {
- QUnit.start();
- }
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
- var ret = false;
- if ( onErrorFnPrev ) {
- ret = onErrorFnPrev( error, filePath, linerNr );
- }
-
- // Treat return value as window.onerror itself does,
- // Only do our handling if not suppressed.
- if ( ret !== true ) {
- if ( QUnit.config.current ) {
- if ( QUnit.config.current.ignoreGlobalErrors ) {
- return true;
- }
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- } else {
- QUnit.test( "global failure", extend( function() {
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- }, { validTest: validTest } ) );
- }
- return false;
- }
-
- return ret;
-};
-
-function done() {
- config.autorun = true;
-
- // Log the last module results
- if ( config.currentModule ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.currentModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
- delete config.previousModule;
-
- var i, key,
- banner = id( "qunit-banner" ),
- tests = id( "qunit-tests" ),
- runtime = +new Date() - config.started,
- passed = config.stats.all - config.stats.bad,
- html = [
- "Tests completed in ",
- runtime,
- " milliseconds. ",
- "",
- passed,
- " assertions of ",
- config.stats.all,
- " passed, ",
- config.stats.bad,
- " failed."
- ].join( "" );
-
- if ( banner ) {
- banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
- }
-
- if ( tests ) {
- id( "qunit-testresult" ).innerHTML = html;
- }
-
- if ( config.altertitle && typeof document !== "undefined" && document.title ) {
- // show ✖ for good, ✔ for bad suite result in title
- // use escape sequences in case file gets loaded with non-utf-8-charset
- document.title = [
- ( config.stats.bad ? "\u2716" : "\u2714" ),
- document.title.replace( /^[\u2714\u2716] /i, "" )
- ].join( " " );
- }
-
- // clear own sessionStorage items if all tests passed
- if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
- // `key` & `i` initialized at top of scope
- for ( i = 0; i < sessionStorage.length; i++ ) {
- key = sessionStorage.key( i++ );
- if ( key.indexOf( "qunit-test-" ) === 0 ) {
- sessionStorage.removeItem( key );
- }
- }
- }
-
- // scroll back to top to show results
- if ( window.scrollTo ) {
- window.scrollTo(0, 0);
- }
-
- runLoggingCallbacks( "done", QUnit, {
- failed: config.stats.bad,
- passed: passed,
- total: config.stats.all,
- runtime: runtime
- });
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
- var include,
- filter = config.filter && config.filter.toLowerCase(),
- module = config.module && config.module.toLowerCase(),
- fullName = (test.module + ": " + test.testName).toLowerCase();
-
- // Internally-generated tests are always valid
- if ( test.callback && test.callback.validTest === validTest ) {
- delete test.callback.validTest;
- return true;
- }
-
- if ( config.testNumber ) {
- return test.testNumber === config.testNumber;
- }
-
- if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
- return false;
- }
-
- if ( !filter ) {
- return true;
- }
-
- include = filter.charAt( 0 ) !== "!";
- if ( !include ) {
- filter = filter.slice( 1 );
- }
-
- // If the filter matches, we need to honour include
- if ( fullName.indexOf( filter ) !== -1 ) {
- return include;
- }
-
- // Otherwise, do the opposite
- return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
- offset = offset === undefined ? 3 : offset;
-
- var stack, include, i;
-
- if ( e.stacktrace ) {
- // Opera
- return e.stacktrace.split( "\n" )[ offset + 3 ];
- } else if ( e.stack ) {
- // Firefox, Chrome
- stack = e.stack.split( "\n" );
- if (/^error$/i.test( stack[0] ) ) {
- stack.shift();
- }
- if ( fileName ) {
- include = [];
- for ( i = offset; i < stack.length; i++ ) {
- if ( stack[ i ].indexOf( fileName ) !== -1 ) {
- break;
- }
- include.push( stack[ i ] );
- }
- if ( include.length ) {
- return include.join( "\n" );
- }
- }
- return stack[ offset ];
- } else if ( e.sourceURL ) {
- // Safari, PhantomJS
- // hopefully one day Safari provides actual stacktraces
- // exclude useless self-reference for generated Error objects
- if ( /qunit.js$/.test( e.sourceURL ) ) {
- return;
- }
- // for actual exceptions, this is useful
- return e.sourceURL + ":" + e.line;
- }
-}
-function sourceFromStacktrace( offset ) {
- try {
- throw new Error();
- } catch ( e ) {
- return extractStacktrace( e, offset );
- }
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
- if ( !s ) {
- return "";
- }
- s = s + "";
- // Both single quotes and double quotes (for attributes)
- return s.replace( /['"<>&]/g, function( s ) {
- switch( s ) {
- case "'":
- return "'";
- case "\"":
- return """;
- case "<":
- return "<";
- case ">":
- return ">";
- case "&":
- return "&";
- }
- });
-}
-
-function synchronize( callback, last ) {
- config.queue.push( callback );
-
- if ( config.autorun && !config.blocking ) {
- process( last );
- }
-}
-
-function process( last ) {
- function next() {
- process( last );
- }
- var start = new Date().getTime();
- config.depth = config.depth ? config.depth + 1 : 1;
-
- while ( config.queue.length && !config.blocking ) {
- if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
- config.queue.shift()();
- } else {
- setTimeout( next, 13 );
- break;
- }
- }
- config.depth--;
- if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
- done();
- }
-}
-
-function saveGlobal() {
- config.pollution = [];
-
- if ( config.noglobals ) {
- for ( var key in window ) {
- if ( hasOwn.call( window, key ) ) {
- // in Opera sometimes DOM element ids show up here, ignore them
- if ( /^qunit-test-output/.test( key ) ) {
- continue;
- }
- config.pollution.push( key );
- }
- }
- }
-}
-
-function checkPollution() {
- var newGlobals,
- deletedGlobals,
- old = config.pollution;
-
- saveGlobal();
-
- newGlobals = diff( config.pollution, old );
- if ( newGlobals.length > 0 ) {
- QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
- }
-
- deletedGlobals = diff( old, config.pollution );
- if ( deletedGlobals.length > 0 ) {
- QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
- }
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
- var i, j,
- result = a.slice();
-
- for ( i = 0; i < result.length; i++ ) {
- for ( j = 0; j < b.length; j++ ) {
- if ( result[i] === b[j] ) {
- result.splice( i, 1 );
- i--;
- break;
- }
- }
- }
- return result;
-}
-
-function extend( a, b ) {
- for ( var prop in b ) {
- if ( hasOwn.call( b, prop ) ) {
- // Avoid "Member not found" error in IE8 caused by messing with window.constructor
- if ( !( prop === "constructor" && a === window ) ) {
- if ( b[ prop ] === undefined ) {
- delete a[ prop ];
- } else {
- a[ prop ] = b[ prop ];
- }
- }
- }
- }
-
- return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
- // Standards-based browsers
- if ( elem.addEventListener ) {
- elem.addEventListener( type, fn, false );
- // IE
- } else {
- elem.attachEvent( "on" + type, fn );
- }
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
- var i = elems.length;
- while ( i-- ) {
- addEvent( elems[i], type, fn );
- }
-}
-
-function hasClass( elem, name ) {
- return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
- if ( !hasClass( elem, name ) ) {
- elem.className += (elem.className ? " " : "") + name;
- }
-}
-
-function removeClass( elem, name ) {
- var set = " " + elem.className + " ";
- // Class name may appear multiple times
- while ( set.indexOf(" " + name + " ") > -1 ) {
- set = set.replace(" " + name + " " , " ");
- }
- // If possible, trim it for prettiness, but not necessarily
- elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
- return !!( typeof document !== "undefined" && document && document.getElementById ) &&
- document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
- return function( callback ) {
- config[key].push( callback );
- };
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
- var i, callbacks;
- if ( QUnit.hasOwnProperty( key ) ) {
- QUnit[ key ].call(scope, args );
- } else {
- callbacks = config[ key ];
- for ( i = 0; i < callbacks.length; i++ ) {
- callbacks[ i ].call( scope, args );
- }
- }
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé
-QUnit.equiv = (function() {
-
- // Call the o related callback with the given arguments.
- function bindCallbacks( o, callbacks, args ) {
- var prop = QUnit.objectType( o );
- if ( prop ) {
- if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
- return callbacks[ prop ].apply( callbacks, args );
- } else {
- return callbacks[ prop ]; // or undefined
- }
- }
- }
-
- // the real equiv function
- var innerEquiv,
- // stack to decide between skip/abort functions
- callers = [],
- // stack to avoiding loops from circular referencing
- parents = [],
- parentsB = [],
-
- getProto = Object.getPrototypeOf || function ( obj ) {
- /*jshint camelcase:false */
- return obj.__proto__;
- },
- callbacks = (function () {
-
- // for string, boolean, number and null
- function useStrictEquality( b, a ) {
- /*jshint eqeqeq:false */
- if ( b instanceof a.constructor || a instanceof b.constructor ) {
- // to catch short annotation VS 'new' annotation of a
- // declaration
- // e.g. var i = 1;
- // var j = new Number(1);
- return a == b;
- } else {
- return a === b;
- }
- }
-
- return {
- "string": useStrictEquality,
- "boolean": useStrictEquality,
- "number": useStrictEquality,
- "null": useStrictEquality,
- "undefined": useStrictEquality,
-
- "nan": function( b ) {
- return isNaN( b );
- },
-
- "date": function( b, a ) {
- return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
- },
-
- "regexp": function( b, a ) {
- return QUnit.objectType( b ) === "regexp" &&
- // the regex itself
- a.source === b.source &&
- // and its modifiers
- a.global === b.global &&
- // (gmi) ...
- a.ignoreCase === b.ignoreCase &&
- a.multiline === b.multiline &&
- a.sticky === b.sticky;
- },
-
- // - skip when the property is a method of an instance (OOP)
- // - abort otherwise,
- // initial === would have catch identical references anyway
- "function": function() {
- var caller = callers[callers.length - 1];
- return caller !== Object && typeof caller !== "undefined";
- },
-
- "array": function( b, a ) {
- var i, j, len, loop, aCircular, bCircular;
-
- // b could be an object literal here
- if ( QUnit.objectType( b ) !== "array" ) {
- return false;
- }
-
- len = a.length;
- if ( len !== b.length ) {
- // safe and faster
- return false;
- }
-
- // track reference to avoid circular references
- parents.push( a );
- parentsB.push( b );
- for ( i = 0; i < len; i++ ) {
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- aCircular = parents[j] === a[i];
- bCircular = parentsB[j] === b[i];
- if ( aCircular || bCircular ) {
- if ( a[i] === b[i] || aCircular && bCircular ) {
- loop = true;
- } else {
- parents.pop();
- parentsB.pop();
- return false;
- }
- }
- }
- if ( !loop && !innerEquiv(a[i], b[i]) ) {
- parents.pop();
- parentsB.pop();
- return false;
- }
- }
- parents.pop();
- parentsB.pop();
- return true;
- },
-
- "object": function( b, a ) {
- /*jshint forin:false */
- var i, j, loop, aCircular, bCircular,
- // Default to true
- eq = true,
- aProperties = [],
- bProperties = [];
-
- // comparing constructors is more strict than using
- // instanceof
- if ( a.constructor !== b.constructor ) {
- // Allow objects with no prototype to be equivalent to
- // objects with Object as their constructor.
- if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
- ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
- return false;
- }
- }
-
- // stack constructor before traversing properties
- callers.push( a.constructor );
-
- // track reference to avoid circular references
- parents.push( a );
- parentsB.push( b );
-
- // be strict: don't ensure hasOwnProperty and go deep
- for ( i in a ) {
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- aCircular = parents[j] === a[i];
- bCircular = parentsB[j] === b[i];
- if ( aCircular || bCircular ) {
- if ( a[i] === b[i] || aCircular && bCircular ) {
- loop = true;
- } else {
- eq = false;
- break;
- }
- }
- }
- aProperties.push(i);
- if ( !loop && !innerEquiv(a[i], b[i]) ) {
- eq = false;
- break;
- }
- }
-
- parents.pop();
- parentsB.pop();
- callers.pop(); // unstack, we are done
-
- for ( i in b ) {
- bProperties.push( i ); // collect b's properties
- }
-
- // Ensures identical properties name
- return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
- }
- };
- }());
-
- innerEquiv = function() { // can take multiple arguments
- var args = [].slice.apply( arguments );
- if ( args.length < 2 ) {
- return true; // end transition
- }
-
- return (function( a, b ) {
- if ( a === b ) {
- return true; // catch the most you can
- } else if ( a === null || b === null || typeof a === "undefined" ||
- typeof b === "undefined" ||
- QUnit.objectType(a) !== QUnit.objectType(b) ) {
- return false; // don't lose time with error prone cases
- } else {
- return bindCallbacks(a, callbacks, [ b, a ]);
- }
-
- // apply transition with (1..n) arguments
- }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
- };
-
- return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
- function quote( str ) {
- return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
- }
- function literal( o ) {
- return o + "";
- }
- function join( pre, arr, post ) {
- var s = jsDump.separator(),
- base = jsDump.indent(),
- inner = jsDump.indent(1);
- if ( arr.join ) {
- arr = arr.join( "," + s + inner );
- }
- if ( !arr ) {
- return pre + post;
- }
- return [ pre, inner + arr, base + post ].join(s);
- }
- function array( arr, stack ) {
- var i = arr.length, ret = new Array(i);
- this.up();
- while ( i-- ) {
- ret[i] = this.parse( arr[i] , undefined , stack);
- }
- this.down();
- return join( "[", ret, "]" );
- }
-
- var reName = /^function (\w+)/,
- jsDump = {
- // type is used mostly internally, you can fix a (custom)type in advance
- parse: function( obj, type, stack ) {
- stack = stack || [ ];
- var inStack, res,
- parser = this.parsers[ type || this.typeOf(obj) ];
-
- type = typeof parser;
- inStack = inArray( obj, stack );
-
- if ( inStack !== -1 ) {
- return "recursion(" + (inStack - stack.length) + ")";
- }
- if ( type === "function" ) {
- stack.push( obj );
- res = parser.call( this, obj, stack );
- stack.pop();
- return res;
- }
- return ( type === "string" ) ? parser : this.parsers.error;
- },
- typeOf: function( obj ) {
- var type;
- if ( obj === null ) {
- type = "null";
- } else if ( typeof obj === "undefined" ) {
- type = "undefined";
- } else if ( QUnit.is( "regexp", obj) ) {
- type = "regexp";
- } else if ( QUnit.is( "date", obj) ) {
- type = "date";
- } else if ( QUnit.is( "function", obj) ) {
- type = "function";
- } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
- type = "window";
- } else if ( obj.nodeType === 9 ) {
- type = "document";
- } else if ( obj.nodeType ) {
- type = "node";
- } else if (
- // native arrays
- toString.call( obj ) === "[object Array]" ||
- // NodeList objects
- ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
- ) {
- type = "array";
- } else if ( obj.constructor === Error.prototype.constructor ) {
- type = "error";
- } else {
- type = typeof obj;
- }
- return type;
- },
- separator: function() {
- return this.multiline ? this.HTML ? " " : "\n" : this.HTML ? " " : " ";
- },
- // extra can be a number, shortcut for increasing-calling-decreasing
- indent: function( extra ) {
- if ( !this.multiline ) {
- return "";
- }
- var chr = this.indentChar;
- if ( this.HTML ) {
- chr = chr.replace( /\t/g, " " ).replace( / /g, " " );
- }
- return new Array( this.depth + ( extra || 0 ) ).join(chr);
- },
- up: function( a ) {
- this.depth += a || 1;
- },
- down: function( a ) {
- this.depth -= a || 1;
- },
- setParser: function( name, parser ) {
- this.parsers[name] = parser;
- },
- // The next 3 are exposed so you can use them
- quote: quote,
- literal: literal,
- join: join,
- //
- depth: 1,
- // This is the list of parsers, to modify them, use jsDump.setParser
- parsers: {
- window: "[Window]",
- document: "[Document]",
- error: function(error) {
- return "Error(\"" + error.message + "\")";
- },
- unknown: "[Unknown]",
- "null": "null",
- "undefined": "undefined",
- "function": function( fn ) {
- var ret = "function",
- // functions never have name in IE
- name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
- if ( name ) {
- ret += " " + name;
- }
- ret += "( ";
-
- ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
- return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
- },
- array: array,
- nodelist: array,
- "arguments": array,
- object: function( map, stack ) {
- /*jshint forin:false */
- var ret = [ ], keys, key, val, i;
- QUnit.jsDump.up();
- keys = [];
- for ( key in map ) {
- keys.push( key );
- }
- keys.sort();
- for ( i = 0; i < keys.length; i++ ) {
- key = keys[ i ];
- val = map[ key ];
- ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
- }
- QUnit.jsDump.down();
- return join( "{", ret, "}" );
- },
- node: function( node ) {
- var len, i, val,
- open = QUnit.jsDump.HTML ? "<" : "<",
- close = QUnit.jsDump.HTML ? ">" : ">",
- tag = node.nodeName.toLowerCase(),
- ret = open + tag,
- attrs = node.attributes;
-
- if ( attrs ) {
- for ( i = 0, len = attrs.length; i < len; i++ ) {
- val = attrs[i].nodeValue;
- // IE6 includes all attributes in .attributes, even ones not explicitly set.
- // Those have values like undefined, null, 0, false, "" or "inherit".
- if ( val && val !== "inherit" ) {
- ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
- }
- }
- }
- ret += close;
-
- // Show content of TextNode or CDATASection
- if ( node.nodeType === 3 || node.nodeType === 4 ) {
- ret += node.nodeValue;
- }
-
- return ret + open + "/" + tag + close;
- },
- // function calls it internally, it's the arguments part of the function
- functionArgs: function( fn ) {
- var args,
- l = fn.length;
-
- if ( !l ) {
- return "";
- }
-
- args = new Array(l);
- while ( l-- ) {
- // 97 is 'a'
- args[l] = String.fromCharCode(97+l);
- }
- return " " + args.join( ", " ) + " ";
- },
- // object calls it internally, the key part of an item in a map
- key: quote,
- // function calls it internally, it's the content of the function
- functionCode: "[code]",
- // node calls it internally, it's an html attribute value
- attribute: quote,
- string: quote,
- date: quote,
- regexp: literal,
- number: literal,
- "boolean": literal
- },
- // if true, entities are escaped ( <, >, \t, space and \n )
- HTML: false,
- // indentation unit
- indentChar: " ",
- // if true, items in a collection, are separated by a \n, else just a space.
- multiline: true
- };
-
- return jsDump;
-}());
-
-// from jquery.js
-function inArray( elem, array ) {
- if ( array.indexOf ) {
- return array.indexOf( elem );
- }
-
- for ( var i = 0, length = array.length; i < length; i++ ) {
- if ( array[ i ] === elem ) {
- return i;
- }
- }
-
- return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- * By John Resig (http://ejohn.org/)
- * Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- * http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick brown fox jumped jumps over"
- */
-QUnit.diff = (function() {
- /*jshint eqeqeq:false, eqnull:true */
- function diff( o, n ) {
- var i,
- ns = {},
- os = {};
-
- for ( i = 0; i < n.length; i++ ) {
- if ( !hasOwn.call( ns, n[i] ) ) {
- ns[ n[i] ] = {
- rows: [],
- o: null
- };
- }
- ns[ n[i] ].rows.push( i );
- }
-
- for ( i = 0; i < o.length; i++ ) {
- if ( !hasOwn.call( os, o[i] ) ) {
- os[ o[i] ] = {
- rows: [],
- n: null
- };
- }
- os[ o[i] ].rows.push( i );
- }
-
- for ( i in ns ) {
- if ( hasOwn.call( ns, i ) ) {
- if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
- n[ ns[i].rows[0] ] = {
- text: n[ ns[i].rows[0] ],
- row: os[i].rows[0]
- };
- o[ os[i].rows[0] ] = {
- text: o[ os[i].rows[0] ],
- row: ns[i].rows[0]
- };
- }
- }
- }
-
- for ( i = 0; i < n.length - 1; i++ ) {
- if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
- n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
- n[ i + 1 ] = {
- text: n[ i + 1 ],
- row: n[i].row + 1
- };
- o[ n[i].row + 1 ] = {
- text: o[ n[i].row + 1 ],
- row: i + 1
- };
- }
- }
-
- for ( i = n.length - 1; i > 0; i-- ) {
- if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
- n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
- n[ i - 1 ] = {
- text: n[ i - 1 ],
- row: n[i].row - 1
- };
- o[ n[i].row - 1 ] = {
- text: o[ n[i].row - 1 ],
- row: i - 1
- };
- }
- }
-
- return {
- o: o,
- n: n
- };
- }
-
- return function( o, n ) {
- o = o.replace( /\s+$/, "" );
- n = n.replace( /\s+$/, "" );
-
- var i, pre,
- str = "",
- out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
- oSpace = o.match(/\s+/g),
- nSpace = n.match(/\s+/g);
-
- if ( oSpace == null ) {
- oSpace = [ " " ];
- }
- else {
- oSpace.push( " " );
- }
-
- if ( nSpace == null ) {
- nSpace = [ " " ];
- }
- else {
- nSpace.push( " " );
- }
-
- if ( out.n.length === 0 ) {
- for ( i = 0; i < out.o.length; i++ ) {
- str += "" + out.o[i] + oSpace[i] + "";
- }
- }
- else {
- if ( out.n[0].text == null ) {
- for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
- str += "" + out.o[n] + oSpace[n] + "";
- }
- }
-
- for ( i = 0; i < out.n.length; i++ ) {
- if (out.n[i].text == null) {
- str += "" + out.n[i] + nSpace[i] + " ";
- }
- else {
- // `pre` initialized at top of scope
- pre = "";
-
- for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
- pre += "" + out.o[n] + oSpace[n] + "";
- }
- str += " " + out.n[i].text + nSpace[i] + pre;
- }
- }
- }
-
- return str;
- };
-}());
-
-// for CommonJS environments, export everything
-if ( typeof exports !== "undefined" ) {
- extend( exports, QUnit.constructor.prototype );
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.URI.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.URI.html
deleted file mode 100644
index 94f63c1c59..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.URI.html
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- URI.js - URI Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.fragmentQuery.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.fragmentQuery.html
deleted file mode 100644
index ec01640d88..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.fragmentQuery.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- fragmentQuery - URI Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.fragmentURI.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.fragmentURI.html
deleted file mode 100644
index 50b5b9a799..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.fragmentURI.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- fragmentURI - URI Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.10.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.10.html
deleted file mode 100644
index 5b7d507906..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.10.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- jQuery Plugin 1.10 - URI Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.7.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.7.html
deleted file mode 100644
index a6283cc356..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.7.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- jQuery Plugin 1.7 - URI Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.8.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.8.html
deleted file mode 100644
index e25782b382..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.8.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- jQuery Plugin 1.8 - URI Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.9.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.9.html
deleted file mode 100644
index 32f544f290..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.jQuery-1.9.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- jQuery Plugin 1.9 - URI Test Suite
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.js
deleted file mode 100644
index c29c2ad19d..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test.js
+++ /dev/null
@@ -1,2036 +0,0 @@
-(function() {
- 'use strict';
- /*global window, document, location, URI, URI_pre_lib, IPv6, IPv6_pre_lib, URITemplate, URITemplate_pre_lib, SecondLevelDomains, SecondLevelDomains_pre_lib, urls, test, ok, equal, strictEqual, deepEqual, raises */
- // FIXME: v2.0.0 renamce non-camelCase properties to uppercase
- /*jshint camelcase: false, loopfunc: true */
-
- test('loaded', function() {
- ok(window.URI);
- });
-
- module('constructing');
- test('URI()', function() {
- var u = URI();
- ok(u instanceof URI, 'instanceof URI');
- equal(u.toString(), window.location && window.location.href || '', 'is location (browser) or empty string (node)');
- });
- test('URI(undefined)', function() {
- raises(function() {
- URI(undefined);
- }, TypeError, 'Failing undefined input');
- });
- test('URI(null)', function() {
- raises(function() {
- URI(null);
- }, TypeError, 'Failing undefined input');
- });
- test('new URI(string)', function() {
- var u = new URI('http://example.org/');
- ok(u instanceof URI, 'instanceof URI');
- ok(u._parts.hostname !== undefined, 'host undefined');
- });
- test('new URI(object)', function() {
- var u = new URI({protocol: 'http', hostname: 'example.org'});
- ok(u instanceof URI, 'instanceof URI');
- ok(u._parts.hostname !== undefined, 'host undefined');
- });
-
- test('new URI(object)', function() {
- var u = new URI({
- protocol: 'http',
- hostname: 'example.org',
- query: {
- foo: 'bar',
- bar: 'foo',
- },
- });
- ok(u instanceof URI, 'instanceof URI');
- ok(typeof u.query() === 'string', 'query is string');
- equal(u.query(), 'foo=bar&bar=foo', 'query has right value');
- equal(u.search(), '?foo=bar&bar=foo', 'search has right value');
- deepEqual(u.query(true), { foo: 'bar', bar: 'foo' }, 'query(true) value');
- deepEqual(u.search(true), { foo: 'bar', bar: 'foo' }, 'search(true) value');
- });
- test('new URI(object)', function() {
- var u = new URI({
- protocol: 'http',
- hostname: 'example.org',
- query: 'foo=bar&bar=foo',
- });
- ok(u instanceof URI, 'instanceof URI');
- ok(typeof u.query() === 'string', 'query is string');
- equal(u.query(), 'foo=bar&bar=foo', 'query has right value');
- equal(u.search(), '?foo=bar&bar=foo', 'search has right value');
- deepEqual(u.query(true), { foo: 'bar', bar: 'foo' }, 'query(true) value');
- deepEqual(u.search(true), { foo: 'bar', bar: 'foo' }, 'search(true) value');
- });
- test('new URI(object)', function() {
- var u = new URI({
- protocol: 'http',
- hostname: 'example.org',
- query: '?foo=bar&bar=foo',
- });
- ok(u instanceof URI, 'instanceof URI');
- ok(typeof u.query() === 'string', 'query is string');
- equal(u.query(), 'foo=bar&bar=foo', 'query has right value');
- equal(u.search(), '?foo=bar&bar=foo', 'search has right value');
- deepEqual(u.query(true), { foo: 'bar', bar: 'foo' }, 'query(true) value');
- deepEqual(u.search(true), { foo: 'bar', bar: 'foo' }, 'search(true) value');
- });
- test('new URI(Location)', function () {
- var u = new URI(location);
- equal(u.href(), String(location.href), 'location object');
- });
- test('new URI(undefined)', function() {
- var u = new URI();
- ok(u instanceof URI, 'instanceof URI');
- equal(u.toString(), window.location && window.location.href || '', 'is location (browser) or empty string (node)');
- raises(function() {
- new URI(undefined);
- }, TypeError, 'Failing undefined input');
- });
- (function() {
- var element;
-
- function testDomAttribute(element, attribute) {
- test('new URI(Element ' + element.nodeName + ')', function() {
- element[attribute] = 'http://example.org/foobar.html';
-
- var u = new URI(element);
- equal(u.scheme(), 'http', 'scheme');
- equal(u.host(), 'example.org', 'host');
- equal(u.path(), '/foobar.html', 'path');
-
- element[attribute] = 'file:///C:/foo/bar.html';
- u = new URI(element);
- equal(u.href(), element[attribute], 'file');
- });
- }
-
- function testUnsupportedDomAttribute(element, attribute) {
- test('new URI(unsupported Element ' + element.nodeName + ')', function() {
- element[attribute] = 'http://example.org/foobar.html';
-
- var u = new URI(element);
- equal(u.scheme(), '', 'scheme');
- equal(u.host(), '', 'host');
- equal(u.path(), '', 'path');
-
- element[attribute] = 'file:///C:/foo/bar.html';
- u = new URI(element);
- equal(u.href(), '', 'file');
- });
- }
-
- for (var nodeName in URI.domAttributes) {
- if (!Object.prototype.hasOwnProperty.call(URI.domAttributes, nodeName) || nodeName === 'input') {
- continue;
- }
-
- element = document.createElement(nodeName);
- testDomAttribute(element, URI.domAttributes[nodeName]);
- }
-
- element = document.createElement('input');
- element.type = 'image';
- testDomAttribute(element, 'src');
-
- element = document.createElement('input');
- testUnsupportedDomAttribute(element, 'src');
-
- element = document.createElement('div');
- testUnsupportedDomAttribute(element, 'src');
- })();
- test('new URI(URI)', function() {
- var u = new URI(new URI({protocol: 'http', hostname: 'example.org'}));
- ok(u instanceof URI, 'instanceof URI');
- ok(u._parts.hostname !== undefined, 'host undefined');
- });
- test('new URI(new Date())', function() {
- raises(function() {
- new URI(new Date());
- }, TypeError, 'Failing unknown input');
- });
- test('new URI(undefined)', function() {
- raises(function() {
- new URI(undefined);
- }, TypeError, 'Failing undefined input');
- });
- test('new URI()', function() {
- var u = new URI();
- ok(u instanceof URI, 'instanceof URI');
- ok(u._parts.hostname === location.hostname || u._parts.hostname === null && location.hostname === '',
- 'hostname == location.hostname');
- });
- test('function URI(string)', function() {
- var u = new URI('http://example.org/');
- ok(u instanceof URI, 'instanceof URI');
- ok(u._parts.hostname !== undefined, 'host undefined');
- });
- test('function URI(string) with invalid port "port" throws', function () {
- raises(function () {
- new URI('http://example.org:port');
- }, TypeError, "throws TypeError");
- });
- test('function URI(string) with invalid port "0" throws', function () {
- raises(function () {
- new URI('http://example.org:0');
- }, TypeError, "throws TypeError");
- });
- test('function URI(string) with invalid port "65536" throws', function () {
- raises(function () {
- new URI('http://example.org:65536');
- }, TypeError, "throws TypeError");
- });
- test('function URI(string) with protocol and without hostname should throw', function () {
- new URI('http://');
-
- URI.preventInvalidHostname = true;
- raises(function () {
- new URI('http://');
- }, TypeError, "throws TypeError");
-
- URI.preventInvalidHostname = false;
- new URI('http://');
- });
- test('new URI(string, string)', function() {
- // see http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor
- var u = new URI('../foobar.html', 'http://example.org/hello/world.html');
- equal(u+'', 'http://example.org/foobar.html', 'resolve on construct');
- });
-
- module('parsing');
- // [].forEach() no IE, lacking interest in polyfilling this...
- for (var i = 0, t; (t = urls[i]); i++) {
- (function(t){
- test('parse ' + t.name, function() {
- var u = new URI(t.url),
- key;
-
- // test URL built from parts
- equal(u + '', t._url || t.url, 'toString');
-
- // test parsed parts
- for (key in t.parts) {
- if (Object.hasOwnProperty.call(t.parts, key)) {
- equal(u._parts[key], t.parts[key], 'part: ' + key);
- }
- }
-
- // test accessors
- for (key in t.accessors) {
- if (Object.hasOwnProperty.call(t.accessors, key)) {
- equal(u[key](), t.accessors[key], 'accessor: ' + key);
- }
- }
-
- // test is()
- for (key in t.is) {
- if (Object.hasOwnProperty.call(t.is, key)) {
- equal(u.is(key), t.is[key], 'is: ' + key);
- }
- }
- });
- })(t);
- }
-
- module('mutating basics');
- test('protocol', function() {
- var u = new URI('http://example.org/foo.html');
- u.protocol('ftp');
- equal(u.protocol(), 'ftp', 'ftp protocol');
- equal(u+'', 'ftp://example.org/foo.html', 'ftp url');
-
- u.protocol('');
- equal(u.protocol(), '', 'relative protocol');
- equal(u+'', '//example.org/foo.html', 'relative-scheme url');
-
- u.protocol('f.t-p+0');
- equal(u.protocol(), 'f.t-p+0', 'character profile');
-
- try {
- u.protocol('f:t');
- ok(false, 'do not accept invalid protocol');
- } catch(e) {}
-
- u.protocol(null);
- equal(u.protocol(), '', 'missing protocol');
- equal(u+'', '//example.org/foo.html', 'missing-scheme url');
- });
- test('username', function() {
- var u = new URI('http://example.org/foo.html');
- u.username('hello');
- equal(u.username(), 'hello', 'changed username hello');
- equal(u.password(), '', 'changed passowrd hello');
- equal(u+'', 'http://hello@example.org/foo.html', 'changed url hello');
-
- u.username('');
- equal(u.username(), '', 'changed username ""');
- equal(u.password(), '', 'changed passowrd ""');
- equal(u+'', 'http://example.org/foo.html', 'changed url ""');
- });
- test('password', function() {
- var u = new URI('http://hello@example.org/foo.html');
- u.password('world');
- equal(u.username(), 'hello', 'changed username world');
- equal(u.password(), 'world', 'changed passowrd world');
- equal(u+'', 'http://hello:world@example.org/foo.html', 'changed url world');
-
- u.password('');
- equal(u.username(), 'hello', 'changed username ""');
- equal(u.password(), '', 'changed passowrd ""');
- equal(u+'', 'http://hello@example.org/foo.html', 'changed url ""');
-
- u.username('').password('hahaha');
- equal(u.username(), '', 'changed username - password without username');
- equal(u.password(), 'hahaha', 'changed password - password without username');
- equal(u+'', 'http://:hahaha@example.org/foo.html', 'changed url - password without username');
- });
- test('hostname', function() {
- var u = new URI('http://example.org/foo.html');
- u.hostname('abc.foobar.lala');
- equal(u.hostname(), 'abc.foobar.lala', 'hostname changed');
- equal(u+'', 'http://abc.foobar.lala/foo.html', 'hostname changed url');
-
- u.hostname('some_where.exa_mple.org');
- equal(u.hostname(), 'some_where.exa_mple.org', 'hostname changed');
- equal(u+'', 'http://some_where.exa_mple.org/foo.html', 'hostname changed url');
-
- raises(function() {
- u.hostname('foo\\bar.com');
- }, TypeError, 'Failing backslash detection in hostname');
-
- // instance does not fall back to global setting
- URI.preventInvalidHostname = true;
- u.hostname('');
- u.hostname(null);
- URI.preventInvalidHostname = false;
-
- u.preventInvalidHostname(true);
- raises(function() {
- u.hostname('');
- }, TypeError, "Trying to set an empty hostname with http(s) protocol throws a TypeError");
-
- raises(function() {
- u.hostname(null);
- }, TypeError, "Trying to set hostname to null with http(s) protocol throws a TypeError");
- });
- test('port', function() {
- var u = new URI('http://example.org/foo.html');
- u.port('80');
- equal(u.port(), '80', 'changing port 80');
- equal(u+'', 'http://example.org:80/foo.html', 'changing url 80');
-
- u.port('');
- equal(u.port(), '', 'changing port ""');
- equal(u+'', 'http://example.org/foo.html', 'changing url ""');
- });
- test('path', function() {
- var u = new URI('http://example.org/foobar.html?query=string');
- u.pathname('/some/path/file.suffix');
- equal(u.pathname(), '/some/path/file.suffix', 'changing pathname "/some/path/file.suffix"');
- equal(u+'', 'http://example.org/some/path/file.suffix?query=string', 'changing url "/some/path/file.suffix"');
-
- u.pathname('');
- equal(u.pathname(), '/', 'changing pathname ""');
- equal(u+'', 'http://example.org/?query=string', 'changing url ""');
-
- u.pathname('/~userhome/@mine;is %2F and/');
- equal(u.pathname(), '/~userhome/@mine;is%20%2F%20and/', 'path encoding');
- equal(u.pathname(true), '/~userhome/@mine;is %2F and/', 'path decoded');
-
- u = new URI('/a/b/c/').relativeTo('/a/b/c/');
- equal(u.pathname(), '', 'empty relative path');
- equal(u.toString(), '', 'empty relative path to string');
-
- u.pathname('/');
- equal(u.pathname(), '/', 'empty absolute path');
- equal(u.toString(), '/', 'empty absolute path to string');
- });
- test('URN paths', function() {
- var u = new URI('urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66?foo=bar');
- u.pathname('uuid:de305d54-75b4-431b-adb2-eb6b9e546013');
- equal(u.pathname(), 'uuid:de305d54-75b4-431b-adb2-eb6b9e546013');
- equal(u + '', 'urn:uuid:de305d54-75b4-431b-adb2-eb6b9e546013?foo=bar');
-
- u.pathname('');
- equal(u.pathname(), '', 'changing pathname ""');
- equal(u+'', 'urn:?foo=bar', 'changing url ""');
-
- u.pathname('music:classical:Béla Bártok%3a Concerto for Orchestra');
- equal(u.pathname(), 'music:classical:B%C3%A9la%20B%C3%A1rtok%3A%20Concerto%20for%20Orchestra', 'path encoding');
- equal(u.pathname(true), 'music:classical:Béla Bártok%3A Concerto for Orchestra', 'path decoded');
- });
- test('query', function() {
- var u = new URI('http://example.org/foo.html');
- u.query('foo=bar=foo');
- equal(u.query(), 'foo=bar=foo', 'query: foo=bar=foo');
- equal(u.search(), '?foo=bar=foo', 'query: foo=bar=foo - search');
-
- u.query('?bar=foo');
- equal(u.query(), 'bar=foo', 'query: ?bar=foo');
- equal(u.search(), '?bar=foo', 'query: ?bar=foo - search');
-
- u.query('');
- equal(u.query(), '', 'query: ""');
- equal(u.search(), '', 'query: "" - search');
- equal(u.toString(), 'http://example.org/foo.html');
-
- u.search('foo=bar=foo');
- equal(u.query(), 'foo=bar=foo', 'search: foo=bar=foo');
- equal(u.search(), '?foo=bar=foo', 'search: foo=bar=foo - query');
-
- u.search('?bar=foo');
- equal(u.query(), 'bar=foo', 'search: ?bar=foo');
- equal(u.search(), '?bar=foo', 'search: ?bar=foo - query');
-
- u.search('');
- equal(u.query(), '', 'search: ""');
- equal(u.search(), '', 'search: "" - query');
-
- u.query('?foo');
- equal(u.query(), 'foo', 'search: ""');
- equal(u.search(), '?foo', 'search: "" - query');
-
- u.search('foo=&foo=bar');
- equal(u.query(), 'foo=&foo=bar', 'search: foo=&foo=bar');
- equal(JSON.stringify(u.query(true)), JSON.stringify({foo: ['', 'bar']}), 'parsed query: {foo:["", "bar"]}');
-
- u.search('foo=bar&foo=');
- equal(u.query(), 'foo=bar&foo=', 'search: foo=bar&foo=');
- equal(JSON.stringify(u.query(true)), JSON.stringify({foo: ['bar', '']}), 'parsed query: {foo:["bar", ""]}');
-
- u.search('foo=bar&foo');
- equal(u.query(), 'foo=bar&foo', 'search: foo=bar&foo');
- equal(JSON.stringify(u.query(true)), JSON.stringify({foo: ['bar', null]}), 'parsed query: {foo:["bar", null]}');
-
- u.search('foo&foo=bar');
- equal(u.query(), 'foo&foo=bar', 'search: foo&foo=bar');
- equal(JSON.stringify(u.query(true)), JSON.stringify({foo: [null, 'bar']}), 'parsed query: {foo:[null, "bar"]}');
-
- // parsing empty query
- var t;
- t = u.query('?').query(true);
- t = u.query('').query(true);
- t = u.href('http://example.org').query(true);
- });
- test('fragment', function() {
- var u = new URI('http://example.org/foo.html');
- u.fragment('foo');
- equal(u.fragment(), 'foo', 'fragment: foo');
- equal(u.hash(), '#foo', 'fragment: foo - hash');
-
- u.fragment('#bar');
- equal(u.fragment(), 'bar', 'fragment: #bar');
- equal(u.hash(), '#bar', 'fragment: #bar - hash');
-
- u.fragment('');
- equal(u.fragment(), '', 'fragment: ""');
- equal(u.hash(), '', 'fragment: "" - hash');
- equal(u.toString(), 'http://example.org/foo.html');
-
- u.hash('foo');
- equal(u.fragment(), 'foo', 'hash: foo');
- equal(u.hash(), '#foo', 'hash: foo - fragment');
-
- u.hash('#bar');
- equal(u.fragment(), 'bar', 'hash: #bar');
- equal(u.hash(), '#bar', 'hash: #bar - fragment');
-
- u.hash('');
- equal(u.fragment(), '', 'hash: ""');
- equal(u.hash(), '', 'hash: "" - fragment');
- });
-
- module('mutating compounds');
- test('host', function() {
- var u = new URI('http://foo.bar/foo.html');
-
- u.host('example.org:80');
- equal(u.hostname(), 'example.org', 'host changed hostname');
- equal(u.port(), '80', 'host changed port');
- equal(u+'', 'http://example.org:80/foo.html', 'host changed url');
-
- u.host('some-domain.com');
- equal(u.hostname(), 'some-domain.com', 'host modified hostname');
- equal(u.port(), '', 'host removed port');
- equal(u+'', 'http://some-domain.com/foo.html', 'host modified url');
-
- u.host('some_where.exa_mple.org:44');
- equal(u.hostname(), 'some_where.exa_mple.org', 'host modified hostname #2');
- equal(u.port(), '44', 'port restored');
- equal(u+'', 'http://some_where.exa_mple.org:44/foo.html', 'host modified url #2');
-
- raises(function() {
- u.host('foo\\bar.com');
- }, TypeError, 'Failing backslash detection in host');
- });
- test('origin', function () {
- var u = new URI('http://foo.bar/foo.html');
- equal(u.origin(), 'http://foo.bar', 'invalid origin');
-
- u.origin('http://bar.foo/bar.html');
- equal(u.origin(), 'http://bar.foo', 'origin didnt change');
- equal(u+'', 'http://bar.foo/foo.html', 'origin path changed');
- });
- test('authority', function() {
- var u = new URI('http://foo.bar/foo.html');
-
- u.authority('username:password@example.org:80');
- equal(u.username(), 'username', 'authority changed username');
- equal(u.password(), 'password', 'authority changed password');
- equal(u.hostname(), 'example.org', 'authority changed hostname');
- equal(u.port(), '80', 'authority changed port');
- equal(u+'', 'http://username:password@example.org:80/foo.html', 'authority changed url');
-
- u.authority('some-domain.com');
- equal(u.username(), '', 'authority removed username');
- equal(u.password(), '', 'authority removed password');
- equal(u.hostname(), 'some-domain.com', 'authority modified hostname');
- equal(u.port(), '', 'authority removed port');
- equal(u+'', 'http://some-domain.com/foo.html', 'authority modified url');
-
- raises(function() {
- u.authority('username:password@foo\\bar.com:80');
- }, TypeError, 'Failing backslash detection in authority');
- });
- test('userinfo', function() {
- var u = new URI('http://foo.bar/foo.html');
-
- u.userinfo('username:password');
- equal(u.username(), 'username', 'userinfo changed username-only');
- equal(u.password(), 'password', 'userinfo changed password');
- equal(u+'', 'http://username:password@foo.bar/foo.html', 'userinfo changed url');
-
- u.userinfo('walter');
- equal(u.username(), 'walter', 'userinfo removed password');
- equal(u.password(), '', 'userinfo removed password');
- equal(u+'', 'http://walter@foo.bar/foo.html', 'userinfo changed url');
-
- u.userinfo('');
- equal(u.username(), '', 'userinfo removed username');
- equal(u.password(), '', 'userinfo removed password');
- equal(u+'', 'http://foo.bar/foo.html', 'userinfo changed url');
- });
- test('href', function() {
- var u = new URI('http://foo.bar/foo.html');
-
- u.href('ftp://u:p@example.org:123/directory/file.suffix?query=string#fragment');
- equal(u.protocol(), 'ftp', 'href changed protocol');
- equal(u.username(), 'u', 'href changed username');
- equal(u.password(), 'p', 'href changed password');
- equal(u.hostname(), 'example.org', 'href changed hostname');
- equal(u.port(), '123', 'href changed port');
- equal(u.pathname(), '/directory/file.suffix', 'href changed pathname');
- equal(u.search(), '?query=string', 'href changed search');
- equal(u.hash(), '#fragment', 'href changed hash');
- equal(u.href(), 'ftp://u:p@example.org:123/directory/file.suffix?query=string#fragment', 'href removed url');
-
- u.href('../path/index.html');
- equal(u.protocol(), '', 'href removed protocol');
- equal(u.username(), '', 'href removed username');
- equal(u.password(), '', 'href removed password');
- equal(u.hostname(), '', 'href removed hostname');
- equal(u.port(), '', 'href removed port');
- equal(u.pathname(), '../path/index.html', 'href removed pathname');
- equal(u.search(), '', 'href removed search');
- equal(u.hash(), '', 'href removed hash');
- equal(u.href(), '../path/index.html', 'href removed url');
-
- /*jshint -W053 */
- u.href(new String('/narf'));
- /*jshint +W053 */
- equal(u.pathname(), '/narf', 'href from String instance');
- });
- test('resource', function() {
- var u = new URI('http://foo.bar/foo.html?hello#world');
-
- equal(u.resource(), '/foo.html?hello#world', 'get resource');
-
- u.resource('/foo.html?hello#world');
- equal(u.href(), 'http://foo.bar/foo.html?hello#world', 'set resource');
-
- u.resource('/world.html');
- equal(u.href(), 'http://foo.bar/world.html', 'set resource path');
- equal(u.resource(), '/world.html', 'get resource path');
-
- u.resource('?query');
- equal(u.href(), 'http://foo.bar/?query', 'set resource query');
- equal(u.resource(), '/?query', 'get resource query');
-
- u.resource('#fragment');
- equal(u.href(), 'http://foo.bar/#fragment', 'set resource fragment');
- equal(u.resource(), '/#fragment', 'get resource fragment');
-
- u.resource('?hello#world');
- equal(u.href(), 'http://foo.bar/?hello#world', 'set resource query+fragment');
- equal(u.resource(), '/?hello#world', 'get resource query+fragment');
-
- u.resource('/mars.txt?planet=123');
- equal(u.href(), 'http://foo.bar/mars.txt?planet=123', 'set resource path+query');
- equal(u.resource(), '/mars.txt?planet=123', 'get resource path+query');
-
- u.resource('/neptune.txt#foo');
- equal(u.href(), 'http://foo.bar/neptune.txt#foo', 'set resource path+fragment');
- equal(u.resource(), '/neptune.txt#foo', 'get resource path+fragment');
- });
-
- module('mutating fractions');
- test('subdomain', function() {
- var u = new URI('http://www.example.org/foo.html');
- u.subdomain('foo.bar');
- equal(u.hostname(), 'foo.bar.example.org', 'changed subdomain foo.bar');
- equal(u+'', 'http://foo.bar.example.org/foo.html', 'changed url foo.bar');
-
- u.subdomain('');
- equal(u.hostname(), 'example.org', 'changed subdomain ""');
- equal(u+'', 'http://example.org/foo.html', 'changed url ""');
-
- u.subdomain('foo.');
- equal(u.hostname(), 'foo.example.org', 'changed subdomain foo.');
- equal(u+'', 'http://foo.example.org/foo.html', 'changed url foo.');
-
- u.subdomain('foo_bar');
- equal(u.hostname(), 'foo_bar.example.org', 'changed subdomain foo_bar');
- equal(u+'', 'http://foo_bar.example.org/foo.html', 'changed url foo_bar');
- });
- test('domain', function() {
- var u = new URI('http://www.example.org/foo.html');
- u.domain('foo.bar');
- equal(u.hostname(), 'www.foo.bar', 'changed hostname foo.bar');
- equal(u+'', 'http://www.foo.bar/foo.html', 'changed url foo.bar');
-
- raises(function() {
- u.domain('');
- }, TypeError, 'Failing empty input');
-
- u.hostname('www.example.co.uk');
- equal(u.domain(), 'example.co.uk', 'domain after changed hostname www.example.co.uk');
- equal(u+'', 'http://www.example.co.uk/foo.html', 'url after changed hostname www.example.co.uk');
- equal(u.domain(true), 'co.uk', 'domain after changed hostname www.example.co.uk (TLD of SLD)');
-
- u.domain('example.org');
- equal(u.domain(), 'example.org', 'domain after changed domain example.org');
- equal(u+'', 'http://www.example.org/foo.html', 'url after changed domain example.org');
-
- u.domain('example.co.uk');
- equal(u.domain(), 'example.co.uk', 'domain after changed domain example.co.uk');
- equal(u+'', 'http://www.example.co.uk/foo.html', 'url after changed domain example.co.uk');
-
- u.href('http://test/');
- equal(u.domain(), 'test', 'domain (dot-less)');
- equal(u.subdomain(), '', 'subdomain (dot-less)');
-
- u.subdomain('foo');
- equal(u.href(), 'http://foo.test/', 'subdomain set on (dot-less)');
-
- u.subdomain('bar');
- equal(u.href(), 'http://bar.foo.test/', 'subdomain set on foo.test');
-
- u.domain('exam_ple.org');
- equal(u.domain(), 'exam_ple.org', 'domain after changed domain exam_ple.org');
- equal(u+'', 'http://bar.exam_ple.org/', 'url after changed domain exam_ple.org');
- });
- test('tld', function() {
- var u = new URI('http://www.example.org/foo.html');
- u.tld('mine');
- equal(u.tld(), 'mine', 'tld changed');
- equal(u+'', 'http://www.example.mine/foo.html', 'changed url mine');
-
- raises(function() {
- u.tld('');
- }, TypeError, 'Failing empty input');
-
- raises(function() {
- u.tld('foo.bar');
- }, TypeError, 'Failing "foo.bar"');
-
- u.tld('co.uk');
- equal(u.tld(), 'co.uk', 'tld changed to sld');
- equal(u+'', 'http://www.example.co.uk/foo.html', 'changed url to sld');
- equal(u.tld(true), 'uk', 'TLD of SLD');
-
- u.tld('org');
- equal(u.tld(), 'org', 'sld changed to tld');
- equal(u+'', 'http://www.example.org/foo.html', 'changed url to tld');
-
- u.hostname('www.examplet.se');
- equal(u.tld(), 'se', 'se tld');
-
- });
- test('sld', function() {
- var u = new URI('http://www.example.ch/foo.html')
- equal(u.is('sld'), false, 'is() www.example.ch');
- equal(u.domain(), 'example.ch', 'domain() www.example.ch');
- equal(u.subdomain(), 'www', 'subdomain() www.example.ch');
-
- u = new URI('http://www.example.com/foo.html')
- equal(u.is('sld'), false, 'is() www.example.com');
- equal(u.domain(), 'example.com', 'domain() www.example.com');
- equal(u.subdomain(), 'www', 'subdomain() www.example.com');
-
- u = new URI('http://www.example.eu.com/foo.html')
- equal(u.is('sld'), true, 'is() www.example.eu.com');
- equal(u.domain(), 'example.eu.com', 'domain() www.example.eu.com');
- equal(u.subdomain(), 'www', 'subdomain() www.example.eu.com');
- });
- test('directory', function() {
- var u = new URI('http://www.example.org/some/directory/foo.html');
- u.directory('/');
- equal(u.path(), '/foo.html', 'changed path '/'');
- equal(u+'', 'http://www.example.org/foo.html', 'changed url '/'');
-
- u.directory('');
- equal(u.path(), '/foo.html', 'changed path ""');
- equal(u+'', 'http://www.example.org/foo.html', 'changed url ""');
-
- u.directory('/bar');
- equal(u.path(), '/bar/foo.html', 'changed path "/bar"');
- equal(u+'', 'http://www.example.org/bar/foo.html', 'changed url "/bar"');
-
- u.directory('baz');
- equal(u.path(), '/baz/foo.html', 'changed path "baz"');
- equal(u+'', 'http://www.example.org/baz/foo.html', 'changed url "baz"');
-
- // relative paths
- u = new URI('../some/directory/foo.html');
- u.directory('../other/');
- equal(u.path(), '../other/foo.html', 'changed path "../other/"');
- equal(u+'', '../other/foo.html', 'changed url "../other/"');
-
- u.directory('mine');
- equal(u.path(), 'mine/foo.html', 'changed path "mine"');
- equal(u+'', 'mine/foo.html', 'changed url "mine"');
-
- u.directory('/');
- equal(u.path(), '/foo.html', 'changed path "/"');
- equal(u+'', '/foo.html', 'changed url "/"');
-
- u.directory('');
- equal(u.path(), 'foo.html', 'changed path ""');
- equal(u+'', 'foo.html', 'changed url ""');
-
- u.directory('../blubb');
- equal(u.path(), '../blubb/foo.html', 'changed path "../blubb"');
- equal(u+'', '../blubb/foo.html', 'changed url "../blubb"');
-
- // encoding
- u.path('/some/directory/foo.html');
- u.directory('/~userhome/@mine;is %2F and/');
- equal(u.path(), '/~userhome/@mine;is%20%2F%20and/foo.html', 'directory encoding');
- equal(u.directory(true), '/~userhome/@mine;is %2F and', 'directory decoded');
- });
- test('filename', function() {
- var u = new URI('http://www.example.org/some/directory/foo.html');
- u.filename('hello.world');
- equal(u.path(), '/some/directory/hello.world', 'changed path "hello.world"');
- equal(u+'', 'http://www.example.org/some/directory/hello.world', 'changed url "hello.world"');
-
- u.filename('hello');
- equal(u.path(), '/some/directory/hello', 'changed path "hello"');
- equal(u+'', 'http://www.example.org/some/directory/hello', 'changed url "hello"');
-
- u.filename('');
- equal(u.path(), '/some/directory/', 'changed path ""');
- equal(u+'', 'http://www.example.org/some/directory/', 'changed url ""');
-
- u.filename('world');
- equal(u.path(), '/some/directory/world', 'changed path "world"');
- equal(u+'', 'http://www.example.org/some/directory/world', 'changed url "world"');
-
- // encoding
- u.path('/some/directory/foo.html');
- u.filename('hällo wörld.html');
- equal(u.path(), '/some/directory/h%C3%A4llo%20w%C3%B6rld.html', 'filename encoding');
- equal(u.filename(true), 'hällo wörld.html', 'filename decoded');
- });
- test('suffix', function() {
- var u = new URI('http://www.example.org/some/directory/foo.html');
- u.suffix('xml');
- equal(u.path(), '/some/directory/foo.xml', 'changed path "xml"');
- equal(u+'', 'http://www.example.org/some/directory/foo.xml', 'changed url "xml"');
-
- u.suffix('');
- equal(u.path(), '/some/directory/foo', 'changed path ""');
- equal(u+'', 'http://www.example.org/some/directory/foo', 'changed url ""');
-
- u.suffix('html');
- equal(u.path(), '/some/directory/foo.html', 'changed path "html"');
- equal(u+'', 'http://www.example.org/some/directory/foo.html', 'changed url "html"');
-
- // encoding
- u.suffix('cört');
- equal(u.path(), '/some/directory/foo.c%C3%B6rt', 'suffix encoding');
- equal(u.suffix(), 'c%C3%B6rt', 'suffix encoded'); // suffix is expected to be alnum!
- equal(u.suffix(true), 'cört', 'suffix decoded'); // suffix is expected to be alnum!
- });
- test('segment', function() {
- var u = new URI('http://www.example.org/some/directory/foo.html'),
- s = u.segment();
-
- equal(s.join('||'), 'some||directory||foo.html', 'segment get array');
-
- u.segment(['hello', 'world', 'foo.html']);
- equal(u.path(), '/hello/world/foo.html', 'segment set array');
-
- equal(u.segment(0), 'hello', 'segment get 0');
- equal(u.segment(2), 'foo.html', 'segment get 2');
- equal(u.segment(3), undefined, 'segment get 3');
-
- u.segment(0, 'goodbye');
- equal(u.path(), '/goodbye/world/foo.html', 'segment set 0');
- u.segment(2, 'bar.html');
- equal(u.path(), '/goodbye/world/bar.html', 'segment set 2');
- u.segment(3, 'zupp');
- equal(u.path(), '/goodbye/world/bar.html/zupp', 'segment set 3');
- u.segment('zapp');
- equal(u.path(), '/goodbye/world/bar.html/zupp/zapp', 'segment append');
-
- u.segment(3, '');
- equal(u.path(), '/goodbye/world/bar.html/zapp', 'segment del 3 ""');
- u.segment(3, null);
- equal(u.path(), '/goodbye/world/bar.html', 'segment del 3 null');
-
- u = new URI('http://www.example.org/some/directory/foo.html');
- equal(u.segment(-1), 'foo.html', 'segment get -1');
- u.segment(-1, 'world.html');
- equal(u.path(), '/some/directory/world.html', 'segment set -1');
-
- u = new URI('someurn:foo:bar:baz');
- equal(u.segment().join('||'), 'foo||bar||baz', 'segment get array URN');
- u.segment(1, 'mars');
- equal(u.path(), 'foo:mars:baz', 'segment set 1 URN');
- equal(u.toString(), 'someurn:foo:mars:baz', 'segment set 1 URN');
-
- u = new URI('/foo/');
- equal(u.segment().join('||'), 'foo||', 'segment get array trailing empty');
-
- u.segment('test');
- equal(u.path(), '/foo/test', 'segment append trailing empty');
-
- u.segment('');
- equal(u.path(), '/foo/test/', 'segment append empty trailing');
- u.segment('');
- equal(u.path(), '/foo/test/', 'segment append empty trailing unchanged');
-
- u.segment(['', '', 'foo', '', '', 'bar', '', '']);
- equal(u.path(), '/foo/bar/', 'segment collapsing empty parts');
-
- u = new URI('https://google.com');
- u.segment('//font.ttf//');
- equal(u.path(), '/font.ttf', 'segment removes trailing and leading slashes');
-
- u.segment(['/hello', '/world/', '//foo.html']);
- equal(u.path(), '/hello/world/foo.html', 'segment set array trimming slashes');
-
- u.segment(1, '/mars/');
- equal(u.path(), '/hello/mars/foo.html', 'segment set index trimming slashes');
- });
- test('segmentCoded', function() {
- var u = new URI('http://www.example.org/some%20thing/directory/foo.html'),
- s = u.segmentCoded();
-
- equal(s.join('||'), 'some thing||directory||foo.html', 'segmentCoded get array');
-
- u.segmentCoded(['hello/world']);
- equal(u.path(), '/hello%2Fworld', 'escape in array');
-
- u.segmentCoded('hello/world');
- equal(u.path(), '/hello%2Fworld/hello%2Fworld', 'escape appended value');
-
- u.segmentCoded(['hello world', 'mars', 'foo.html']);
- equal(u.path(), '/hello%20world/mars/foo.html', 'segmentCoded set array');
-
- equal(u.segmentCoded(0), 'hello world', 'segmentCoded get 0');
- equal(u.segmentCoded(2), 'foo.html', 'segmentCoded get 2');
- equal(u.segmentCoded(3), undefined, 'segmentCoded get 3');
-
- u.segmentCoded('zapp zerapp');
- equal(u.path(), '/hello%20world/mars/foo.html/zapp%20zerapp', 'segmentCoded append');
-
- u.segmentCoded(2, '');
- equal(u.path(), '/hello%20world/mars/zapp%20zerapp', 'segmentCoded del 3 ""');
- u.segmentCoded(2, null);
- equal(u.path(), '/hello%20world/mars', 'segmentCoded del 3 null');
-
- u.segmentCoded('');
- equal(u.path(), '/hello%20world/mars/', 'segmentCoded append empty trailing');
- u.segmentCoded('');
- equal(u.path(), '/hello%20world/mars/', 'segmentCoded append empty trailing unchanged');
- });
-
- module('mutating query strings');
- test('mutating object', function() {
- var u = new URI('?foo=bar&baz=bam&baz=bau'),
- q = u.query(true);
-
- q.something = ['new', 'and', 'funky'];
- u.query(q);
- equal(u.query(), 'foo=bar&baz=bam&baz=bau&something=new&something=and&something=funky', 'adding array');
-
- q.foo = undefined;
- u.query(q);
- equal(u.query(), 'baz=bam&baz=bau&something=new&something=and&something=funky', 'removing field');
-
- q.baz = undefined;
- u.query(q);
- equal(u.query(), 'something=new&something=and&something=funky', 'removing array');
- });
- test('query callback', function() {
- var u = URI('?foo=bar');
- u.query(function(data) {
- data.foo = 'bam';
- });
- equal(u.query(), 'foo=bam', 'augment argument');
-
- u.query(function() {
- return {
- bla: 'blubb'
- };
- });
- equal(u.query(), 'bla=blubb', 'overwrite returned value');
- });
- test('setQuery', function() {
- var u = URI('?foo=bar');
- u.setQuery('foo', 'bam');
- equal(u.query(), 'foo=bam', 'set name, value');
-
- u.setQuery('array', ['one', 'two']);
- equal(u.query(), 'foo=bam&array=one&array=two', 'set name, array');
-
- u.query('?foo=bar');
- u.setQuery({'obj': 'bam', foo: 'baz'});
- equal(u.query(), 'foo=baz&obj=bam', 'set {name: value}');
-
- u.setQuery({'foo': 'foo', bar: ['1', '2']});
- equal(u.query(), 'foo=foo&obj=bam&bar=1&bar=2', 'set {name: array}');
-
- u.query('?foo=bar');
- u.setQuery({'bam': null, 'baz': ''});
- equal(u.query(), 'foo=bar&bam&baz=', 'set {name: null}');
-
- u.query('?foo=bar');
- u.setQuery('empty');
- equal(u.query(), 'foo=bar&empty', 'set undefined');
-
- u.query('?foo=bar');
- u.setQuery('empty', '');
- equal(u.query(), 'foo=bar&empty=', 'set empty string');
-
- u.query('');
- u.setQuery('some value', 'must be encoded because of = and ? and #');
- equal(u.query(), 'some+value=must+be+encoded+because+of+%3D+and+%3F+and+%23', 'encoding');
- equal(u.query(true)['some value'], 'must be encoded because of = and ? and #', 'decoding');
- });
- test('addQuery', function() {
- var u = URI('?foo=bar');
- u.addQuery('baz', 'bam');
- equal(u.query(), 'foo=bar&baz=bam', 'add name, value');
-
- u.addQuery('array', ['one', 'two']);
- equal(u.query(), 'foo=bar&baz=bam&array=one&array=two', 'add name, array');
-
- u.query('?foo=bar');
- u.addQuery({'obj': 'bam', foo: 'baz'});
- equal(u.query(), 'foo=bar&foo=baz&obj=bam', 'add {name: value}');
-
- u.addQuery({'foo': 'bam', bar: ['1', '2']});
- equal(u.query(), 'foo=bar&foo=baz&foo=bam&obj=bam&bar=1&bar=2', 'add {name: array}');
-
- u.query('?foo=bar');
- u.addQuery({'bam': null, 'baz': ''});
- equal(u.query(), 'foo=bar&bam&baz=', 'add {name: null}');
-
- u.query('?foo=bar');
- u.addQuery('empty');
- equal(u.query(), 'foo=bar&empty', 'add undefined');
-
- u.query('?foo=bar');
- u.addQuery('empty', '');
- equal(u.query(), 'foo=bar&empty=', 'add empty string');
-
- u.query('?foo');
- u.addQuery('foo', 'bar');
- equal(u.query(), 'foo=bar', 'add to null value');
-
- u.query('');
- u.addQuery('some value', 'must be encoded because of = and ? and #');
- equal(u.query(), 'some+value=must+be+encoded+because+of+%3D+and+%3F+and+%23', 'encoding');
- equal(u.query(true)['some value'], 'must be encoded because of = and ? and #', 'decoding');
- });
- test('removeQuery', function() {
- var u = new URI('?foo=bar&foo=baz&foo=bam&obj=bam&bar=1&bar=2&bar=3');
-
- u.removeQuery('foo', 'bar');
- equal(u.query(), 'foo=baz&foo=bam&obj=bam&bar=1&bar=2&bar=3', 'removing name, value');
-
- u.removeQuery('foo');
- equal(u.query(), 'obj=bam&bar=1&bar=2&bar=3', 'removing name');
-
- u.removeQuery('bar', ['1', '3']);
- equal(u.query(), 'obj=bam&bar=2', 'removing name, array');
-
- u.query('?obj=bam&bar=1&bar=2');
- u.removeQuery('bar', ['2']);
- equal(u.query(), 'obj=bam&bar=1', 'removing name, singleton array');
-
- u.removeQuery('bar', ['1']);
- equal(u.query(), 'obj=bam', 'removing the last value via name, singleton array');
-
- u.query('?foo=one&foo=two').removeQuery('foo', ['one', 'two']);
- equal(u.query(), '', 'removing name, array, finishes empty');
-
- u.query('?foo=one,two').removeQuery('foo', ['one', 'two']);
- equal(u.query(), 'foo=one%2Ctwo', 'not removing name, array');
-
- u.query('?foo=one,two').removeQuery('foo', ['one,two']);
- equal(u.query(), '', 'removing name, singleton array with comma in value');
-
- u.query('?foo=bar&foo=baz&foo=bam&obj=bam&bar=1&bar=2&bar=3');
- u.removeQuery(['foo', 'bar']);
- equal(u.query(), 'obj=bam', 'removing array');
-
- u.query('?bar=1&bar=2');
- u.removeQuery({ bar: 1 });
- equal(u.query(), 'bar=2', 'removing non-string value from array');
-
- u.removeQuery({ bar: 2 });
- equal(u.query(), '', 'removing a non-string value');
-
- u.query('?foo=bar&foo=baz&foo=bam&obj=bam&bar=1&bar=2&bar=3');
- u.removeQuery({foo: 'bar', obj: undefined, bar: ['1', '2']});
- equal(u.query(), 'foo=baz&foo=bam&bar=3', 'removing object');
-
- u.query('?foo=bar&foo=baz&foo=bam&obj=bam&bar=1&bar=2&bar=3');
- u.removeQuery(/^bar/);
- equal(u.query(), 'foo=bar&foo=baz&foo=bam&obj=bam', 'removing by RegExp');
-
- u.query('?foo=bar&foo=baz&foo=bam&obj=bam&bar=bar&bar=baz&bar=bam');
- u.removeQuery('foo', /[rz]$/);
- equal(u.query(), 'foo=bam&obj=bam&bar=bar&bar=baz&bar=bam', 'removing by value RegExp');
- });
- test('duplicateQueryParameters', function() {
- var u = new URI('?bar=1&bar=1&bar=1');
-
- u.normalizeQuery();
- equal(u.toString(), '?bar=1', 'parameters de-duplicated');
-
- u = new URI('?bar=1&bar=1&bar=1');
- u.duplicateQueryParameters(true);
- ok(u._parts.duplicateQueryParameters, 'duplicateQueryParameters enabled');
- u.normalizeQuery();
- equal(u.toString(), '?bar=1&bar=1&bar=1', 'parameters NOT de-duplicated');
- ok(u._parts.duplicateQueryParameters, 'duplicateQueryParameters still enabled after normalizeQuery()');
-
- u.duplicateQueryParameters(false);
- u.normalizeQuery();
- equal(u.toString(), '?bar=1', 'parameters de-duplicated again');
- ok(!u._parts.duplicateQueryParameters, 'duplicateQueryParameters still disabled after normalizeQuery()');
-
- URI.duplicateQueryParameters = true;
- u = new URI('?bar=1&bar=1&bar=1');
- u.normalizeQuery();
- equal(u.toString(), '?bar=1&bar=1&bar=1', 'global configuration');
-
- URI.duplicateQueryParameters = false;
-
- // test cloning
- u = new URI('?bar=1&bar=1&bar=1');
- u = u.duplicateQueryParameters(true).clone();
- ok(u._parts.duplicateQueryParameters, 'duplicateQueryParameters still enabled after clone()');
- u.normalizeQuery();
- equal(u.toString(), '?bar=1&bar=1&bar=1', 'parameters NOT de-duplicated');
-
- // test adding
- u = new URI('?bar=1&bar=1&bar=1');
- u.duplicateQueryParameters(true);
- u.addQuery('bar', 1);
- equal(u.toString(), '?bar=1&bar=1&bar=1&bar=1', 'parameters NOT de-duplicated after addQuery()');
- });
- test('escapeQuerySpace', function() {
- var u = new URI('?bar=foo+bar&bam+baz=foo');
- var data = u.query(true);
-
- equal(data.bar, 'foo bar', 'value un-spac-escaped');
- equal(data['bam baz'], 'foo', 'name un-spac-escaped');
-
- u.escapeQuerySpace(false);
- data = u.query(true);
- equal(data.bar, 'foo+bar', 'value not un-spac-escaped');
- equal(data['bam+baz'], 'foo', 'name not un-spac-escaped');
-
- u.escapeQuerySpace(true);
- data = u.query(true);
-
- equal(data.bar, 'foo bar', 'value un-spac-escaped again');
- equal(data['bam baz'], 'foo', 'name un-spac-escaped again');
-
- u.escapeQuerySpace(false);
-
- u.addQuery('alpha bravo', 'charlie delta');
- equal(u.toString(), '?bar=foo%2Bbar&bam%2Bbaz=foo&alpha%20bravo=charlie%20delta', 'serialized un/escaped space');
-
- URI.escapeQuerySpace = false;
- u = new URI('?bar=foo+bar&bam+baz=foo');
- data = u.query(true);
- equal(data.bar, 'foo+bar', 'value not un-spac-escaped by default');
- equal(data['bam+baz'], 'foo', 'name not un-spac-escaped by default');
-
- // reset
- URI.escapeQuerySpace = true;
- });
- test('hasQuery', function() {
- var u = URI('?string=bar&list=one&list=two&number=123&null&empty=&nested[one]=1&nested[two]=2');
-
- // exists
- equal(u.hasQuery('string'), true, 'simple exists check - passing');
- equal(u.hasQuery('nono'), false, 'simple exists check - failing');
-
- // truthy value
- equal(u.hasQuery('string', true), true, 'has truthy value check - passing string');
- equal(u.hasQuery('number', true), true, 'has truthy value check - passing number');
- equal(u.hasQuery('list', true), true, 'has truthy value check - passing list');
- equal(u.hasQuery('empty', true), false, 'has truthy value check - failing empty');
- equal(u.hasQuery('null', true), false, 'has truthy value check - failing null');
-
- // falsy value
- equal(u.hasQuery('string', false), false, 'has falsy value check - failing string');
- equal(u.hasQuery('number', false), false, 'has falsy value check - failing number');
- equal(u.hasQuery('list', false), false, 'has falsy value check - failing list');
- equal(u.hasQuery('empty', false), true, 'has falsy value check - passing empty');
- equal(u.hasQuery('null', false), true, 'has falsy value check - passing null');
-
- // match value
- equal(u.hasQuery('string', 'bar'), true, 'value check - passing string');
- equal(u.hasQuery('number', 123), true, 'value check - passing number');
- equal(u.hasQuery('number', '123'), true, 'value check - passing number as string');
- equal(u.hasQuery('list', 'one'), false, 'value check - failing list');
- equal(u.hasQuery('empty', ''), true, 'value check - passing empty');
- equal(u.hasQuery('null', ''), false, 'value check - failing null');
-
- // matching RegExp
- equal(u.hasQuery('string', /ar$/), true, 'RegExp check - passing string');
- equal(u.hasQuery('number', /2/), true, 'RegExp check - passing number');
- equal(u.hasQuery('string', /nono/), false, 'RegExp check - failing string');
- equal(u.hasQuery('number', /999/), false, 'RegExp check - failing number');
- equal(u.hasQuery(/^nested/), true, 'RegExp name check - passing');
- equal(u.hasQuery(/^nested/, 2), true, 'RegExp name and value - passing number');
- equal(u.hasQuery(/^nested/, '2'), true, 'RegExp name and value - passing number as string');
- equal(u.hasQuery(/^nested/, 'nono'), false, 'RegExp name and value - failing string');
- equal(u.hasQuery(/^nested/, /2/), true, 'RegExp name and value - passing RegExp number');
- equal(u.hasQuery(/^nested/, /3/), false, 'RegExp name and value exists check - failing');
- equal(u.hasQuery(/^lis/, ['one']), false, 'RegExp name andarray check - failing incomplete list');
- equal(u.hasQuery(/^lis/, ['one', 'two']), true, 'RegExp name and array check - passing list');
-
- // matching array
- equal(u.hasQuery('string', ['one']), false, 'array check - failing string');
- equal(u.hasQuery('list', ['one']), false, 'array check - failing incomplete list');
- equal(u.hasQuery('list', ['one', 'two']), true, 'array check - passing list');
- equal(u.hasQuery('list', ['two', 'one']), true, 'array check - passing unsorted list');
-
- // matching part of array
- equal(u.hasQuery('string', ['one'], true), false, 'in array check - failing string');
- equal(u.hasQuery('list', 'one', true), true, 'in array check - passing value');
- equal(u.hasQuery('list', ['one'], true), true, 'in array check - passing incomplete list');
- equal(u.hasQuery('list', ['one', 'two'], true), true, 'in array check - passing list');
- equal(u.hasQuery('list', ['two', 'one'], true), true, 'in array check - passing unsorted list');
- equal(u.hasQuery('list', /ne$/, true), true, 'in array check - passing RegExp');
- equal(u.hasQuery('list', [/ne$/], true), true, 'in array check - passing RegExp list');
-
- // comparison function
- equal(u.hasQuery('string', function(value, name, data) {
- equal(value, 'bar', 'Function check - param value');
- equal(name, 'string', 'Function check - param name');
- equal(typeof data, 'object', 'Function check - param data');
- return true;
- }), true, 'Function check - passing true');
- equal(u.hasQuery('string', function() {
- return false;
- }), false, 'Function check - passing false');
- });
-
- module('normalizing');
- test('normalize', function() {
- var u = new URI('http://www.exämple.org:80/food/woo/.././../baz.html?&foo=bar&&baz=bam&&baz=bau');
- u.normalize();
- equal(u+'', 'http://www.xn--exmple-cua.org/baz.html?foo=bar&baz=bam&baz=bau', 'fully normalized URL');
- });
- test('normalizeProtocol', function() {
- var u = new URI('hTTp://example.org/foobar.html');
- u.normalizeProtocol();
- equal(u+'', 'http://example.org/foobar.html', 'lowercase http');
- });
- test('normalizeHost', function() {
- var u;
-
- if (window.punycode) {
- u = new URI('http://exämple.org/foobar.html');
- u.normalizeHostname();
- equal(u+'', 'http://xn--exmple-cua.org/foobar.html', 'converting IDN to punycode');
- }
-
- if (window.IPv6) {
- u = new URI('http://[fe80:0000:0000:0000:0204:61ff:fe9d:f156]/foobar.html');
- u.normalizeHostname();
- equal(u+'', 'http://[fe80::204:61ff:fe9d:f156]/foobar.html', 'best IPv6 representation');
- }
-
- if (window.IPv6) {
- u = new URI('http://[::1]/foobar.html');
- u.normalizeHostname();
- equal(u+'', 'http://[::1]/foobar.html', 'best IPv6 representation');
- }
-
- u = new URI('http://wWw.eXamplE.Org/foobar.html');
- u.normalizeHostname();
- equal(u+'', 'http://www.example.org/foobar.html', 'lower case hostname');
- });
- test('normalizePort', function() {
- var u = new URI('http://example.org:80/foobar.html');
- u.normalizePort();
- equal(u+'', 'http://example.org/foobar.html', 'dropping port 80 for http');
-
- u = new URI('ftp://example.org:80/foobar.html');
- u.normalizePort();
- equal(u+'', 'ftp://example.org:80/foobar.html', 'keeping port 80 for ftp');
-
- });
- test('normalizePath', function() {
- // relative URL
- var u = new URI('/food/bar/baz.html');
-
- u.normalizePath();
- equal(u.path(), '/food/bar/baz.html', 'absolute path without change');
-
- u.path('food/bar/baz.html').normalizePath();
- equal(u.path(), 'food/bar/baz.html', 'relative path without change');
-
- u.path('/food/../bar/baz.html').normalizePath();
- equal(u.path(), '/bar/baz.html', 'single parent');
-
- u.path('/food/woo/../../bar/baz.html').normalizePath();
- equal(u.path(), '/bar/baz.html', 'double parent');
-
- u.path('/food/woo/../bar/../baz.html').normalizePath();
- equal(u.path(), '/food/baz.html', 'split double parent');
-
- u.path('/food/woo/.././../baz.html').normalizePath();
- equal(u.path(), '/baz.html', 'cwd-split double parent');
-
- u.path('food/woo/../bar/baz.html').normalizePath();
- equal(u.path(), 'food/bar/baz.html', 'relative parent');
-
- u.path('./food/woo/../bar/baz.html').normalizePath();
- equal(u.path(), 'food/bar/baz.html', 'dot-relative parent');
-
- // absolute URL
- u = new URI('http://example.org/foo/bar/baz.html');
- u.normalizePath();
- equal(u.path(), '/foo/bar/baz.html', 'URL: absolute path without change');
-
- u.path('foo/bar/baz.html').normalizePath();
- equal(u.path(), '/foo/bar/baz.html', 'URL: relative path without change');
-
- u.path('/foo/../bar/baz.html').normalizePath();
- equal(u.path(), '/bar/baz.html', 'URL: single parent');
-
- u.path('/foo/woo/../../bar/baz.html').normalizePath();
- equal(u.path(), '/bar/baz.html', 'URL: double parent');
-
- u.path('/foo/woo/../bar/../baz.html').normalizePath();
- equal(u.path(), '/foo/baz.html', 'URL: split double parent');
-
- u.path('/foo/woo/.././../baz.html').normalizePath();
- equal(u.path(), '/baz.html', 'URL: cwd-split double parent');
-
- u.path('foo/woo/../bar/baz.html').normalizePath();
- equal(u.path(), '/foo/bar/baz.html', 'URL: relative parent');
-
- u.path('./foo/woo/../bar/baz.html').normalizePath();
- equal(u.path(), '/foo/bar/baz.html', 'URL: dot-relative parent');
-
- u.path('/.//').normalizePath();
- equal(u.path(), '/', 'root /.//');
-
- // encoding
- u._parts.path = '/~userhome/@mine;is %2F and/';
- u.normalize();
- equal(u.pathname(), '/~userhome/@mine;is%20%2F%20and/', 'path encoding');
-
- // relative URL
- u = URI('/.').normalizePath();
- equal(u.path(), '/', 'root /.');
-
- u = URI('/..').normalizePath();
- equal(u.path(), '/', 'root /..');
-
- u = URI('/foo/.').normalizePath();
- equal(u.path(), '/foo/', 'root /foo/.');
-
- u = URI('/foo/..').normalizePath();
- equal(u.path(), '/', 'root /foo/..');
-
- u = URI('/foo/.bar').normalizePath();
- equal(u.path(), '/foo/.bar', 'root /foo/.bar');
-
- u = URI('/foo/..bar').normalizePath();
- equal(u.path(), '/foo/..bar', 'root /foo/..bar');
-
- // Percent Encoding normalization has to happen before dot segment normalization
- u = URI('/foo/%2E%2E').normalizePath();
- equal(u.path(), '/', 'root /foo/%2E%2E');
-
- u = URI('/foo/%2E').normalizePath();
- equal(u.path(), '/foo/', 'root /foo/%2E');
-
- u = URI('/foo/%2E%2E%2Fbar').normalizePath();
- equal(u.path(), '/foo/..%2Fbar', 'root /foo/%2E%2E%2Fbar');
-
- u = URI('../../../../../www/common/js/app/../../../../www_test/common/js/app/views/view-test.html');
- u.normalize();
- equal(u.path(), '../../../../../www_test/common/js/app/views/view-test.html', 'parent relative');
-
- u = URI('/../../../../../www/common/js/app/../../../../www_test/common/js/app/views/view-test.html');
- u.normalize();
- equal(u.path(), '/www_test/common/js/app/views/view-test.html', 'parent absolute');
-
- // URNs
- u = URI('urn:people:authors:poets:Shel Silverstein');
- u.normalize();
- equal(u.path(), 'people:authors:poets:Shel%20Silverstein');
-
- u = URI('urn:people:authors:philosophers:Søren Kierkegaard');
- u.normalize();
- equal(u.path(), 'people:authors:philosophers:S%C3%B8ren%20Kierkegaard');
-
- // URNs path separator preserved
- u = URI('urn:games:cards:Magic%3A the Gathering');
- u.normalize();
- equal(u.path(), 'games:cards:Magic%3A%20the%20Gathering');
- });
- test('normalizeQuery', function() {
- var u = new URI('http://example.org/foobar.html?');
- u.normalizeQuery();
- equal(u+'', 'http://example.org/foobar.html', 'dropping empty query sign');
-
- u.query('?&foo=bar&&baz=bam&').normalizeQuery();
- equal(u.query(), 'foo=bar&baz=bam', 'bad query resolution');
-
- u.query('?&foo=bar&&baz=bam&&baz=bau&').normalizeQuery();
- equal(u.query(), 'foo=bar&baz=bam&baz=bau', 'bad query resolution');
-
- u.query('?&foo=bar&foo=bar').normalizeQuery();
- equal(u.query(), 'foo=bar', 'duplicate key=value resolution');
- });
- test('normalizeFragment', function() {
- var u = new URI('http://example.org/foobar.html#');
- u.normalizeFragment();
- equal(u+'', 'http://example.org/foobar.html', 'dropping empty fragment sign');
- });
- test('readable', function() {
- var u = new URI('http://foo:bar@www.xn--exmple-cua.org/hello%20world/ä.html?foo%5B%5D=b+är#fragment');
- equal(u.readable(), 'http://www.exämple.org/hello world/ä.html?foo[]=b är#fragment', 'readable URL');
- });
-
- module('resolving URLs');
- test('absoluteTo', function() {
- // this being '../bar/baz.html?foo=bar'
- // base being 'http://example.org/foo/other/file.html'
- // return being http://example.org/foo/bar/baz.html?foo=bar'
- var tests = [{
- name: 'relative resolve',
- url: 'relative/path?blubber=1#hash1',
- base: 'http://www.example.org/path/to/file?some=query#hash',
- result: 'http://www.example.org/path/to/relative/path?blubber=1#hash1'
- }, {
- name: 'absolute resolve',
- url: '/absolute/path?blubber=1#hash1',
- base: 'http://www.example.org/path/to/file?some=query#hash',
- result: 'http://www.example.org/absolute/path?blubber=1#hash1'
- }, {
- name: 'relative resolve full URL',
- url: 'relative/path?blubber=1#hash3',
- base: 'http://user:pass@www.example.org:1234/path/to/file?some=query#hash',
- result: 'http://user:pass@www.example.org:1234/path/to/relative/path?blubber=1#hash3'
- }, {
- name: 'absolute resolve full URL',
- url: '/absolute/path?blubber=1#hash3',
- base: 'http://user:pass@www.example.org:1234/path/to/file?some=query#hash',
- result: 'http://user:pass@www.example.org:1234/absolute/path?blubber=1#hash3'
- }, {
- name: 'absolute resolve full URL without scheme',
- url: '//user:pass@www.example.org:1234/path/to/file?some=query#hash',
- base: 'proto://user:pass@www.example.org:1234/path/to/file?some=query#hash',
- result: 'proto://user:pass@www.example.org:1234/path/to/file?some=query#hash'
- }, {
- name: 'path-relative resolve',
- url: './relative/path?blubber=1#hash3',
- base: 'http://user:pass@www.example.org:1234/path/to/file?some=query#hash',
- result: 'http://user:pass@www.example.org:1234/path/to/relative/path?blubber=1#hash3'
- }, {
- name: 'path-relative parent resolve',
- url: '../relative/path?blubber=1#hash3',
- base: 'http://user:pass@www.example.org:1234/path/to/file?some=query#hash',
- result: 'http://user:pass@www.example.org:1234/path/relative/path?blubber=1#hash3'
- }, {
- name: 'path-relative path resolve',
- url: './relative/path?blubber=1#hash3',
- base: '/path/to/file?some=query#hash',
- result: '/path/to/relative/path?blubber=1#hash3'
- }, {
- name: 'path-relative path resolve 2',
- url: 'tofile',
- base: '/path/to/file',
- result: '/path/to/tofile'
- }, {
- name: 'path-relative path-root resolve',
- url: 'tofile',
- base: '/file',
- result: '/tofile'
- }, {
- name: 'path-relative parent path resolve',
- url: '../relative/path?blubber=1#hash3',
- base: '/path/to/file?some=query#hash',
- result: '/path/relative/path?blubber=1#hash3'
- }, {
- name: 'fragment absolute url',
- url: '#hash3',
- base: '/path/to/file?some=query#hash',
- result: '/path/to/file?some=query#hash3'
- }, {
- name: 'fragment relative url',
- url: '#hash3',
- base: 'path/to/file',
- result: 'path/to/file#hash3'
- }, {
- name: 'relative path - urljoin',
- url: 'the_relative_url',
- base: 'rel/path/',
- result: 'rel/path/the_relative_url'
- }, {
- name: 'relative path file - urljoin',
- url: 'the_relative_url',
- base: 'rel/path/something',
- result: 'rel/path/the_relative_url'
- }, {
- name: 'relative parent path file - urljoin',
- url: '../the_relative_url',
- base: 'rel/path/',
- result: 'rel/the_relative_url'
- }, {
- name: 'relative root path file - urljoin',
- url: '/the_relative_url',
- base: 'rel/path/',
- result: '/the_relative_url'
- }, {
- name: 'relative root file - urljoin',
- url: '/the_relative_url',
- base: 'http://example.com/rel/path/',
- result: 'http://example.com/the_relative_url'
- }, {
- name: 'absolute passthru - urljoin',
- url: 'http://github.com//the_relative_url',
- base: 'http://example.com/foo/bar',
- result: 'http://github.com//the_relative_url'
- }, {
- name: 'absolute passthru - file:/// - urljoin (#328)',
- url: 'file:///C:/skyclan/snipkit',
- base: 'http://example.com/foo/bar',
- result: 'file:///C:/skyclan/snipkit'
- }, {
- name: 'file paths - urljoin',
- url: 'anotherFile',
- base: 'aFile',
- result: 'anotherFile'
- }
- ];
-
- for (var i = 0, t; (t = tests[i]); i++) {
- var u = new URI(t.url),
- r = u.absoluteTo(t.base);
-
- equal(r + '', t.result, t.name);
- }
- });
- test('absoluteTo - RFC3986 reference resolution', function() {
- // http://tools.ietf.org/html/rfc3986#section-5.4
- var base = 'http://a/b/c/d;p?q';
- var map = {
- // normal
- // 'g:h' : 'g:h', // identified as URN
- 'g' : 'http://a/b/c/g',
- './g' : 'http://a/b/c/g',
- 'g/' : 'http://a/b/c/g/',
- '/g' : 'http://a/g',
- '//g' : 'http://g/', // added trailing /
- '?y' : 'http://a/b/c/d;p?y',
- 'g?y' : 'http://a/b/c/g?y',
- '#s' : 'http://a/b/c/d;p?q#s',
- 'g#s' : 'http://a/b/c/g#s',
- 'g?y#s' : 'http://a/b/c/g?y#s',
- ';x' : 'http://a/b/c/;x',
- 'g;x' : 'http://a/b/c/g;x',
- 'g;x?y#s' : 'http://a/b/c/g;x?y#s',
- '' : 'http://a/b/c/d;p?q',
- '.' : 'http://a/b/c/',
- './' : 'http://a/b/c/',
- '..' : 'http://a/b/',
- '../' : 'http://a/b/',
- '../g' : 'http://a/b/g',
- '../..' : 'http://a/',
- '../../' : 'http://a/',
- '../../g' : 'http://a/g',
- // abnormal
- '../../../g' : 'http://a/g',
- '../../../../g' : 'http://a/g'
- };
-
- for (var key in map) {
- var u = new URI(key),
- r = u.absoluteTo(base);
-
- equal(r + '', map[key], 'resolution "' + key + '"');
- }
- });
- test('relativeTo', function() {
- var tests = [{
- name: 'same parent',
- url: '/relative/path?blubber=1#hash1',
- base: '/relative/file?some=query#hash',
- result: 'path?blubber=1#hash1'
- }, {
- name: 'direct parent',
- url: '/relative/path?blubber=1#hash1',
- base: '/relative/sub/file?some=query#hash',
- result: '../path?blubber=1#hash1'
- }, {
- name: 'second parent',
- url: '/relative/path?blubber=1#hash1',
- base: '/relative/sub/sub/file?some=query#hash',
- result: '../../path?blubber=1#hash1'
- }, {
- name: 'third parent',
- url: '/relative/path?blubber=1#hash1',
- base: '/relative/sub/foo/sub/file?some=query#hash',
- result: '../../../path?blubber=1#hash1'
- }, {
- name: 'parent top level',
- url: '/relative/path?blubber=1#hash1',
- base: '/path/to/file?some=query#hash',
- result: '../../relative/path?blubber=1#hash1'
- }, {
- name: 'descendant',
- url: '/base/path/with/subdir/inner.html',
- base: '/base/path/top.html',
- result: 'with/subdir/inner.html'
- }, {
- name: 'same directory',
- url: '/path/',
- base: '/path/top.html',
- result: './'
- }, {
- name: 'absolute /',
- url: 'http://example.org/foo/bar/bat',
- base: 'http://example.org/',
- result: 'foo/bar/bat'
- }, {
- name: 'absolute /foo',
- url: 'http://example.org/foo/bar/bat',
- base: 'http://example.org/foo',
- result: 'foo/bar/bat'
- }, {
- name: 'absolute /foo/',
- url: 'http://example.org/foo/bar/bat',
- base: 'http://example.org/foo/',
- result: 'bar/bat'
- }, {
- name: 'same scheme',
- url: 'http://example.org/foo/bar/bat',
- base: 'http://example.com/foo/',
- result: '//example.org/foo/bar/bat'
- }, {
- name: 'different scheme',
- url: 'http://example.org/foo/bar',
- base: 'https://example.org/foo/',
- result: 'http://example.org/foo/bar'
- }, {
- name: 'base with no scheme or host',
- url: 'http://example.org/foo/bar',
- base: '/foo/',
- result: 'http://example.org/foo/bar'
- }, {
- name: 'base with no scheme',
- url: 'http://example.org/foo/bar',
- base: '//example.org/foo/bar',
- result: 'http://example.org/foo/bar'
- }, {
- name: 'denormalized base',
- url: '/foo/bar/bat',
- base: '/foo/./bar/',
- result: 'bat'
- }, {
- name: 'denormalized url',
- url: '/foo//bar/bat',
- base: '/foo/bar/',
- result: 'bat'
- }, {
- name: 'credentials',
- url: 'http://user:pass@example.org/foo/bar',
- base: 'http://example.org/foo/',
- result: '//user:pass@example.org/foo/bar'
- }, {
- name: 'base credentials',
- url: 'http://example.org/foo/bar',
- base: 'http://user:pass@example.org/foo/bar',
- result: '//example.org/foo/bar'
- }, {
- name: 'same credentials different host',
- url: 'http://user:pass@example.org/foo/bar',
- base: 'http://user:pass@example.com/foo/bar',
- result: '//user:pass@example.org/foo/bar'
- }, {
- name: 'different port 1',
- url: 'http://example.org/foo/bar',
- base: 'http://example.org:8080/foo/bar',
- result: '//example.org/foo/bar'
- }, {
- name: 'different port 2',
- url: 'http://example.org:8081/foo/bar',
- base: 'http://example.org:8080/foo/bar',
- result: '//example.org:8081/foo/bar'
- }, {
- name: 'different port 3',
- url: 'http://example.org:8081/foo/bar',
- base: 'http://example.org/foo/bar',
- result: '//example.org:8081/foo/bar'
- }, {
- name: 'same path - fragment',
- url: 'http://www.example.com:8080/dir/file#abcd',
- base: 'http://www.example.com:8080/dir/file',
- result: '#abcd'
- }, {
- name: 'same path - query',
- url: 'http://www.example.com:8080/dir/file?abcd=123',
- base: 'http://www.example.com:8080/dir/file',
- result: '?abcd=123'
- }, {
- name: 'same path - query and fragment',
- url: 'http://www.example.com:8080/dir/file?abcd=123#alpha',
- base: 'http://www.example.com:8080/dir/file',
- result: '?abcd=123#alpha'
- }, {
- name: 'already relative',
- url: 'foo/bar',
- base: '/foo/',
- 'throws': true
- }, {
- name: 'relative base',
- url: '/foo/bar',
- base: 'foo/',
- 'throws': true
- }
- ];
-
- for (var i = 0, t; (t = tests[i]); i++) {
- var u = new URI(t.url),
- b = new URI(t.base),
- caught = false;
- var r;
-
- try {
- r = u.relativeTo(b);
- } catch (e) {
- caught = true;
- }
- /*jshint sub:true */
- if (t['throws']) {
- /*jshint sub:false */
- ok(caught, t.name + ' should throw exception');
- } else {
- ok(!caught, t.name + ' should not throw exception');
- equal(r + '', t.result, t.name);
-
- var a = r.absoluteTo(t.base);
- var n = u.clone().normalize();
- equal(a.toString(), n.toString(), t.name + ' reversed');
- }
- }
-
- equal('b/c',
- new URI('http://example.org/a/b/c')
- .scheme('')
- .authority('')
- .relativeTo('/a/')
- .toString(),
- 'bug #103');
-
- equal('b/c',
- new URI('//example.org/a/b/c')
- .authority('')
- .relativeTo('/a/')
- .toString(),
- 'bug #103 (2)');
- });
-
- module('static helpers');
- test('withinString', function() {
- /*jshint laxbreak: true */
- var source = 'Hello www.example.com,\n'
- + 'http://google.com is a search engine, like http://www.bing.com\n'
- + 'http://exämple.org/foo.html?baz=la#bumm is an IDN URL,\n'
- + 'http://123.123.123.123/foo.html is IPv4 and http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html is IPv6.\n'
- + 'links can also be in parens (http://example.org) or quotes »http://example.org«, '
- + 'yet https://example.com/with_(balanced_parentheses) and https://example.com/with_(balanced_parentheses).txt contain the closing parens, but '
- + 'https://example.com/with_unbalanced_parentheses) does not.\n'
- + 'Note that www. is not a URL and neither is http://.';
- var expected = 'Hello www.example.com ,\n'
- + 'http://google.com is a search engine, like http://www.bing.com \n'
- + 'http://exämple.org/foo.html?baz=la#bumm is an IDN URL,\n'
- + 'http://123.123.123.123/foo.html is IPv4 and http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html is IPv6.\n'
- + 'links can also be in parens (http://example.org ) or quotes »http://example.org «, '
- + 'yet https://example.com/with_(balanced_parentheses) and https://example.com/with_(balanced_parentheses).txt contain the closing parens, but '
- + 'https://example.com/with_unbalanced_parentheses ) does not.\n'
- + 'Note that www. is not a URL and neither is http://.';
- /*jshint laxbreak: false */
- var result = URI.withinString(source, function(url) {
- return '' + url + ' ';
- });
-
- equal(result, expected, 'in string URI identification');
- });
- test('withinString - ignore', function() {
- var decorate = function(url) {
- return '' + url + ' ';
- };
- /*jshint laxbreak: true */
- var source = 'Hello www.example.com,\n'
- + 'proto://example.org/foo.html?baz=la#bumm is an URL.\n';
- var expected = 'Hello www.example.com ,\n'
- + 'proto://example.org/foo.html?baz=la#bumm is an URL.\n';
- /*jshint laxbreak: false */
- var result = URI.withinString(source, decorate, {ignore: /^proto:/i});
-
- equal(result, expected, 'filtered in string URI identification');
- });
- test('withinString - ignoreHtml', function() {
- var decorate = function(url) {
- return '' + url + ' ';
- };
- /*jshint laxbreak: true */
- var source = 'Hello www.example.com,\n'
- + '.\n'
- + ' is an URL .\n'
- + ' is an URL .\n';
- /*jshint laxbreak: false */
- var result = URI.withinString(source, decorate, {ignoreHtml: true});
-
- equal(result, expected, 'filtered in string URI identification');
- });
- test('withinString - capture only', function() {
- /*jshint laxbreak: true */
- var source = 'Hello www.example.com,\n'
- + 'http://google.com is a search engine, like http://www.bing.com\n'
- + 'http://exämple.org/foo.html?baz=la#bumm is an IDN URL,\n'
- + 'http://123.123.123.123/foo.html is IPv4 and http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html is IPv6.\n'
- + 'links can also be in parens (http://example.org) or quotes »http://example.org«.';
- var expected = [
- 'www.example.com',
- 'http://google.com',
- 'http://www.bing.com',
- 'http://exämple.org/foo.html?baz=la#bumm',
- 'http://123.123.123.123/foo.html',
- 'http://fe80:0000:0000:0000:0204:61ff:fe9d:f156/foobar.html',
- 'http://example.org',
- 'http://example.org'
- ];
-
- /*jshint laxbreak: false */
- var links = [];
- var result = URI.withinString(source, function(url) {
- links.push(url);
- });
-
- deepEqual(links, expected, 'urls extracted');
- equal(result, source, 'source not modified');
- });
- test('ensureValidPort', function() {
-
- function testPort(value) {
- var result = true;
- try {
- URI.ensureValidPort(value);
- } catch(e) {
- result = false;
- }
-
- return result;
- }
-
- equal(testPort(8000), true);
- equal(testPort('8080'), true);
-
- equal(testPort(0), true);
- equal(testPort(1), true);
-
- equal(testPort(65535), true);
- equal(testPort(65536), false);
-
- equal(testPort(-8080), false);
- equal(testPort('-8080'), false);
-
- equal(testPort('aaa8080'), false);
- equal(testPort('8080a'), false);
-
- equal(testPort(8080.2), false);
- });
- test('noConflict', function() {
- var actual_lib = URI; // actual library; after loading, before noConflict()
- var unconflicted = URI.noConflict();
-
- strictEqual( unconflicted, actual_lib, 'noConflict() returns the URI object' );
- strictEqual( URI, URI_pre_lib, 'noConflict() restores the `URI` variable' );
-
- // restore for other tests
- window.URI = actual_lib;
- });
- test('noConflict(removeAll=true)', function() {
- var actual = {
- URI: URI,
- URITemplate: URITemplate,
- IPv6: IPv6,
- SecondLevelDomains: SecondLevelDomains
- };
-
- var unconflicted = URI.noConflict(true);
-
- deepEqual( unconflicted, actual, 'noConflict(true) returns the { URI, URITemplate, IPv6, SecondLevelDomains } object' );
- strictEqual( URI, URI_pre_lib, 'noConflict(true) restores the `URI` variable' );
- strictEqual( URITemplate, URITemplate_pre_lib, 'noConflict(true) restores the `URITemplate` variable' );
- strictEqual( IPv6, IPv6_pre_lib, 'noConflict(true) restores the `IPv6` variable' );
- strictEqual( SecondLevelDomains, SecondLevelDomains_pre_lib, 'noConflict(true) restores the `SecondLevelDomains` variable' );
-
- // restore for other tests
- window.URI = actual.URI;
- window.URITemplate = actual.URITemplate;
- window.IPv6 = actual.IPv6;
- window.SecondLevelDomains = actual.SecondLevelDomains;
- });
- test('joinPaths', function() {
- var result;
-
- result = URI.joinPaths('/a/b', '/c', 'd', '/e').toString();
- equal(result, '/a/b/c/d/e', 'absolute paths');
-
- result = URI.joinPaths('a/b', 'http://example.com/c', new URI('d/'), '/e').toString();
- equal(result, 'a/b/c/d/e', 'relative path');
-
- result = URI.joinPaths('/a/').toString();
- equal(result, '/a/', 'single absolute directory');
-
- result = URI.joinPaths('/a').toString();
- equal(result, '/a', 'single absolute segment');
-
- result = URI.joinPaths('a').toString();
- equal(result, 'a', 'single relative segment');
-
- result = URI.joinPaths('').toString();
- equal(result, '', 'empty string');
-
- result = URI.joinPaths().toString();
- equal(result, '', 'no argument');
-
- result = URI.joinPaths('', 'a', '', '', 'b').toString();
- equal(result, '/a/b', 'leading empty segment');
-
- result = URI.joinPaths('a', '', '', 'b', '', '').toString();
- equal(result, 'a/b/', 'trailing empty segment');
- });
- test('setQuery', function () {
- var o = {foo: 'bar'};
-
- URI.setQuery(o, 'foo', 'bam');
- deepEqual(o, {foo: 'bam'}, 'set name, value');
-
- URI.setQuery(o, 'array', ['one', 'two']);
- deepEqual(o, {foo: 'bam', array: ['one', 'two']}, 'set name, array');
-
- URI.setQuery(o, 'foo', 'qux');
- deepEqual(o, {foo: 'qux', array: ['one', 'two']}, 'override name, value');
-
- o = {foo: 'bar'};
- URI.setQuery(o, {baz: 'qux'});
- deepEqual(o, {foo: 'bar', baz: 'qux'}, 'set {name: value}');
-
- URI.setQuery(o, {bar: ['1', '2']});
- deepEqual(o, {foo: 'bar', bar: ['1', '2'], baz: 'qux'}, 'set {name: array}');
-
- URI.setQuery(o, {foo: 'qux'});
- deepEqual(o, {foo: 'qux', bar: ['1', '2'], baz: 'qux'}, 'override {name: value}');
-
- o = {foo: 'bar'};
- URI.setQuery(o, {bam: null, baz: ''});
- deepEqual(o, {foo: 'bar', bam: null, baz: ''}, 'set {name: null}');
-
- o = {foo: 'bar'};
- URI.setQuery(o, 'empty');
- deepEqual(o, {foo: 'bar', empty: null}, 'set undefined');
-
- o = {foo: 'bar'};
- URI.setQuery(o, 'empty', '');
- deepEqual(o, {foo: 'bar', empty: ''}, 'set empty string');
-
- o = {};
- URI.setQuery(o, 'some value', 'must be encoded because of = and ? and #');
- deepEqual(o, {'some value': 'must be encoded because of = and ? and #'}, 'encoding');
- });
-
- module('comparing URLs');
- test('equals', function() {
- var u = new URI('http://example.org/foo/bar.html?foo=bar&hello=world&hello=mars#fragment'),
- e = [
- 'http://example.org/foo/../foo/bar.html?foo=bar&hello=world&hello=mars#fragment',
- 'http://exAmple.org/foo/bar.html?foo=bar&hello=world&hello=mars#fragment',
- 'http://exAmple.org:80/foo/bar.html?foo=bar&hello=world&hello=mars#fragment',
- 'http://example.org/foo/bar.html?foo=bar&hello=mars&hello=world#fragment',
- 'http://example.org/foo/bar.html?hello=mars&hello=world&foo=barfragment'
- ],
- d = [
- 'http://example.org/foo/../bar.html?foo=bar&hello=world&hello=mars#fragment',
- 'http://example.org/foo/bar.html?foo=bar&hello=world&hello=mars#frAgment',
- 'http://example.org/foo/bar.html?foo=bar&hello=world&hello=mArs#fragment',
- 'http://example.org/foo/bar.hTml?foo=bar&hello=world&hello=mars#fragment',
- 'http://example.org:8080/foo/bar.html?foo=bar&hello=world&hello=mars#fragment',
- 'http://user:pass@example.org/foo/bar.html?foo=bar&hello=world&hello=mars#fragment',
- 'ftp://example.org/foo/bar.html?foo=bar&hello=world&hello=mars#fragment',
- 'http://example.org/foo/bar.html?foo=bar&hello=world&hello=mars&hello=jupiter#fragment'
- ],
- i, c;
-
- for (i = 0; (c = e[i]); i++) {
- equal(u.equals(c), true, 'equality ' + i);
- }
-
- for (i = 0; (c = d[i]); i++) {
- equal(u.equals(c), false, 'different ' + i);
- }
- });
-
- module('Charset');
- test('iso8859', function() {
- var u = new URI('/ä.html');
- u.normalizePath();
- equal(u.path(), '/%C3%A4.html', 'Unicode');
-
- URI.iso8859();
- u = new URI('/ä.html');
- u.normalizePath();
- equal(u.path(), '/%E4.html', 'ISO8859');
- u.path('/ö.html');
- equal(u.path(), '/%F6.html', 'ISO8859');
-
- URI.unicode();
- u = new URI('/ä.html');
- u.normalizePath();
- equal(u.path(), '/%C3%A4.html', 'Unicode again');
-
- u = new URI('/ä.html');
- u.normalizePath();
- equal(u.path(), '/%C3%A4.html', 'convert unicode start');
- u.iso8859();
- equal(u.path(), '/%E4.html', 'convert iso8859');
- u.unicode();
- equal(u.path(), '/%C3%A4.html', 'convert unicode');
- });
- test('bad charset in QueryString', function() {
- var uri = new URI('http://www.google.com.hk/search?q=pennytel%20downloads&sa=%20%CB%D1%20%CB%F7%20&forid=1&prog=aff&ie=GB2312&oe=GB2312&safe=active&source=sdo_sb_html&hl=zh-CN');
- var data = uri.query(true);
-
- equal(data.sa, '%20%CB%D1%20%CB%F7%20', 'undecodable value returned');
- equal(data.forid, '1', 'decodable value returned');
-
- uri.normalizeQuery();
- data = uri.query(true);
- equal(data.sa, '%20%CB%D1%20%CB%F7%20', 'undecodable value returned');
- equal(data.forid, '1', 'decodable value returned');
- });
-
- module('Encoding');
- test('decode malformed URI', function() {
- try {
- decodeURIComponent('%%20');
- ok(false, 'decodeURIComponent() must throw URIError: URI malformed');
- } catch(e) {}
-
- try {
- URI.decode('%%20');
- ok(false, 'URI.decode() must throw URIError: URI malformed');
- } catch(e) {}
-
- equal(URI.decodeQuery('%%20'), '%%20', 'malformed URI component returned');
- equal(URI.decodePathSegment('%%20'), '%%20', 'malformed URI component returned');
- equal(URI.decodeUrnPathSegment('%%20'), '%%20', 'malformed URN component returned');
- });
- test('encodeQuery', function() {
- var escapeQuerySpace = URI.escapeQuerySpace;
-
- URI.escapeQuerySpace = true;
- equal(URI.encodeQuery(' '), '+');
- equal(URI.encode(' '), '%20');
-
- URI.escapeQuerySpace = false;
- equal(URI.encodeQuery(' '), '%20');
- equal(URI.encode(' '), '%20');
-
- URI.escapeQuerySpace = escapeQuerySpace;
- });
- test('decodeQuery', function() {
- var escapeQuerySpace = URI.escapeQuerySpace;
-
- URI.escapeQuerySpace = true;
- equal(URI.decodeQuery('+'), ' ');
- equal(URI.decodeQuery('%20'), ' ');
- equal(URI.decode('%20'), ' ');
- equal(URI.decode('+'), '+');
-
- URI.escapeQuerySpace = false;
- equal(URI.decodeQuery('+'), '+');
- equal(URI.decodeQuery('%20'), ' ');
- equal(URI.decode('%20'), ' ');
- equal(URI.decode('+'), '+');
-
- URI.escapeQuerySpace = escapeQuerySpace;
- });
- test('encodeReserved', function() {
- equal(URI.encodeReserved('ä:/?#[]@!$&\'()*+,;='), '%C3%A4:/?#[]@!$&\'()*+,;=');
- });
-
- module('SecondLevelDomains');
- test('SecondLevelDomains.get()', function() {
- equal(SecondLevelDomains.get('www.example.ch'), null, 'www.example.ch')
- equal(SecondLevelDomains.get('www.example.com'), null, 'www.example.com')
- equal(SecondLevelDomains.get('www.example.eu.com'), 'eu.com', 'www.example.eu.com')
- equal(SecondLevelDomains.get('www.example.co.uk'), 'co.uk', 'www.example.co.uk')
- });
- test('SecondLevelDomains.has()', function() {
- equal(SecondLevelDomains.has('www.example.ch'), false, 'www.example.ch')
- equal(SecondLevelDomains.has('www.example.com'), false, 'www.example.com')
- equal(SecondLevelDomains.has('www.example.eu.com'), true, 'www.example.eu.com')
- equal(SecondLevelDomains.has('www.example.co.uk'), true, 'www.example.co.uk')
- });
- test('SecondLevelDomains.is()', function() {
- equal(SecondLevelDomains.is('ch'), false, 'ch')
- equal(SecondLevelDomains.is('example.ch'), false, 'example.ch')
-
- equal(SecondLevelDomains.is('com'), false, 'com')
- equal(SecondLevelDomains.is('eu.com'), true, 'eu.com')
- equal(SecondLevelDomains.is('example.com'), false, 'example.com')
-
- equal(SecondLevelDomains.is('uk'), false, 'uk')
- equal(SecondLevelDomains.is('co.uk'), true, 'co.uk')
- });
-
-})();
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_fragmentQuery.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_fragmentQuery.js
deleted file mode 100644
index 7c4d5a4bfb..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_fragmentQuery.js
+++ /dev/null
@@ -1,67 +0,0 @@
-(function() {
- 'use strict';
- /*global URI, test, equal, deepEqual */
-
- module('URI.fragmentQuery');
- test('storing query-data in fragment', function() {
- var u = URI('http://example.org');
-
- deepEqual(u.fragment(true), {}, 'empty map for missing fragment');
-
- u = URI('http://example.org/#');
- deepEqual(u.fragment(true), {}, 'empty map for empty fragment');
-
- u = URI('http://example.org/#?hello=world');
- deepEqual(u.fragment(true), {hello: 'world'}, 'reading data object');
-
- u.fragment({bar: 'foo'});
- deepEqual(u.fragment(true), {bar: 'foo'}, 'setting data object');
- equal(u.toString(), 'http://example.org/#?bar=foo', 'setting data object serialized');
-
- u.addFragment('name', 'value');
- deepEqual(u.fragment(true), {bar: 'foo', name: 'value'}, 'adding value');
- equal(u.toString(), 'http://example.org/#?bar=foo&name=value', 'adding value serialized');
-
- u.removeFragment('bar');
- deepEqual(u.fragment(true), {name: 'value'}, 'removing value bar');
- equal(u.toString(), 'http://example.org/#?name=value', 'removing value bar serialized');
-
- u.removeFragment('name');
- deepEqual(u.fragment(true), {}, 'removing value name');
- equal(u.toString(), 'http://example.org/#?', 'removing value name serialized');
-
- u.setFragment('name', 'value1');
- deepEqual(u.fragment(true), {name: 'value1'}, 'setting name to value1');
- equal(u.toString(), 'http://example.org/#?name=value1', 'setting name to value1 serialized');
-
- u.setFragment('name', 'value2');
- deepEqual(u.fragment(true), {name: 'value2'}, 'setting name to value2');
- equal(u.toString(), 'http://example.org/#?name=value2', 'setting name to value2 serialized');
- });
- test('fragmentPrefix', function() {
- var u;
-
- URI.fragmentPrefix = '!';
- u = URI('http://example.org');
- equal(u._parts.fragmentPrefix, '!', 'init using global property');
-
- u.fragment('#?hello=world');
- equal(u.fragment(), '?hello=world', 'unparsed ?');
- deepEqual(u.fragment(true), {}, 'parsing ? prefix');
-
- u.fragment('#!hello=world');
- equal(u.fragment(), '!hello=world', 'unparsed !');
- deepEqual(u.fragment(true), {hello: 'world'}, 'parsing ! prefix');
-
- u.fragmentPrefix('§');
- equal(u.fragment(), '!hello=world', 'unparsed §');
- deepEqual(u.fragment(true), {}, 'parsing § prefix');
-
- u.fragment('#§hello=world');
- equal(u.fragment(), '§hello=world', 'unparsed §');
- deepEqual(u.fragment(true), {hello: 'world'}, 'parsing § prefix');
-
- URI.fragmentPrefix = '?';
- });
-
-})();
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_fragmentURI.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_fragmentURI.js
deleted file mode 100644
index 87a28b8e59..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_fragmentURI.js
+++ /dev/null
@@ -1,61 +0,0 @@
-(function() {
- 'use strict';
- /*global URI, test, equal, ok */
-
- module('URI.fragmentURI');
- test('storing URLs in fragment', function() {
- var u = URI('http://example.org');
- var f;
-
- // var uri = URI('http://example.org/#!/foo/bar/baz.html');
- // var furi = uri.fragment(true);
- // furi.pathname() === '/foo/bar/baz.html';
- // furi.pathname('/hello.html');
- // uri.toString() === 'http://example.org/#!/hello.html'
-
- ok(u.fragment(true) instanceof URI, 'URI instance for missing fragment');
-
- u = URI('http://example.org/#');
- ok(u.fragment(true) instanceof URI, 'URI instance for empty fragment');
-
- u = URI('http://example.org/#!/foo/bar/baz.html');
- f = u.fragment(true);
- equal(f.pathname(), '/foo/bar/baz.html', 'reading path of FragmentURI');
- equal(f.filename(), 'baz.html', 'reading filename of FragmentURI');
-
- f.filename('foobar.txt');
- equal(f.pathname(), '/foo/bar/foobar.txt', 'modifying filename of FragmentURI');
- equal(u.fragment(), '!/foo/bar/foobar.txt', 'modifying fragment() through FragmentURI on original');
- equal(u.toString(), 'http://example.org/#!/foo/bar/foobar.txt', 'modifying filename of FragmentURI on original');
- });
- test('fragmentPrefix', function() {
- var u;
-
- URI.fragmentPrefix = '?';
- u = URI('http://example.org');
- equal(u._parts.fragmentPrefix, '?', 'init using global property');
-
- u.fragment('#!/foo/bar/baz.html');
- equal(u.fragment(), '!/foo/bar/baz.html', 'unparsed ?');
- ok(u.fragment(true) instanceof URI, 'parsing ? prefix - is URI');
- equal(u.fragment(true).toString(), '', 'parsing ? prefix - result');
-
- u.fragment('#?/foo/bar/baz.html');
- equal(u.fragment(), '?/foo/bar/baz.html', 'unparsed ?');
- ok(u.fragment(true) instanceof URI, 'parsing ? prefix - is URI');
- equal(u.fragment(true).toString(), '/foo/bar/baz.html', 'parsing ? prefix - result');
-
- u.fragmentPrefix('§');
- equal(u.fragment(), '?/foo/bar/baz.html', 'unparsed §');
- ok(u.fragment(true) instanceof URI, 'parsing § prefix - is URI');
- equal(u.fragment(true).toString(), '', 'parsing § prefix - result');
-
- u.fragment('#§/foo/bar/baz.html');
- equal(u.fragment(), '§/foo/bar/baz.html', 'unparsed §');
- ok(u.fragment(true) instanceof URI, 'parsing § prefix - is URI');
- equal(u.fragment(true).toString(), '/foo/bar/baz.html', 'parsing § prefix - result');
-
- URI.fragmentPrefix = '!';
- });
-
-})();
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_jim.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_jim.js
deleted file mode 100644
index cdb2762437..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_jim.js
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * What would jim do?
- * more tests for border-edge cases
- * Christian Harms.
- *
- * Note: I have no clue who or what jim is supposed to be. It might be something like the German DAU (dumbest possible user)
- */
-(function() {
- 'use strict';
- /*global URI, test, equal, raises */
-
- module('injection');
- test('protocol', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
- raises(function() {
- u.protocol('ftp://example.org');
- }, TypeError, 'Failing invalid characters');
-
- u.protocol('ftp:');
- equal(u.protocol(), 'ftp', 'protocol() has set invalid protocoll!');
- equal(u.hostname(), 'example.com', 'protocol() has changed the hostname');
- });
- test('port', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
- raises(function() {
- u.port('99:example.org');
- }, TypeError, 'Failing invalid characters');
-
- u.port(':99');
- equal(u.hostname(), 'example.com', 'port() has modified hostname');
- equal(u.port(), 99, 'port() has set an invalid port');
-
- u.port(false);
- equal(u.port(), '', 'port() has set an invalid port');
-
- // RFC 3986 says nothing about "16-bit unsigned" http://tools.ietf.org/html/rfc3986#section-3.2.3
- // u.href(new URI("http://example.com/"))
- // u.port(65536);
- // notEqual(u.port(), "65536", "port() has set to an non-valid value (A port number is a 16-bit unsigned integer)");
-
- raises(function() {
- u.port('-99');
- }, TypeError, 'Failing invalid characters');
- });
- test('domain', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
-
- raises(function() {
- u.domain('example.org/dir0/');
- }, TypeError, 'Failing invalid characters');
-
- raises(function() {
- u.domain('example.org:80');
- }, TypeError, 'Failing invalid characters');
-
- raises(function() {
- u.domain('foo@example.org');
- }, TypeError, 'Failing invalid characters');
- });
- test('subdomain', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
-
- raises(function() {
- u.subdomain('example.org/dir0/');
- }, TypeError, 'Failing invalid characters');
-
- raises(function() {
- u.subdomain('example.org:80');
- }, TypeError, 'Failing invalid characters');
-
- raises(function() {
- u.subdomain('foo@example.org');
- }, TypeError, 'Failing invalid characters');
- });
- test('tld', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
-
- raises(function() {
- u.tld('foo/bar.html');
- }, TypeError, 'Failing invalid characters');
- });
- test('path', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
- u.path('/dir3/?query3=value3#fragment');
- equal(u.hostname(), 'example.com', 'path() has modified hostname');
- equal(u.path(), '/dir3/%3Fquery3=value3%23fragment', 'path() has set invalid path');
- equal(u.query(), 'query1=value1&query2=value2', 'path() has modified query');
- equal(u.fragment(), 'hash', 'path() has modified fragment');
- });
- test('filename', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
-
- u.filename('name.html?query');
- equal(u.filename(), 'name.html%3Fquery', 'filename() has set invalid filename');
- equal(u.query(), 'query1=value1&query2=value2', 'filename() has modified query');
-
- // allowed!
- u.filename('../name.html?query');
- equal(u.filename(), 'name.html%3Fquery', 'filename() has set invalid filename');
- equal(u.directory(), '/dir1', 'filename() has not altered directory properly');
-
- u.filename(null);
- equal(u.filename(), 'name.html%3Fquery', 'filename() has set invalid filename');
- equal(u.directory(), '/dir1', 'filename() has not altered directory properly');
-
- u.filename(false);
- equal(u.filename(), 'name.html%3Fquery', 'filename() has set invalid filename');
- equal(u.directory(), '/dir1', 'filename() has not altered directory properly');
-
- u.filename(0);
- equal(u.filename(), 'name.html%3Fquery', 'filename() has set invalid filename');
- equal(u.directory(), '/dir1', 'filename() has not altered directory properly');
- });
- test('addQuery', function() {
- var u = new URI('http://example.com/dir1/dir2/?query1=value1&query2=value2#hash');
- u.addQuery('query3', 'value3#got');
- equal(u.query(), 'query1=value1&query2=value2&query3=value3%23got', 'addQuery() has set invalid query');
- equal(u.fragment(), 'hash', 'addQuery() has modified fragment');
- });
-
- /*
- // RFC 3986 says "…and should limit these names to no more than 255 characters in length."
- // SHOULD is not MUST therefore not the responsibility of URI.js
-
- module("validation");
- test("domain", function() {
- // this bases on the wiki page information: http://en.wikipedia.org/wiki/Domain_Name_System
- var u = new URI("http://example.com/"), domain, i, j;
-
- //generate a 204 character domain
- domain = "com"
- for (i=0; i<20; i++) {
- domain = "0123456789." + domain;
- }
- u.domain(domain);
- equals(u.hostname(), domain, "domain() has not set 204-character-domain");
-
- //expand the domain to a 404 character domain
- for (i=0; i<20; i++) {
- domain = "0123456789." + domain;
- }
- u.domain(domain);
- equals(u.hostname() == domain, true, "set domain() with "+domain.length+" charachters - not valid domainname");
-
- //generate a domain with three 70-char subdomains-parts.
- domain = "com";
- for (j=0; j<3; j++) {
- //start new subdomain
- domain = "." + domain;
- for (i=0; i<70; i++) {
- domain = "a" + domain;
- }
- }
- u.domain(domain);
- equals(u.hostname() == domain, true, "set domain() with 70-character subdomain not valid domainname");
- });
- */
-})();
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_jquery.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_jquery.js
deleted file mode 100644
index b6ab8c1be8..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_jquery.js
+++ /dev/null
@@ -1,141 +0,0 @@
-(function() {
- 'use strict';
- /*global document, URI, $, test, equal, ok */
-
- module('jQuery.URI', {
- setup: function() {
- var links = [
- 'an HTTP link ',
- 'an HTTPS link ',
- 'some pdf ',
- 'hello world ',
- 'directories ',
- 'directories ',
- 'Mail me ',
- 'some javascript ',
- 'jump to anchor ',
- ' ',
- ' ',
- ' '
- ];
-
- $('' + links.join('') + '
')
- .appendTo(document.body);
- $('foo
')
- .appendTo(document.body);
-
- var script = document.createElement('script');
- script.type = 'text/javascript';
- script.src = '/nonexistant.js';
- document.getElementById('testestest').appendChild(script);
- },
- teardown: function() {
- var t = $('#testestest');
- t.next().remove();
- t.remove();
- }
- });
- test('.uri()', function() {
- var $links = $('#testestest'),
- $first = $links.children().first(),
- uri = $first.uri(),
- _uri = URI('/hello.world');
-
- ok(uri !== _uri, 'different URI instances');
- var __uri = $first.uri(_uri);
- ok(uri !== _uri, 'different URI instances');
- ok(uri === __uri, 'same URI instances');
- equal($first.attr('href'), _uri.toString(), 'equal URI');
-
- });
- test('filtering with :uri()', function() {
- var $links = $('#testestest');
-
- // find using accessor and "begins with" comparison
- equal($('a:uri(href^=#anc)').length, 1, '$(selector) Anchor Link');
- equal($links.find(':uri(href^=#anc)').length, 1, '.find(selector) Anchor Link');
-
- // find using accessor and "ends with" comparison
- equal($(':uri(href$=.css)').length, 1, ':uri(href$=.css)');
-
- // find using accessor and "contains" comparison
- equal($(':uri(href *= /hello/)').length, 1, ':uri(href *= /hello/)');
-
- // find using accessor and "equals" comparison
- equal($links.find(':uri(protocol=https)').length, 1, ':uri(protocol=https)');
- equal($links.find(':uri(protocol=http)').length, 3, ':uri(protocol=http)');
-
- // directory match with trailing slash
- equal($links.find(':uri(directory *= /two/)').length, 2, ':uri(directory *= /two/)');
-
- // find using URI.is()
- equal($links.find(':uri(relative)').length, 5, ':uri(relative)');
- equal($links.find(':uri(is:relative)').length, 5, ':uri(is:relative)');
- equal($links.find(':uri(is: relative)').length, 5, ':uri(is:relative)');
-
- // find using URI.equal()
- // This syntax breaks Sizzle, probably because it's looking for a nested pseudo ":http"
- //equal($links.find(':uri(equals:http://example.org/hello/foo/../world.html)').length, 1, ':uri(equals:$url$)');
- equal($links.find(':uri(equals:"http://example.org/hello/foo/../world.html")').length, 1, ':uri(equals:$url$)');
- equal($links.find(':uri(equals: "http://example.org/hello/foo/../world.html")').length, 1, ':uri(equals:$url$)');
-
- // find URNs
- equal($links.find(':uri(urn)').length, 2, ':uri(urn)');
-
- // .is()
- equal($links.children('script').is(':uri(suffix=js)'), true, '.is(\':uri(suffix=js)\')');
- equal($links.children('form').is(':uri(suffix=php)'), true, '.is(\':uri(suffix=php)\')');
-
- // .has()
- equal($('div').has(':uri(suffix=js)').length, 1, '.has(\':uri(suffix=js)\')');
- });
- test('.attr("href")', function() {
- var $links = $('#testestest'),
- $first = $links.children().first(),
- first = $first.get(0),
- uri = $first.uri(),
- href = function(elem) {
- return elem.getAttribute('href');
- };
-
- if (!$.support.hrefNormalized) {
- href = function(elem) {
- return elem.getAttribute('href', 2);
- };
- }
-
- ok(uri instanceof URI, 'instanceof URI');
- equal(href(first), uri.toString(), 'URI equals href');
-
- // test feedback to DOM element
- uri.hostname('example.com');
- ok($first.uri() === uri, 'URI persisted');
- equal(href(first), uri.toString(), 'transparent href update');
-
- // test feedback from DOM element
- $first.attr('href', 'http://example.net/');
- ok($first.uri() === uri, 'URI persisted');
- equal(href(first), uri.toString(), 'transparent href update');
- });
- test('.attr("uri:accessor")', function() {
- var $links = $('#testestest'),
- $first = $links.children().first(),
- uri = $first.uri(),
- href = function(elem) {
- return elem.getAttribute('href');
- };
-
- if (!$.support.hrefNormalized) {
- href = function(elem) {
- return elem.getAttribute('href', 2);
- };
- }
-
- equal($first.attr('uri:hostname'), 'example.org', 'reading uri:hostname');
- $first.attr('uri:hostname', 'example.com');
- equal($first.attr('uri:hostname'), 'example.com', 'changed uri:hostname');
- equal($first.is(':uri(hostname=example.com)'), true, ':uri() after changed uri:hostname');
- ok($first.uri() === uri, 'URI persisted');
- });
-
-})();
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_template.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_template.js
deleted file mode 100644
index b2b5f03751..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/test_template.js
+++ /dev/null
@@ -1,417 +0,0 @@
-(function() {
- 'use strict';
- /*global window, URITemplate, URITemplate_pre_lib, test, equal, strictEqual, raises */
- // FIXME: v2.0.0 renamce non-camelCase properties to uppercase
- /*jshint camelcase: false, loopfunc: true, newcap: false */
-
- var levels = {
- // http://tools.ietf.org/html/rfc6570#section-1.2
- 'Level 1' : {
- expressions : {
- 'Simple string expansion' : {
- '{var}' : 'value',
- '{hello}' : 'Hello%20World%21'
- }
- },
- values : {
- 'var' : 'value',
- 'hello' : 'Hello World!'
- }
- },
- 'Level 2' : {
- expressions : {
- 'Reserved string expansion' : {
- '{+var}' : 'value',
- '{+hello}' : 'Hello%20World!',
- '{+path}/here' : '/foo/bar/here',
- 'here?ref={+path}' : 'here?ref=/foo/bar'
- },
- 'Fragment expansion, crosshatch-prefixed' : {
- 'X{#var}' : 'X#value',
- 'X{#hello}' : 'X#Hello%20World!'
- }
- },
- values : {
- 'var' : 'value',
- 'hello' : 'Hello World!',
- 'path' : '/foo/bar'
- }
- },
- 'Level 3' : {
- expressions : {
- 'String expansion with multiple variables' : {
- 'map?{x,y}' : 'map?1024,768',
- '{x,hello,y}' : '1024,Hello%20World%21,768'
- },
- 'Reserved expansion with multiple variables' : {
- '{+x,hello,y}' : '1024,Hello%20World!,768',
- '{+path,x}/here' : '/foo/bar,1024/here'
- },
- 'Fragment expansion with multiple variables' : {
- '{#x,hello,y}' : '#1024,Hello%20World!,768',
- '{#path,x}/here' : '#/foo/bar,1024/here'
- },
- 'Label expansion, dot-prefixed' : {
- 'X{.var}' : 'X.value',
- 'X{.x,y}' : 'X.1024.768'
- },
- 'Path segments, slash-prefixed' : {
- '{/var}' : '/value',
- '{/var,x}/here' : '/value/1024/here'
- },
- 'Path-style parameters, semicolon-prefixed' : {
- '{;x,y}' : ';x=1024;y=768',
- '{;x,y,empty}' : ';x=1024;y=768;empty'
- },
- 'Form-style query, ampersand-separated' : {
- '{?x,y}' : '?x=1024&y=768',
- '{?x,y,empty}' : '?x=1024&y=768&empty='
- },
- 'Form-style query continuation' : {
- '?fixed=yes{&x}' : '?fixed=yes&x=1024',
- '{&x,y,empty}' : '&x=1024&y=768&empty='
- }
- },
- values : {
- 'var' : 'value',
- 'hello' : 'Hello World!',
- 'empty' : '',
- 'path' : '/foo/bar',
- 'x' : '1024',
- 'y' : '768'
- }
- },
- 'Level 4' : {
- expressions : {
- 'String expansion with value modifiers' : {
- '{var:3}' : 'val',
- '{var:30}' : 'value',
- '{list}' : 'red,green,blue',
- '{list*}' : 'red,green,blue',
- '{keys}' : 'semi,%3B,dot,.,comma,%2C',
- '{keys*}' : 'semi=%3B,dot=.,comma=%2C'
- },
- 'Reserved expansion with value modifiers' : {
- '{+path:6}/here' : '/foo/b/here',
- '{+list}' : 'red,green,blue',
- '{+list*}' : 'red,green,blue',
- '{+keys}' : 'semi,;,dot,.,comma,,',
- '{+keys*}' : 'semi=;,dot=.,comma=,'
- },
- 'Fragment expansion with value modifiers' : {
- '{#path:6}/here' : '#/foo/b/here',
- '{#list}' : '#red,green,blue',
- '{#list*}' : '#red,green,blue',
- '{#keys}' : '#semi,;,dot,.,comma,,',
- '{#keys*}' : '#semi=;,dot=.,comma=,'
- },
- 'Label expansion, dot-prefixed' : {
- 'X{.var:3}' : 'X.val',
- 'X{.list}' : 'X.red,green,blue',
- 'X{.list*}' : 'X.red.green.blue',
- 'X{.keys}' : 'X.semi,%3B,dot,.,comma,%2C',
- 'X{.keys*}' : 'X.semi=%3B.dot=..comma=%2C'
- },
- 'Path segments, slash-prefixed' : {
- '{/var:1,var}' : '/v/value',
- '{/list}' : '/red,green,blue',
- '{/list*}' : '/red/green/blue',
- '{/list*,path:4}' : '/red/green/blue/%2Ffoo',
- '{/keys}' : '/semi,%3B,dot,.,comma,%2C',
- '{/keys*}' : '/semi=%3B/dot=./comma=%2C'
- },
- 'Path-style parameters, semicolon-prefixed' : {
- '{;hello:5}' : ';hello=Hello',
- '{;list}' : ';list=red,green,blue',
- '{;list*}' : ';list=red;list=green;list=blue',
- '{;keys}' : ';keys=semi,%3B,dot,.,comma,%2C',
- '{;keys*}' : ';semi=%3B;dot=.;comma=%2C'
- },
-
- 'Form-style query, ampersand-separated' : {
- '{?var:3}' : '?var=val',
- '{?list}' : '?list=red,green,blue',
- '{?list*}' : '?list=red&list=green&list=blue',
- '{?keys}' : '?keys=semi,%3B,dot,.,comma,%2C',
- '{?keys*}' : '?semi=%3B&dot=.&comma=%2C'
- },
- 'Form-style query continuation' : {
- '{&var:3}' : '&var=val',
- '{&list}' : '&list=red,green,blue',
- '{&list*}' : '&list=red&list=green&list=blue',
- '{&keys}' : '&keys=semi,%3B,dot,.,comma,%2C',
- '{&keys*}' : '&semi=%3B&dot=.&comma=%2C'
- }
- },
- values : {
- 'var' : 'value',
- 'hello' : 'Hello World!',
- 'path' : '/foo/bar',
- 'list' : ['red', 'green', 'blue'],
- 'keys' : {
- 'semi' : ';',
- 'dot' : '.',
- 'comma' : ','
- }
- }
- },
- // http://tools.ietf.org/html/rfc6570#section-3
- 'Expression Expansion' : {
- expressions : {
- 'Variable Expansion' : {
- '{count}' : 'one,two,three',
- '{count*}' : 'one,two,three',
- '{/count}' : '/one,two,three',
- '{/count*}' : '/one/two/three',
- '{;count}' : ';count=one,two,three',
- '{;count*}' : ';count=one;count=two;count=three',
- '{?count}' : '?count=one,two,three',
- '{?count*}' : '?count=one&count=two&count=three',
- '{&count*}' : '&count=one&count=two&count=three'
- },
- 'Simple String Expansion' : {
- '{var}' : 'value',
- '{hello}' : 'Hello%20World%21',
- '{half}' : '50%25',
- 'O{empty}X' : 'OX',
- 'O{undef}X' : 'OX',
- '{x,y}' : '1024,768',
- '{x,hello,y}' : '1024,Hello%20World%21,768',
- '?{x,empty}' : '?1024,',
- '?{x,undef}' : '?1024',
- '?{undef,y}' : '?768',
- '{var:3}' : 'val',
- '{var:30}' : 'value',
- '{list}' : 'red,green,blue',
- '{list*}' : 'red,green,blue',
- '{keys}' : 'semi,%3B,dot,.,comma,%2C',
- '{keys*}' : 'semi=%3B,dot=.,comma=%2C'
- },
- 'Reserved Expansion' : {
- '{+var}' : 'value',
- '{+hello}' : 'Hello%20World!',
- '{+half}' : '50%25',
- '{base}index' : 'http%3A%2F%2Fexample.com%2Fhome%2Findex',
- '{+base}index' : 'http://example.com/home/index',
- 'O{+empty}X' : 'OX',
- 'O{+undef}X' : 'OX',
- '{+path}/here' : '/foo/bar/here',
- 'here?ref={+path}' : 'here?ref=/foo/bar',
- 'up{+path}{var}/here' : 'up/foo/barvalue/here',
- '{+x,hello,y}' : '1024,Hello%20World!,768',
- '{+path,x}/here' : '/foo/bar,1024/here',
- '{+path:6}/here' : '/foo/b/here',
- '{+list}' : 'red,green,blue',
- '{+list*}' : 'red,green,blue',
- '{+keys}' : 'semi,;,dot,.,comma,,',
- '{+keys*}' : 'semi=;,dot=.,comma=,'
- },
- 'Fragment Expansion' : {
- '{#var}' : '#value',
- '{#hello}' : '#Hello%20World!',
- '{#half}' : '#50%25',
- 'foo{#empty}' : 'foo#',
- 'foo{#undef}' : 'foo',
- '{#x,hello,y}' : '#1024,Hello%20World!,768',
- '{#path,x}/here' : '#/foo/bar,1024/here',
- '{#path:6}/here' : '#/foo/b/here',
- '{#list}' : '#red,green,blue',
- '{#list*}' : '#red,green,blue',
- '{#keys}' : '#semi,;,dot,.,comma,,',
- '{#keys*}' : '#semi=;,dot=.,comma=,'
- },
- 'Label Expansion with Dot-Prefix' : {
- '{.who}' : '.fred',
- '{.who,who}' : '.fred.fred',
- '{.half,who}' : '.50%25.fred',
- 'www{.dom*}' : 'www.example.com',
- 'X{.var}' : 'X.value',
- 'X{.empty}' : 'X.',
- 'X{.undef}' : 'X',
- 'X{.var:3}' : 'X.val',
- 'X{.list}' : 'X.red,green,blue',
- 'X{.list*}' : 'X.red.green.blue',
- 'X{.keys}' : 'X.semi,%3B,dot,.,comma,%2C',
- 'X{.keys*}' : 'X.semi=%3B.dot=..comma=%2C',
- 'X{.empty_keys}' : 'X',
- 'X{.empty_keys*}' : 'X'
- },
- 'Path Segment Expansion' : {
- '{/who}' : '/fred',
- '{/who,who}' : '/fred/fred',
- '{/half,who}' : '/50%25/fred',
- '{/who,dub}' : '/fred/me%2Ftoo',
- '{/var}' : '/value',
- '{/var,empty}' : '/value/',
- '{/var,undef}' : '/value',
- '{/var,x}/here' : '/value/1024/here',
- '{/var:1,var}' : '/v/value',
- '{/list}' : '/red,green,blue',
- '{/list*}' : '/red/green/blue',
- '{/list*,path:4}' : '/red/green/blue/%2Ffoo',
- '{/keys}' : '/semi,%3B,dot,.,comma,%2C',
- '{/keys*}' : '/semi=%3B/dot=./comma=%2C'
- },
- 'Path-Style Parameter Expansion' : {
- '{;who}' : ';who=fred',
- '{;half}' : ';half=50%25',
- '{;empty}' : ';empty',
- '{;v,empty,who}' : ';v=6;empty;who=fred',
- '{;v,bar,who}' : ';v=6;who=fred',
- '{;x,y}' : ';x=1024;y=768',
- '{;x,y,empty}' : ';x=1024;y=768;empty',
- '{;x,y,undef}' : ';x=1024;y=768',
- '{;hello:5}' : ';hello=Hello',
- '{;list}' : ';list=red,green,blue',
- '{;list*}' : ';list=red;list=green;list=blue',
- '{;keys}' : ';keys=semi,%3B,dot,.,comma,%2C',
- '{;keys*}' : ';semi=%3B;dot=.;comma=%2C'
- },
- 'Form-Style Query Expansion' : {
- '{?who}' : '?who=fred',
- '{?half}' : '?half=50%25',
- '{?x,y}' : '?x=1024&y=768',
- '{?x,y,empty}' : '?x=1024&y=768&empty=',
- '{?x,y,undef}' : '?x=1024&y=768',
- '{?var:3}' : '?var=val',
- '{?list}' : '?list=red,green,blue',
- '{?list*}' : '?list=red&list=green&list=blue',
- '{?keys}' : '?keys=semi,%3B,dot,.,comma,%2C',
- '{?keys*}' : '?semi=%3B&dot=.&comma=%2C'
- },
- 'Form-Style Query Continuation' : {
- '{&who}' : '&who=fred',
- '{&half}' : '&half=50%25',
- '?fixed=yes{&x}' : '?fixed=yes&x=1024',
- '{&x,y,empty}' : '&x=1024&y=768&empty=',
- '{&x,y,undef}' : '&x=1024&y=768',
- '{&var:3}' : '&var=val',
- '{&list}' : '&list=red,green,blue',
- '{&list*}' : '&list=red&list=green&list=blue',
- '{&keys}' : '&keys=semi,%3B,dot,.,comma,%2C',
- '{&keys*}' : '&semi=%3B&dot=.&comma=%2C'
- }
- },
- values : {
- 'count' : ['one', 'two', 'three'],
- 'dom' : ['example', 'com'],
- 'dub' : 'me/too',
- 'hello' : 'Hello World!',
- 'half' : '50%',
- 'var' : 'value',
- 'who' : 'fred',
- 'base' : 'http://example.com/home/',
- 'path' : '/foo/bar',
- 'list' : ['red', 'green', 'blue'],
- 'keys' : {
- 'semi' : ';',
- 'dot' : '.',
- 'comma' : ','
- },
- 'v' : '6',
- 'x' : '1024',
- 'y' : '768',
- 'empty' : '',
- 'empty_keys' : [],
- 'undef' : null
- }
- }
- };
-
- module('URITemplate');
- // [].forEach() no IE, lacking interest in polyfilling this...
- for (var i in levels) {
- (function(level, data){
- test(level, function() {
- var combined_expression = '',
- combined_expansion = '',
- template, expression, expansion;
-
- for (var type in data.expressions) {
- for (expression in data.expressions[type]) {
- combined_expression += '/' + expression;
- combined_expansion += '/' + data.expressions[type][expression];
-
- template = new URITemplate(expression);
- expansion = template.expand(data.values);
- equal(expansion, data.expressions[type][expression], type + ': ' + expression);
- }
- }
-
- template = new URITemplate(combined_expression);
- expansion = template.expand(data.values);
- equal(expansion, combined_expansion, type + ': combined');
- });
- })(i, levels[i]);
- }
- test('Data Callbacks', function() {
- var template = new URITemplate('{var}');
- var global = function(key) {
- var data = {'var': 'hello world.html'};
- return data[key];
- };
- var local = function() {
- return 'hello world.html';
- };
-
- equal(template.expand(global), 'hello%20world.html', 'global callback');
- equal(template.expand({'var': local}), 'hello%20world.html', 'local callback');
- });
-
- test('Parse errors', function() {
- raises(function() {
- URITemplate('AB{var$}IJ').parse();
- }, Error, 'Failing invalid variable name');
-
- raises(function() {
- URITemplate('AB{$var}IJ').parse();
- }, Error, 'Failing invalid operator');
-
- raises(function() {
- URITemplate('AB{var:3IJ').parse();
- }, Error, 'Failing missing closing }');
-
- raises(function() {
- URITemplate('AB{var:3*}IJ').parse();
- }, Error, 'Failing invalid modifier');
- });
-
- test('Expansion errors', function() {
- raises(function() {
- var data = {'composite_var': ['multiple', 'values']};
- URITemplate('{composite_var:3}').expand(data);
- }, Error, 'Failing prefix modifier after composite variable');
- });
-
- test('noConflict mode', function() {
- var actual_lib = URITemplate; // actual library; after loading, before noConflict()
- var unconflicted = URITemplate.noConflict();
-
- strictEqual( unconflicted, actual_lib, 'noConflict() returns the URITemplate object' );
- strictEqual( URITemplate, URITemplate_pre_lib, 'noConflict() restores the `URITemplate` variable' );
-
- // restore for other tests
- window.URITemplate = actual_lib;
- });
-
- test('Periods in varnames', function() {
- var template = new URITemplate('{hello.world.var}');
- var literal = 'replacement';
- var data = {'hello.world.var': literal};
- var expansion = template.expand(data);
- equal(expansion, literal, 'period in varname');
- });
-
- test('Invalid literals', function () {
- raises(function() {
- URITemplate('invalid.char}acter').parse();
- }, Error, 'Failing invalid literal');
- });
-
- test('Strict mode', function () {
- raises(function() {
- new URITemplate("/{foo}/bar").expand({ foobar: 123 }, { strict: true });
- }, Error, 'Missing expansion value for variable in strict mode.');
- });
-
-})();
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/urls.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/urls.js
deleted file mode 100644
index 06e4ae542f..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/test/urls.js
+++ /dev/null
@@ -1,1941 +0,0 @@
-/*jshint unused:false, scripturl:true */
-var urls = [{
- name: 'scheme and domain',
- url: 'http://www.example.org',
- _url: 'http://www.example.org/',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'www.example.org',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: 'www.example.org',
- origin: 'http://www.example.org',
- userinfo: '',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '', // location.hash style
- search: '', // location.search style
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'second level domain',
- url: 'http://www.example.co.uk',
- _url: 'http://www.example.co.uk/',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'www.example.co.uk',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: 'www.example.co.uk',
- origin: 'http://www.example.co.uk',
- userinfo: '',
- subdomain: 'www',
- domain: 'example.co.uk',
- tld: 'co.uk',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '', // location.hash style
- search: '', // location.search style
- host: 'www.example.co.uk',
- hostname: 'www.example.co.uk'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: true,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- },{
- name: 'qualified HTTP',
- url: 'http://www.example.org/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'www.example.org',
- port: null,
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'www.example.org',
- origin: 'http://www.example.org',
- userinfo: '',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'funky suffix',
- url: 'http://www.example.org/some/directory/file.html-is-awesome?query=string#fragment',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'www.example.org',
- port: null,
- path: '/some/directory/file.html-is-awesome',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/some/directory/file.html-is-awesome',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html-is-awesome?query=string#fragment',
- authority: 'www.example.org',
- origin: 'http://www.example.org',
- userinfo: '',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/some/directory',
- filename: 'file.html-is-awesome',
- suffix: '',
- hash: '#fragment',
- search: '?query=string',
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'complete URL',
- url: 'scheme://user:pass@www.example.org:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'scheme',
- username: 'user',
- password: 'pass',
- hostname: 'www.example.org',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'scheme',
- username: 'user',
- password: 'pass',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@www.example.org:123',
- origin: 'scheme://user:pass@www.example.org:123',
- userinfo: 'user:pass',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: 'www.example.org:123',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'badly encoded userinfo',
- url: 'scheme://user:pass:word@www.example.org/',
- _url: 'scheme://user:pass%3Aword@www.example.org/',
- parts: {
- protocol: 'scheme',
- username: 'user',
- password: 'pass:word',
- hostname: 'www.example.org',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'scheme',
- username: 'user',
- password: 'pass:word',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: 'user:pass%3Aword@www.example.org',
- origin: 'scheme://user:pass%3Aword@www.example.org',
- userinfo: 'user:pass%3Aword',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '',
- search: '',
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'empty username with non-empty password',
- url: 'scheme://:password@www.example.org/',
- _url: 'scheme://:password@www.example.org/',
- parts: {
- protocol: 'scheme',
- username: null,
- password: 'password',
- hostname: 'www.example.org',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'scheme',
- username: '',
- password: 'password',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: ':password@www.example.org',
- origin: 'scheme://:password@www.example.org',
- userinfo: ':password',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '',
- search: '',
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'malformed email in userinfo',
- url: 'scheme://john@doe.com:pass:word@www.example.org/',
- _url: 'scheme://john%40doe.com:pass%3Aword@www.example.org/',
- parts: {
- protocol: 'scheme',
- username: 'john@doe.com',
- password: 'pass:word',
- hostname: 'www.example.org',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'scheme',
- username: 'john@doe.com',
- password: 'pass:word',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: 'john%40doe.com:pass%3Aword@www.example.org',
- origin: 'scheme://john%40doe.com:pass%3Aword@www.example.org',
- userinfo: 'john%40doe.com:pass%3Aword',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '',
- search: '',
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'host-relative: URL',
- url: '/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: null,
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: '',
- username: '',
- password: '',
- port: '',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: '',
- hostname: ''
- },
- is: {
- urn: false,
- url: true,
- relative: true,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'path-relative: URL',
- url: '../some/directory/file.html?query=string#fragment',
- parts: {
- protocol: null,
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: '../some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: '',
- username: '',
- password: '',
- port: '',
- path: '../some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '../some/directory/file.html?query=string#fragment',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '../some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: '',
- hostname: ''
- },
- is: {
- urn: false,
- url: true,
- relative: true,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'missing scheme',
- url: 'user:pass@www.example.org:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'user',
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: 'pass@www.example.org:123/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'user',
- username: '',
- password: '',
- port: '',
- path: 'pass@www.example.org:123/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: 'pass@www.example.org:123/some/directory/file.html?query=string#fragment',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '',
- filename: '',
- suffix: '',
- hash: '#fragment',
- search: '?query=string',
- host: '',
- hostname: ''
- },
- is: {
- urn: true,
- url: false,
- relative: false,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'ignoring scheme',
- url: '://user:pass@example.org:123/some/directory/file.html?query=string#fragment',
- _url: '//user:pass@example.org:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: null,
- username: 'user',
- password: 'pass',
- hostname: 'example.org',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: '',
- username: 'user',
- password: 'pass',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@example.org:123',
- origin: 'user:pass@example.org:123',
- userinfo: 'user:pass',
- subdomain: '',
- domain: 'example.org',
- tld: 'org',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: 'example.org:123',
- hostname: 'example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'scheme-relative URL',
- url: '//www.example.org/',
- parts: {
- protocol: null,
- username: null,
- password: null,
- hostname: 'www.example.org',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: '',
- username: '',
- password: '',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: 'www.example.org',
- origin: 'www.example.org',
- userinfo: '',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '',
- search: '',
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv4',
- url: 'http://user:pass@123.123.123.123:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- hostname: '123.123.123.123',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@123.123.123.123:123',
- origin: 'http://user:pass@123.123.123.123:123',
- userinfo: 'user:pass',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: '123.123.123.123:123',
- hostname: '123.123.123.123'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: true,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6',
- url: 'http://user:pass@fe80:0000:0000:0000:0204:61ff:fe9d:f156/some/directory/file.html?query=string#fragment',
- _url: 'http://user:pass@[fe80:0000:0000:0000:0204:61ff:fe9d:f156]/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- hostname: 'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
- port: null,
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- port: '',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@[fe80:0000:0000:0000:0204:61ff:fe9d:f156]',
- origin: 'http://user:pass@[fe80:0000:0000:0000:0204:61ff:fe9d:f156]',
- userinfo: 'user:pass',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: '[fe80:0000:0000:0000:0204:61ff:fe9d:f156]',
- hostname: 'fe80:0000:0000:0000:0204:61ff:fe9d:f156'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 with port',
- url: 'http://user:pass@[fe80:0000:0000:0000:0204:61ff:fe9d:f156]:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- hostname: 'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@[fe80:0000:0000:0000:0204:61ff:fe9d:f156]:123',
- origin: 'http://user:pass@[fe80:0000:0000:0000:0204:61ff:fe9d:f156]:123',
- userinfo: 'user:pass',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: '[fe80:0000:0000:0000:0204:61ff:fe9d:f156]:123',
- hostname: 'fe80:0000:0000:0000:0204:61ff:fe9d:f156'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 brackets, port, file.ext',
- url: 'http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'FEDC:BA98:7654:3210:FEDC:BA98:7654:3210',
- port: '80',
- path: '/index.html',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '80',
- path: '/index.html',
- query: '',
- fragment: '',
- resource: '/index.html',
- authority: '[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80',
- origin: 'http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/',
- filename: 'index.html',
- suffix: 'html',
- hash: '',
- search: '',
- host: '[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80',
- hostname: 'FEDC:BA98:7654:3210:FEDC:BA98:7654:3210'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 brackets, file.ext',
- url: 'http://[1080:0:0:0:8:800:200C:417A]/index.html',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: '1080:0:0:0:8:800:200C:417A',
- port: null,
- path: '/index.html',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/index.html',
- query: '',
- fragment: '',
- resource: '/index.html',
- authority: '[1080:0:0:0:8:800:200C:417A]',
- origin: 'http://[1080:0:0:0:8:800:200C:417A]',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/',
- filename: 'index.html',
- suffix: 'html',
- hash: '',
- search: '',
- host: '[1080:0:0:0:8:800:200C:417A]',
- hostname: '1080:0:0:0:8:800:200C:417A'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 brackets ::1',
- url: 'http://[3ffe:2a00:100:7031::1]',
- _url: 'http://[3ffe:2a00:100:7031::1]/',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: '3ffe:2a00:100:7031::1',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: '[3ffe:2a00:100:7031::1]',
- origin: 'http://[3ffe:2a00:100:7031::1]',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '',
- search: '',
- host: '[3ffe:2a00:100:7031::1]',
- hostname: '3ffe:2a00:100:7031::1'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 brackets, file',
- url: 'http://[1080::8:800:200C:417A]/foo',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: '1080::8:800:200C:417A',
- port: null,
- path: '/foo',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/foo',
- query: '',
- fragment: '',
- resource: '/foo',
- authority: '[1080::8:800:200C:417A]',
- origin: 'http://[1080::8:800:200C:417A]',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/',
- filename: 'foo',
- suffix: '',
- hash: '',
- search: '',
- host: '[1080::8:800:200C:417A]',
- hostname: '1080::8:800:200C:417A'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 IPv4 brackets, path',
- url: 'http://[::192.9.5.5]/ipng',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: '::192.9.5.5',
- port: null,
- path: '/ipng',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/ipng',
- query: '',
- fragment: '',
- resource: '/ipng',
- authority: '[::192.9.5.5]',
- origin: 'http://[::192.9.5.5]',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/',
- filename: 'ipng',
- suffix: '',
- hash: '',
- search: '',
- host: '[::192.9.5.5]',
- hostname: '::192.9.5.5'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 mask IPv4 brackets, port, file.ext',
- url: 'http://[::FFFF:129.144.52.38]:80/index.html',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: '::FFFF:129.144.52.38',
- port: '80',
- path: '/index.html',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '80',
- path: '/index.html',
- query: '',
- fragment: '',
- resource: '/index.html',
- authority: '[::FFFF:129.144.52.38]:80',
- origin: 'http://[::FFFF:129.144.52.38]:80',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/',
- filename: 'index.html',
- suffix: 'html',
- hash: '',
- search: '',
- host: '[::FFFF:129.144.52.38]:80',
- hostname: '::FFFF:129.144.52.38'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IPv6 brackets',
- url: 'http://[2010:836B:4179::836B:4179]',
- _url: 'http://[2010:836B:4179::836B:4179]/',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: '2010:836B:4179::836B:4179',
- port: null,
- path: '/',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/',
- query: '',
- fragment: '',
- resource: '/',
- authority: '[2010:836B:4179::836B:4179]',
- origin: 'http://[2010:836B:4179::836B:4179]',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/',
- filename: '',
- suffix: '',
- hash: '',
- search: '',
- host: '[2010:836B:4179::836B:4179]',
- hostname: '2010:836B:4179::836B:4179'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: false,
- sld: false,
- ip: true,
- ip4: false,
- ip6: true,
- idn: false,
- punycode: false
- }
- }, {
- // https://github.com/medialize/URI.js/issues/347
- name: 'Underscore in domain',
- url: 'http://user:pass@some_where.exa_mple.org:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- hostname: 'some_where.exa_mple.org',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@some_where.exa_mple.org:123',
- origin: 'http://user:pass@some_where.exa_mple.org:123',
- userinfo: 'user:pass',
- subdomain: 'some_where',
- domain: 'exa_mple.org',
- tld: 'org',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: 'some_where.exa_mple.org:123',
- hostname: 'some_where.exa_mple.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'IDN (punycode)',
- url: 'http://user:pass@xn--exmple-cua.org:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- hostname: 'xn--exmple-cua.org',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@xn--exmple-cua.org:123',
- origin: 'http://user:pass@xn--exmple-cua.org:123',
- userinfo: 'user:pass',
- subdomain: '',
- domain: 'xn--exmple-cua.org',
- tld: 'org',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: 'xn--exmple-cua.org:123',
- hostname: 'xn--exmple-cua.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: true
- }
- }, {
- name: 'IDN',
- url: 'http://user:pass@exämple.org:123/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- hostname: 'exämple.org',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: 'user',
- password: 'pass',
- port: '123',
- path: '/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/some/directory/file.html?query=string#fragment',
- authority: 'user:pass@exämple.org:123',
- origin: 'http://user:pass@exämple.org:123',
- userinfo: 'user:pass',
- subdomain: '',
- domain: 'exämple.org',
- tld: 'org',
- directory: '/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: 'exämple.org:123',
- hostname: 'exämple.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: true,
- punycode: false
- }
- }, {
- name: 'file://',
- url: 'file:///foo/bar/baz.html',
- parts: {
- protocol: 'file',
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: '/foo/bar/baz.html',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'file',
- username: '',
- password: '',
- port: '',
- path: '/foo/bar/baz.html',
- query: '',
- fragment: '',
- resource: '/foo/bar/baz.html',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/foo/bar',
- filename: 'baz.html',
- suffix: 'html',
- hash: '',
- search: '',
- host: '',
- hostname: ''
- },
- is: {
- urn: false,
- url: true,
- relative: true,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'file://example.org:123',
- url: 'file://example.org:123/foo/bar/baz.html',
- parts: {
- protocol: 'file',
- username: null,
- password: null,
- hostname: 'example.org',
- port: '123',
- path: '/foo/bar/baz.html',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'file',
- username: '',
- password: '',
- port: '123',
- path: '/foo/bar/baz.html',
- query: '',
- fragment: '',
- resource: '/foo/bar/baz.html',
- authority: 'example.org:123',
- origin: 'file://example.org:123',
- userinfo: '',
- subdomain: '',
- domain: 'example.org',
- tld: 'org',
- directory: '/foo/bar',
- filename: 'baz.html',
- suffix: 'html',
- hash: '',
- search: '',
- host: 'example.org:123',
- hostname: 'example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'file:// Windows-Drive-Letter',
- url: 'file:///C:/WINDOWS/foo.txt',
- parts: {
- protocol: 'file',
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: '/C:/WINDOWS/foo.txt',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'file',
- username: '',
- password: '',
- port: '',
- path: '/C:/WINDOWS/foo.txt',
- query: '',
- fragment: '',
- resource: '/C:/WINDOWS/foo.txt',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/C:/WINDOWS',
- filename: 'foo.txt',
- suffix: 'txt',
- hash: '',
- search: '',
- host: '',
- hostname: ''
- },
- is: {
- urn: false,
- url: true,
- relative: true,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'file://example.org/ Windows-Drive-Letter',
- url: 'file://example.org/C:/WINDOWS/foo.txt',
- parts: {
- protocol: 'file',
- username: null,
- password: null,
- hostname: 'example.org',
- port: null,
- path: '/C:/WINDOWS/foo.txt',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'file',
- username: '',
- password: '',
- port: '',
- path: '/C:/WINDOWS/foo.txt',
- query: '',
- fragment: '',
- resource: '/C:/WINDOWS/foo.txt',
- authority: 'example.org',
- origin: 'file://example.org',
- userinfo: '',
- subdomain: '',
- domain: 'example.org',
- tld: 'org',
- directory: '/C:/WINDOWS',
- filename: 'foo.txt',
- suffix: 'txt',
- hash: '',
- search: '',
- host: 'example.org',
- hostname: 'example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'file://localhost/ Windows-Drive-Letter with pipe',
- url: 'file://localhost/C|/WINDOWS/foo.txt',
- parts: {
- protocol: 'file',
- username: null,
- password: null,
- hostname: 'localhost',
- port: null,
- path: '/C|/WINDOWS/foo.txt',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'file',
- username: '',
- password: '',
- port: '',
- path: '/C|/WINDOWS/foo.txt',
- query: '',
- fragment: '',
- resource: '/C|/WINDOWS/foo.txt',
- authority: 'localhost',
- origin: 'file://localhost',
- userinfo: '',
- subdomain: '',
- domain: 'localhost',
- tld: 'localhost',
- directory: '/C|/WINDOWS',
- filename: 'foo.txt',
- suffix: 'txt',
- hash: '',
- search: '',
- host: 'localhost',
- hostname: 'localhost'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'Path containing @',
- url: 'http://www.example.org/@foobar',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'www.example.org',
- port: null,
- path: '/@foobar',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/@foobar',
- query: '',
- fragment: '',
- resource: '/@foobar',
- authority: 'www.example.org',
- origin: 'http://www.example.org',
- userinfo: '',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/',
- filename: '@foobar',
- suffix: '',
- hash: '', // location.hash style
- search: '', // location.search style
- host: 'www.example.org',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'mailto:',
- url: 'mailto:hello@example.org?subject=hello',
- _url: 'mailto:hello@example.org?subject=hello',
- parts: {
- protocol: 'mailto',
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: 'hello@example.org',
- query: 'subject=hello',
- fragment: null
- },
- accessors: {
- protocol: 'mailto',
- username: '',
- password: '',
- port: '',
- path: 'hello@example.org',
- query: 'subject=hello',
- fragment: '',
- resource: 'hello@example.org?subject=hello',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '',
- filename: '',
- suffix: '',
- hash: '',
- search: '?subject=hello',
- host: '',
- hostname: ''
- },
- is: {
- urn: true,
- url: false,
- relative: false,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'magnet:',
- url: 'magnet:?xt=urn:btih:f8c020dac7a083defda1769a1196a13facc38ef6&dn=Linux+64x+server+11.10+Pt+Pt&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80',
- _url: 'magnet:?xt=urn:btih:f8c020dac7a083defda1769a1196a13facc38ef6&dn=Linux+64x+server+11.10+Pt+Pt&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80',
- parts: {
- protocol: 'magnet',
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: '',
- query: 'xt=urn:btih:f8c020dac7a083defda1769a1196a13facc38ef6&dn=Linux+64x+server+11.10+Pt+Pt&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80',
- fragment: null
- },
- accessors: {
- protocol: 'magnet',
- username: '',
- password: '',
- port: '',
- path: '',
- query: 'xt=urn:btih:f8c020dac7a083defda1769a1196a13facc38ef6&dn=Linux+64x+server+11.10+Pt+Pt&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80',
- fragment: '',
- resource: '?xt=urn:btih:f8c020dac7a083defda1769a1196a13facc38ef6&dn=Linux+64x+server+11.10+Pt+Pt&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '',
- filename: '',
- suffix: '',
- hash: '',
- search: '?xt=urn:btih:f8c020dac7a083defda1769a1196a13facc38ef6&dn=Linux+64x+server+11.10+Pt+Pt&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80',
- host: '',
- hostname: ''
- },
- is: {
- urn: true,
- url: false,
- relative: false,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'javascript:',
- url: 'javascript:alert("hello world");',
- _url: 'javascript:alert("hello world");',
- parts: {
- protocol: 'javascript',
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: 'alert("hello world");',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'javascript',
- username: '',
- password: '',
- port: '',
- path: 'alert("hello world");',
- query: '',
- fragment: '',
- resource: 'alert("hello world");',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '',
- filename: '',
- suffix: '',
- hash: '',
- search: '',
- host: '',
- hostname: ''
- },
- is: {
- urn: true,
- url: false,
- relative: false,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'colon in path',
- url: 'http://en.wikipedia.org/wiki/Help:IPA',
- _url: 'http://en.wikipedia.org/wiki/Help:IPA',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'en.wikipedia.org',
- port: null,
- path: '/wiki/Help:IPA',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/wiki/Help:IPA',
- query: '',
- fragment: '',
- resource: '/wiki/Help:IPA',
- authority: 'en.wikipedia.org',
- origin: 'http://en.wikipedia.org',
- userinfo: '',
- subdomain: 'en',
- domain: 'wikipedia.org',
- tld: 'org',
- directory: '/wiki',
- filename: 'Help:IPA',
- suffix: '',
- hash: '',
- search: '',
- host: 'en.wikipedia.org',
- hostname: 'en.wikipedia.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'colon in path without protocol',
- url: '/wiki/Help:IPA',
- _url: '/wiki/Help:IPA',
- parts: {
- protocol: null,
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: '/wiki/Help:IPA',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: '',
- username: '',
- password: '',
- port: '',
- path: '/wiki/Help:IPA',
- query: '',
- fragment: '',
- resource: '/wiki/Help:IPA',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/wiki',
- filename: 'Help:IPA',
- suffix: '',
- hash: '',
- search: '',
- host: '',
- hostname: ''
- },
- is: {
- urn: false,
- url: true,
- relative: true,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'colon dash dash in path without protocol',
- url: '/foo/xy://bar',
- _url: '/foo/xy://bar',
- parts: {
- protocol: null,
- username: null,
- password: null,
- hostname: null,
- port: null,
- path: '/foo/xy://bar',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: '',
- username: '',
- password: '',
- port: '',
- path: '/foo/xy://bar',
- query: '',
- fragment: '',
- resource: '/foo/xy://bar',
- authority: '',
- origin: '',
- userinfo: '',
- subdomain: '',
- domain: '',
- tld: '',
- directory: '/foo/xy:/', // sanitized empty directory!
- filename: 'bar',
- suffix: '',
- hash: '',
- search: '',
- host: '',
- hostname: ''
- },
- is: {
- urn: false,
- url: true,
- relative: true,
- name: false,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'colon in path',
- url: 'http://www.example.org:8080/hello:world',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'www.example.org',
- port: '8080',
- path: '/hello:world',
- query: null,
- fragment: null
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '8080',
- path: '/hello:world',
- query: '',
- fragment: '',
- resource: '/hello:world',
- authority: 'www.example.org:8080',
- origin: 'http://www.example.org:8080',
- userinfo: '',
- subdomain: 'www',
- domain: 'example.org',
- tld: 'org',
- directory: '/',
- filename: 'hello:world',
- suffix: '',
- hash: '', // location.hash style
- search: '', // location.search style
- host: 'www.example.org:8080',
- hostname: 'www.example.org'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }, {
- name: 'backslashes',
- url: 'http://i.xss.com\\www.example.org/some/directory/file.html?query=string#fragment',
- _url: 'http://i.xss.com/www.example.org/some/directory/file.html?query=string#fragment',
- parts: {
- protocol: 'http',
- username: null,
- password: null,
- hostname: 'i.xss.com',
- port: null,
- path: '/www.example.org/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment'
- },
- accessors: {
- protocol: 'http',
- username: '',
- password: '',
- port: '',
- path: '/www.example.org/some/directory/file.html',
- query: 'query=string',
- fragment: 'fragment',
- resource: '/www.example.org/some/directory/file.html?query=string#fragment',
- authority: 'i.xss.com',
- origin: 'http://i.xss.com',
- userinfo: '',
- subdomain: 'i',
- domain: 'xss.com',
- tld: 'com',
- directory: '/www.example.org/some/directory',
- filename: 'file.html',
- suffix: 'html',
- hash: '#fragment',
- search: '?query=string',
- host: 'i.xss.com',
- hostname: 'i.xss.com'
- },
- is: {
- urn: false,
- url: true,
- relative: false,
- name: true,
- sld: false,
- ip: false,
- ip4: false,
- ip6: false,
- idn: false,
- punycode: false
- }
- }
-];
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/uri-template.html b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/uri-template.html
deleted file mode 100644
index c94076292c..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/uri-template.html
+++ /dev/null
@@ -1,239 +0,0 @@
-
-
-
-
-
- URI.js - URI-Template
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
URI Template
-
-
As of version 1.7.0 URI.js includes an implementation of URI Templates, as specified in RFC 6570 (Level 4, March 2012).
-
-
-
Using URI Templates
-
-
-// creating a new URI Template
-var template = new URITemplate("http://example.org/{file}");
-var result = template.expand({file: "hello world.html"});
-result === "http://example.org/hello%20world.html";
-
-// of course you can call the constructor like a function and chain things:
-result = URITemplate("http://example.org/{file}")
- .expand({file: "hello world.html"});
-result === "http://example.org/hello%20world.html";
-
-// access via URI
-result = URI.expand("http://example.org/{file}", {file: "hello world.html"});
-// result == new URI("http://example.org/hello%20world.html");
-
-// expand() accepts data-callbacks:
-template.expand(function(key) {
- var data = {file: "hello world.html"};
- return data[key];
-});
-
-// expand() accepts key-callbacks:
-template.expand({file : function(key) {
- return "hello world.html";
-}});
-
-// Using strict mode
-var template = new URITemplate("http://example.org/{file}");
-var result = template.expand({filename: "hello world.html"}, { strict: true });
-// Uncaught Error: Missing expansion value for variable "file"
-
-
-
-
-
URI Template Syntax
-
-
Expressions are placeholders which are to be substituted by the values their variables reference.
-
- http://example.org/~{username } /
- http://example.org/dictionary/{term :1 } /{term }
- http://example.org/search{? q * ,lang }
-
-
- An expression consists of an operator and a (comma-separated) list of variable-specifications .
- A variable-specification consists of a variable and an optional modifier .
-
-
-
-
Given the template
-
http://example.org/~{username } /{term :1 } /{term } {? q * ,lang }
-
and the following data:
-
{username: "rodneyrehm", term: "hello world", q: {a: "mars", b: "jupiter"}, lang: "en"}
-
the expansion looks as follows:
-
"http://example.org/~rodneyrehm/h/hello%20world?a=mars&b=jupiter&lang=en"
-
-
-
List of supported operators :
-
- Operator Description
- None Simple String Expansion;
- +Reserved character strings;
- #Fragment identifiers prefixed by "#";
- .Name labels or extensions prefixed by ".";
- /Path segments prefixed by "/";
- ;Path parameter name or name=value pairs prefixed by ";";
- ?Query component beginning with "?" and consisting of name=value pairs separated by "&"; and,
- &Continuation of query-style &name=value pairs within a literal query component.
-
-
-
List of supported modifiers :
-
- Modifier Description
- None No modification, arrays and objects are joined with ","
- *Explode arrays and objects (see tables below)
- :3Substring of the first 3 characters of the variable's value
-
-
-
Strings and Numbers
-
- Given {"var": "hello[world]"}, the expression {var} expands to hello%5Bworld%5D.
- The following table shows an output matrix for every possible operator/modifier combination produced for string input.
-
-
- Modifier
- Operator None * :2
- None hello%5Bworld%5Dhello%5Bworld%5Dhe
- + hello[world]hello[world]he
- ##hello[world]#hello[world]#he
- ..hello%5Bworld%5D.hello%5Bworld%5D.he
- //hello%5Bworld%5D/hello%5Bworld%5D/he
- ;;var=hello%5Bworld%5D;var=hello%5Bworld%5D;var=he
- ??var=hello%5Bworld%5D?var=hello%5Bworld%5D?var=he
- &&var=hello%5Bworld%5D&var=hello%5Bworld%5D&var=he
-
-
-
-
Arrays
-
- Given {"var": ["one", "two", "three"]}, the expression {var} expands to one,two,three.
- The following table shows an output matrix for every possible operator/modifier combination produced for array input.
-
-
- Modifier
- Operator None * :2
- None one,two,threeone,two,threeon,tw,th
- + one,two,threeone,two,threeon,tw,th
- ##one,two,three#one,two,three#on,tw,th
- ..one,two,three.one.two.three.on,tw,th
- //one,two,three/one/two/three/on,tw,th
- ;;var=one,two,three;var=one;var=two;var=three;var=on,tw,th
- ??var=one,two,three?var=one&var=two&var=three?var=on,tw,th
- &&var=one,two,three&var=one&var=two&var=three&var=on,tw,th
-
-
-
Objects ("plain objects" / "hash maps")
-
- Given {"var": {"one": "alpha", "two": "bravo"}}, the expression {var} expands to one,two,three.
- The following table shows an output matrix for every possible operator/modifier combination produced for object input.
-
-
- Modifier
- Operator None * :2
- None one,alpha,two,bravoone=alpha,two=bravoon,al,tw,br
- + one,alpha,two,bravoone=alpha,two=bravoon,al,tw,br
- ##one,alpha,two,bravo#one=alpha,two=bravo#on,al,tw,br
- ..one,alpha,two,bravo.one=alpha.two=bravo.on,al,tw,br
- //one,alpha,two,bravo/one=alpha/two=bravo/on,al,tw,br
- ;;var=one,alpha,two,bravo;one=alpha;two=bravo;var=on,al,tw,br
- ??var=one,alpha,two,bravo?one=alpha&two=bravo?var=on,al,tw,br
- &&var=one,alpha,two,bravo&one=alpha&two=bravo&var=on,al,tw,br
-
-
-
-
-
Limitations
-
URI Template is a Proposed Standard and because of that I did not want to deviate from it. That said I'm not at all happy with how the specification turned out. Here are some of my thoughts:
-
- The explode modifier works the wrong way. {?some_object} should lead to ?foo=bar&hello=world, as this is the common expansion
- The prefix modifier (which I would've named truncate modifier ) only has an end-offset.
- The specification says it's »used to partition an identifier space hierarchically«. abc may become a/bc or a/ab/abc.
- But there is no way of modifying output to a/b/c or a/b/abc. Whenever I had to partition identifier spaces, I used one of the latter patterns.
- Operators like . automatically prefix the expansion. So {"var": ["filename", "extension"]} and {.var*} results in .filename.extension - obviously not what I wanted.
- Variable names (varname ) may only contain ALPHA / DIGIT / "_" / pct-encoded and may not be decoded for resolving the reference. This simply feels weird, especially the "may not be decoded" part.
- Other possible modifiers could include some simple character-munging like UPPERCASE , LOWERCASE , CAPITALCASE
- {/var,empty,empty} results in /foobar// - clearly not what one intended
- {var} and {"var" : {"a": "1", "b": "2"}} results in a,1,b,2 - excusemewhat? I would've expected a=1,b=2 or a:1,b:2 (in a perverse parallel universe).
- Spaces in the query string should be encoded to +, not %20 according to application/x-www-form-urlencoded
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/utils/SLDs.php b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/utils/SLDs.php
deleted file mode 100644
index 3f451e7646..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/utils/SLDs.php
+++ /dev/null
@@ -1,37 +0,0 @@
- &$slds) {
- $slds = array_unique($slds);
- sort($slds);
- $slds = join('|', $slds);
-}
-
-echo json_encode($map);
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/utils/sld.js b/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/utils/sld.js
deleted file mode 100644
index b0c95db062..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/URI.js-1.19.1/utils/sld.js
+++ /dev/null
@@ -1,101 +0,0 @@
-var fs = require('fs');
-var url = require('url');
-var http = require('http');
-var domains = {};
-
-/*
- Problem with PublicSuffix:
- The list not only contains TLDs/SLDs, but also domains like "dyndns.org".
- While this may be useful for Cookie-Origin-Policy, these domains are possibly
- being handled by URI.js, considering URI("//dyndns.org").tld("com").
- The list does not distinguish "official" TLDs from such domains.
- (At least I have problems with treating "cc.ga.us" as a SLD)
-*/
-
-http.get("http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1", function(res) {
- res.on('data', function(data) {
- data.toString().replace(/\r/g, "").split("\n").forEach(function(line) {
- // skip empty lines, comments and TLDs
- if (!line || (line[0] === "/" && line[1] === "/") || line.indexOf('.') === -1) {
- return;
- }
-
- var parts = line.split('.');
- var sld = parts.slice(0, -1).join('.');
- var tld = parts.slice(-1);
-
- if (parts.length < 2) {
- return;
- }
-
- if (!domains[tld]) {
- domains[tld] = [];
- }
-
- domains[tld].push(sld);
- });
- }).on('end', function() {
- //file.end();
- for (var tld in domains) {
- domains[tld].sort();
-
- // ! and * are sorted to the top
- if (domains[tld][0][0] == '!') {
- // we have wildcards and exclusions
- } else if (domains[tld][0][0] == '*') {
- // we have wildcards
- } else {
- // simple list
- }
- }
-
- console.log(JSON.stringify(domains, null, 2));
- //console.log(domains.jp);
- });
-});
-
-/*
-
-
-// https://github.com/oncletom/tld.js
-// generates a 430KB file, which is inacceptible for the web
-
-build a regex pattern from this -- http://publicsuffix.org/list/
-"!exclusion"
-"*" wildcard
-
-uk: [ '!bl',
- '!british-library',
- '!jet',
- '!mod',
- '!national-library-scotland',
- '!nel',
- '!nic',
- '!nls',
- '!parliament',
- '*',
- '*.nhs',
- '*.police',
- '*.sch',
- 'blogspot.co' ]
-
-jp: [ '!city.kawasaki',
- '!city.kitakyushu',
- '!city.kobe',
- '!city.nagoya',
- '!city.sapporo',
- '!city.sendai',
- '!city.yokohama',
- '*.kawasaki',
- '*.kitakyushu',
- '*.kobe',
- '*.nagoya',
- '*.sapporo',
- '*.sendai',
- '*.yokohama',
- 'abashiri.hokkaido',
- 'abeno.osaka',
- 'abiko.chiba',
- … ]
-
-*/
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.circleci/config.yml b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.circleci/config.yml
deleted file mode 100644
index 676800551c..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.circleci/config.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-# Javascript Node CircleCI 2.0 configuration file
-#
-# Check https://circleci.com/docs/2.0/language-javascript/ for more details
-#
-version: 2
-jobs:
- build:
- docker:
- # specify the version you desire here
- - image: circleci/node:8
-
- # Specify service dependencies here if necessary
- # CircleCI maintains a library of pre-built images
- # documented at https://circleci.com/docs/2.0/circleci-images/
- # - image: circleci/mongo:3.4.4
-
- working_directory: ~/repo
-
- steps:
- - checkout
-
- - run:
- name: "Checking Versions"
- command: |
- node --version
- npm --version
-
- - run:
- name: update-npm
- command: 'sudo npm install -g npm@latest'
-
- # Download and cache dependencies
- - restore_cache:
- key: dependency-cache-{{ checksum "package.json" }}
-
- - run: npm install
-
- - save_cache:
- key: dependency-cache-{{ checksum "package.json" }}
- paths:
- - ./node_modules
-
- - run:
- name: "Checking Versions"
- command: |
- node --version
- npm --version
-
- # run tests!
- - run: grunt test
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.editorconfig b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.editorconfig
deleted file mode 100644
index 69cfa45f76..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.editorconfig
+++ /dev/null
@@ -1,21 +0,0 @@
-# http://editorconfig.org
-
-# top-most EditorConfig file
-root = true
-
-# Unix-style newlines with a newline ending every file
-[*]
-end_of_line = lf
-insert_final_newline = true
-charset = utf-8
-indent_style = tab
-indent_size = 4
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[{*.md,*.scss,*.css,*.php,*.yml,package.json}]
-indent_style = space
-indent_size = 2
-
-[*.md]
-trim_trailing_whitespace = false
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.eslintrc.js b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.eslintrc.js
deleted file mode 100644
index 3a616224ef..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.eslintrc.js
+++ /dev/null
@@ -1,359 +0,0 @@
-module.exports = {
- "env": {
- "browser": true,
- "jquery": true,
- "node": true,
- "amd": true
- },
- "parserOptions": {
- "ecmaVersion": 5,
- "sourceType": "script"
- },
- "extends": "eslint:recommended",
- "rules": {
- "array-bracket-spacing": [
- "warn",
- "never"
- ],
- "array-callback-return": "warn",
- "arrow-body-style": "error",
- "arrow-parens": "error",
- "arrow-spacing": "error",
- "block-scoped-var": "warn",
- "block-spacing": [
- "warn",
- "always"
- ],
- "brace-style": [
- "error",
- "1tbs"
- ],
- "callback-return": "error",
- "camelcase": [
- "warn",
- { "properties": "always" }
- ],
- "capitalized-comments": "off",
- "class-methods-use-this": "error",
- "comma-dangle": [
- "error",
- "never"
- ],
- "comma-spacing": "error",
- "comma-style": "error",
- "complexity": [
- "warn",
- 20
- ],
- "computed-property-spacing": "error",
- "consistent-return": "error",
- "consistent-this": [
- "error",
- "that",
- "outerThis",
- "self"
- ],
- "curly": "error",
- "default-case": "error",
- "dot-location": [
- "error",
- "property"
- ],
- "dot-notation": "error",
- "eol-last": "error",
- "eqeqeq": "error",
- "func-call-spacing": "error",
- "func-name-matching": "error",
- "func-names": "off",
- "func-style": "off",
- "generator-star-spacing": "error",
- "global-require": "error",
- "guard-for-in": "warn",
- "handle-callback-err": "error",
- "id-blacklist": "error",
- "id-length": [
- "warn",
- { "exceptions": ["$","e","i","j"] }
- ],
- "id-match": "error",
- "indent": [
- "error",
- "tab"
- ],
- "init-declarations": "off",
- "jsx-quotes": "error",
- "key-spacing": [
- "warn", {
- "singleLine": {
- "beforeColon": false,
- "afterColon": true
- },
- "multiLine": {
- "beforeColon": true,
- "afterColon": true,
- "align": "colon"
- }
- }
- ],
- "keyword-spacing": "error",
- "line-comment-position": "off",
- "linebreak-style": [
- "warn",
- "unix"
- ],
- "lines-around-comment": "off",
- "lines-around-directive": "off",
- "max-depth": "warn",
- "max-len": "off",
- "max-lines": "off",
- "max-nested-callbacks": "error",
- "max-params": [
- "warn",
- { "max": 4 }
- ],
- "max-statements": [
- "warn",
- { "max": 20 }
- ],
- "max-statements-per-line": [
- "error",
- { "max": 2 }
- ],
- "multiline-ternary": [
- "error",
- "never"
- ],
- "new-parens": "error",
- "newline-after-var": "warn",
- "newline-before-return": "error",
- "newline-per-chained-call": [
- "warn",
- { "ignoreChainWithDepth": 3 }
- ],
- "no-alert": "error",
- "no-array-constructor": "error",
- "no-await-in-loop": "error",
- "no-bitwise": "error",
- "no-caller": "error",
- "no-catch-shadow": "warn",
- "no-compare-neg-zero": "error",
- "no-confusing-arrow": "error",
- "no-continue": "warn",
- "no-div-regex": "error",
- "no-duplicate-imports": "error",
- "no-else-return": "error",
- "no-empty": [
- "error",
- { "allowEmptyCatch": true }
- ],
- "no-empty-function": [
- "error",
- { "allow": ["functions"] }
- ],
- "no-eq-null": "error",
- "no-eval": [
- "error",
- { "allowIndirect": true }
- ],
- "no-extend-native": "error",
- "no-extra-bind": "error",
- "no-extra-label": "error",
- "no-extra-parens": [
- "warn",
- "all",
- {
- "returnAssign": false,
- "nestedBinaryExpressions": false
- }
- ],
- "no-floating-decimal": "error",
- "no-global-assign": "error",
- "no-implicit-globals": "error",
- "no-implied-eval": "error",
- "no-inline-comments": "off",
- "no-inner-declarations": [
- "warn",
- "both"
- ],
- "no-invalid-this": "off",
- "no-iterator": "error",
- "no-label-var": "error",
- "no-labels": "error",
- "no-lone-blocks": "error",
- "no-lonely-if": "error",
- "no-loop-func": "error",
- "no-magic-numbers": [
- "warn",
- {
- "ignore": [0,1],
- "ignoreArrayIndexes": true
- }
- ],
- "no-mixed-operators": "error",
- "no-mixed-requires": "error",
- "no-multi-assign": "warn",
- "no-multi-spaces": "error",
- "no-multi-str": "error",
- "no-multiple-empty-lines": [
- "error",
- {
- max: 2,
- maxEOF: 1,
- maxBOF: 0
- }
- ],
- "no-negated-condition": "warn",
- "no-nested-ternary": "error",
- "no-new": "error",
- "no-new-func": "error",
- "no-new-object": "error",
- "no-new-require": "error",
- "no-new-wrappers": "error",
- "no-octal-escape": "error",
- "no-param-reassign": "off",
- "no-path-concat": "error",
- "no-plusplus": "off",
- "no-process-env": "error",
- "no-process-exit": "error",
- "no-proto": "error",
- "no-prototype-builtins": "warn",
- "no-restricted-globals": "error",
- "no-restricted-imports": "error",
- "no-restricted-modules": "error",
- "no-restricted-properties": "error",
- "no-restricted-syntax": "error",
- "no-return-assign": "error",
- "no-return-await": "error",
- "no-script-url": "error",
- "no-self-compare": "error",
- "no-sequences": "error",
- "no-shadow": "warn",
- "no-shadow-restricted-names": "error",
- "no-spaced-func": "error",
- "no-sync": "warn",
- "no-tabs": "off",
- "no-template-curly-in-string": "error",
- "no-ternary": "warn",
- "no-throw-literal": "warn",
- "no-trailing-spaces": "error",
- "no-undef-init": "error",
- "no-undefined": "warn",
- "no-underscore-dangle": "error",
- "no-unmodified-loop-condition": "error",
- "no-unneeded-ternary": "error",
- "no-unsafe-negation": "error",
- "no-unused-expressions": "error",
- "no-unused-vars": [
- "warn",
- {
- "vars": "local",
- "args": "none"
- }
- ],
- "no-use-before-define": [
- "error",
- {
- "functions": false
- }
- ],
- "no-useless-call": "error",
- "no-useless-computed-key": "error",
- "no-useless-concat": "error",
- "no-useless-constructor": "error",
- "no-useless-escape": "error",
- "no-useless-rename": "error",
- "no-useless-return": "error",
- "no-var": "off",
- "no-void": "error",
- "no-warning-comments": "warn",
- "no-whitespace-before-property": "error",
- "no-with": "error",
- "nonblock-statement-body-position": "error",
- "object-curly-newline": "error",
- "object-curly-spacing": [
- "error",
- "never",
- {
- "arraysInObjects": true,
- "objectsInObjects": true
- }
- ],
- "object-property-newline": [
- "error",
- {
- "allowMultiplePropertiesPerLine": true
- }
- ],
- "object-shorthand": [
- "warn",
- "consistent"
- ],
- "one-var": "off",
- "one-var-declaration-per-line": "off",
- "operator-assignment": [
- "error",
- "always"
- ],
- "operator-linebreak": "error",
- "padded-blocks": "off",
- "prefer-arrow-callback": "off",
- "prefer-const": "error",
- "prefer-destructuring": "off",
- "prefer-numeric-literals": "off",
- "prefer-promise-reject-errors": "error",
- "prefer-rest-params": "off",
- "prefer-spread": "off",
- "prefer-template": "off",
- "quote-props": [
- "warn",
- "consistent-as-needed"
- ],
- "quotes": [
- "error",
- "single",
- {
- "avoidEscape": true,
- "allowTemplateLiterals": true
- }
- ],
- "radix": "error",
- "require-await": "error",
- "require-jsdoc": "off",
- "rest-spread-spacing": "error",
- "semi": "error",
- "semi-spacing": "error",
- "sort-imports": "error",
- "sort-keys": "warn",
- "sort-vars": "warn",
- "space-before-blocks": "warn",
- "space-before-function-paren": "off",
- "space-in-parens": "warn",
- "space-infix-ops": "error",
- "space-unary-ops": "error",
- "spaced-comment": ["error", "always", {
- "line": {
- "markers": ["/"],
- "exceptions": ["-", "+"]
- },
- "block": {
- "markers": ["!"],
- "exceptions": ["*"],
- "balanced": true
- }
- }],
- "strict": [
- "warn",
- "function"
- ],
- "symbol-description": "off",
- "template-curly-spacing": "error",
- "template-tag-spacing": "error",
- "unicode-bom": "error",
- "valid-jsdoc": "warn",
- "vars-on-top": "warn",
- "wrap-iife": "error",
- "wrap-regex": "off",
- "yield-star-spacing": "error",
- "yoda": "error"
- }
-};
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.github/issue_template.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.github/issue_template.md
deleted file mode 100644
index 9ef70fb684..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.github/issue_template.md
+++ /dev/null
@@ -1,17 +0,0 @@
-Please review [Instructions for Reporting a Bug](https://github.com/jquery-form/form/blob/master/CONTRIBUTING.md#reporting-a-bug).
-
-### Description:
-
-### Expected Behavior:
-
-### Actual behavior:
-
-### Versions:
-**LoadJSON:**
-**jQuery:**
-**Browsers:**
-
-### Demonstration
-Link to demonstration of issue in [JSFiddle](https://jsfiddle.net/) or [CodePen](https://codepen.io/):
-
-### Steps to reproduce:
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.gitignore b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.gitignore
deleted file mode 100644
index a7930eb20a..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.gitignore
+++ /dev/null
@@ -1,298 +0,0 @@
-#################
-## Development Environment
-#################
-
-cache/
-deploy.txt
-.svn
-prepros.cfg
-
-# Node
-node_modules
-
-# SASS Cache
-*.scssc
-
-
-#############
-## OS generated files
-#############
-
-# Windows image file caches
-Thumbs.db
-ehthumbs.db
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Mac crap
-.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-
-
-#################
-## Compiled source
-#################
-
-*.com
-*.class
-*.dll
-*.exe
-*.o
-*.so
-
-
-#################
-## Packages
-#################
-
-# it's better to unpack these files and commit the raw source
-# git has its own built in compression methods
-*.7z
-*.dmg
-*.gz
-*.iso
-*.jar
-*.rar
-*.tar
-*.zip
-
-
-#################
-## Logs and databases
-#################
-
-*.log
-*.sql
-*.sqlite
-
-
-#################
-## SublimeText
-#################
-
-# cache files for sublime text
-*.tmlanguage.cache
-*.tmPreferences.cache
-*.stTheme.cache
-
-# workspace files are user-specific
-*.sublime-workspace
-
-# project files
-*.sublime-project
-# sftp configuration file
-sftp-config.json
-
-
-#################
-## Dreamweaver
-#################
-
-_notes
-*dwsync.xml
-_includes/spry
-
-
-#################
-## Eclipse
-#################
-
-*.pydevproject
-.project
-.metadata
-bin/
-tmp/
-*.tmp
-*.bak
-*.swp
-*~.nib
-local.properties
-.classpath
-.settings
-.loadpath
-
-# External tool builders
-.externalToolBuilders/
-
-# Locally stored "Eclipse launch configurations"
-*.launch
-
-# CDT-specific
-.cproject
-
-# PDT-specific
-.buildpath
-
-
-#################
-## Visual Studio
-#################
-
-## Ignore Visual Studio temporary files, build results, and
-## files generated by popular Visual Studio add-ons.
-
-# User-specific files
-*.suo
-*.user
-*.sln.docstates
-
-# Build results
-
-[Dd]ebug/
-[Rr]elease/
-x64/
-build/
-[Bb]in/
-[Oo]bj/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-
-*_i.c
-*_p.c
-*.ilk
-*.meta
-*.obj
-*.pch
-*.pdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.scc
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opensdf
-*.sdf
-*.cachefile
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# NCrunch
-*.ncrunch*
-.*crunch*.local.xml
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.Publish.xml
-*.pubxml
-*.publishproj
-
-# NuGet Packages Directory
-## TODO: If you have NuGet Package Restore enabled, uncomment the next line
-#packages/
-
-# Windows Azure Build Output
-csx
-*.build.csdef
-
-# Windows Store app package directory
-AppPackages/
-
-# Others
-sql/
-*.Cache
-ClientBin/
-[Ss]tyle[Cc]op.*
-~$*
-*~
-*.dbmdl
-*.[Pp]ublish.xml
-*.pfx
-*.publishsettings
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file to a newer
-# Visual Studio version. Backup files are not needed, because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-
-# SQL Server files
-App_Data/*.mdf
-App_Data/*.ldf
-
-
-#############
-## Python
-#############
-
-*.py[cod]
-
-# Packages
-*.egg
-*.egg-info
-build/
-eggs/
-parts/
-var/
-sdist/
-develop-eggs/
-.installed.cfg
-
-# Installer logs
-pip-log.txt
-
-# Unit test / coverage reports
-.coverage
-.tox
-
-#Translations
-*.mo
-
-#Mr Developer
-.mr.developer.cfg
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.travis.yml b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.travis.yml
deleted file mode 100644
index ae940cbe72..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/.travis.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-language: node_js
-node_js:
- - "8"
-script:
- - grunt test
-cache:
- bundler: true
- directories:
- - "node_modules" # NPM packages
-before_install:
- - if [[ `npm -v ` != 5* ]]; then npm i -g npm@5; fi
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CODE_OF_CONDUCT.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CODE_OF_CONDUCT.md
deleted file mode 100644
index 9c1c6216c4..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-In the interest of fostering an open and welcoming environment, we as
-contributors and maintainers pledge to making participation in our project and
-our community a harassment-free experience for everyone, regardless of age, body
-size, disability, ethnicity, gender identity and expression, level of experience,
-nationality, personal appearance, race, religion, or sexual identity and
-orientation.
-
-## Our Standards
-
-Examples of behavior that contributes to creating a positive environment
-include:
-
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
-
-Examples of unacceptable behavior by participants include:
-
-* The use of sexualized language or imagery and unwelcome sexual attention or
-advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic
- address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Our Responsibilities
-
-Project maintainers are responsible for clarifying the standards of acceptable
-behavior and are expected to take appropriate and fair corrective action in
-response to any instances of unacceptable behavior.
-
-Project maintainers have the right and responsibility to remove, edit, or
-reject comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct, or to ban temporarily or
-permanently any contributor for other behaviors that they deem inappropriate,
-threatening, offensive, or harmful.
-
-## Scope
-
-This Code of Conduct applies both within project spaces and in public spaces
-when an individual is representing the project or its community. Examples of
-representing a project or community include using an official project e-mail
-address, posting via an official social media account, or acting as an appointed
-representative at an online or offline event. Representation of a project may be
-further defined and clarified by project maintainers.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting the project team. All
-complaints will be reviewed and investigated and will result in a response that
-is deemed necessary and appropriate to the circumstances. The project team is
-obligated to maintain confidentiality with regard to the reporter of an incident.
-Further details of specific enforcement policies may be posted separately.
-
-Project maintainers who do not follow or enforce the Code of Conduct in good
-faith may face temporary or permanent repercussions as determined by other
-members of the project's leadership.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
-available at [http://contributor-covenant.org/version/1/4][version]
-
-[homepage]: http://contributor-covenant.org
-[version]: http://contributor-covenant.org/version/1/4/
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CONTRIBUTING.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CONTRIBUTING.md
deleted file mode 100644
index a603da09ad..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CONTRIBUTING.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# Contributing to jQuery Form
-
-Want to contribute to jQuery Form? That's great! Contributions are most welcome!
-Here are a couple of guidelines that will help you contribute. Before we get started: Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md) to ensure that this project is a welcoming place for **everyone** to contribute to. By participating in this project you agree to abide by its terms.
-
-#### Overview
-
-* [Contribution workflow](#contribution-workflow)
-* [Testing](#testing)
-* [Reporting a bug](#reporting-a-bug)
-* [Contributing to an existing issue](#contributing-to-an-existing-issue)
-* [Feature Requests](#feature-requests)
-* [Additional info](#additional-info)
-
-## Contribution workflow
-
-1. Fork the repository in GitHub with the `Fork` button.
-2. Switch to a new branch (ie. `new-feature`), and work from there:
- `git checkout -b new-feature`
-3. Make your feature addition or bug fix.
-4. After setting up your [testing enviroment](#testing), run the tests:
-
- ```shell
- grunt test
- ```
-
- If the tests all pass, move on to step 5.
-
-5. Send a pull request (PR). Bonus points for topic branches.
- * Please make sure all of your commits are atomic (one feature per commit).
- * Use sensible commit messages.
- * Always write a clear log message for your commits. One-line messages are fine for small changes, but bigger changes should look like this:
- ```shell
- $ git commit -m "A brief summary of the commit"
- >
- > A paragraph describing what changed and its impact."
- ```
- * If your PR fixes a separate issue number, include it in the commit message.
-
-### Things to keep in mind
-
-* Smaller PRs are likely to be merged more quickly than bigger changes.
-* If it is a useful PR, it **will** get merged in eventually.
-* This project is using [Semantic Versioning 2.0.0](http://semver.org/)
-
-## Testing
-
-jQuery Form uses [Node.js](https://nodejs.org/), [Grunt](https://gruntjs.com/), [ESLint](http://eslint.org/), [Mocha](https://mochajs.org/), and [Chai](http://chaijs.com/) to automate the building and validation of source code. Here is how to set that up:
-
-1. Get [Node.js](https://nodejs.org/) (includes [NPM](https://www.npmjs.com/), necessary for the next step)
-2. Install Grunt CLI:
-
- ```shell
- npm install -g grunt-cli
- ```
-
-3. Install dependencies:
-
- ```shell
- npm install
- ```
-
-4. Run the tests by opening `test/test.html` in your web browser or using Grunt:
-
- ```shell
- grunt test
- ```
-
-## Reporting a bug
-
-So you've found a bug, and want to help us fix it? Before filing a bug report, please double-check the bug hasn't already been reported. You can do so [on our issue tracker](https://github.com/jquery-form/form/issues?q=is%3Aopen+is%3Aissue). If something hasn't been raised, you can go ahead and create a new issue with the following information:
-
-* Which version of the plugin are you using?
-* Which version of the jQuery library are you using?
-* What browsers (and versions) have you tested in?
-* How can the error be reproduced?
-* If possible, include a link to a [JSFiddle](https://jsfiddle.net/) or [CodePen](https://codepen.io/) example of the error.
-
-If you want to be really thorough, there is a great overview on Stack Overflow of [what you should consider when reporting a bug](https://stackoverflow.com/questions/240323/how-to-report-bugs-the-smart-way).
-
-It goes without saying that you're welcome to help investigate further and/or find a fix for the bug. If you want to do so, just mention it in your bug report and offer your help!
-
-## Contributing to an existing issue
-
-### Finding an issue to work on
-
-We've got a few open issues and are always glad to get help on that front. You can view the list of issues [here](https://github.com/jquery-form/form/issues). (Here's [a good article](https://medium.freecodecamp.com/finding-your-first-open-source-project-or-bug-to-work-on-1712f651e5ba) on how to find your first bug to fix).
-
-Before getting to work, take a look at the issue and at the conversation around it. Has someone already offered to work on the issue? Has someone been assigned to the issue? If so, you might want to check with them to see whether they're still actively working on it.
-
-If the issue is a few months old, it might be a good idea to write a short comment to double-check that the issue or feature is still a valid one to jump on.
-
-Feel free to ask for more detail on what is expected: are there any more details or specifications you need to know?
-And if at any point you get stuck: don't hesitate to ask for help.
-
-### Making your contribution
-
-We've outlined the contribution workflow [here](#contribution-workflow). If you're a first-timer, don't worry! GitHub has a ton of guides to help you through your first pull request: You can find out more about pull requests [here](https://help.github.com/articles/about-pull-requests/) and about creating a pull request [here](https://help.github.com/articles/creating-a-pull-request/).
-
-## Feature Requests
-
-* You can _request_ a new feature by [submitting an issue](https://github.com/jquery-form/form/issues).
-* If you would like to _implement_ a new feature:
- * For a **Major Feature**, first open an issue and outline your proposal so that it can be discussed. This will also allow us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.
- * **Small Features** can be crafted and directly [submitted as a Pull Request](#contribution-workflow).
-
-## Additional info
-
-Especially if you're a newcomer to Open Source and you've found some little bumps along the way while contributing, we recommend you write about them. [Here](https://medium.freecodecamp.com/new-contributors-to-open-source-please-blog-more-920af14cffd)'s a great article about why writing about your experience is important; this will encourage other beginners to try their luck at Open Source, too!
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CONTRIBUTORS.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CONTRIBUTORS.md
deleted file mode 100644
index 9995b4fdf9..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/CONTRIBUTORS.md
+++ /dev/null
@@ -1,10 +0,0 @@
-#Contributors
-
-###Copyright 2017 Kevin Morris
-Continuing Work [jQuery Form](https://github.com/jquery-form/form/) by Kevin Morris
-Project Home: [github.com/jquery-form/form](https://github.com/jquery-form/form/)
-
-###Copyright 2006-2014 Mike Alsup
-Original work [jQuery Form](https://github.com/malsup/form/) by Mike Alsup
-Project Home: [jquery.malsup.com/form](http://jquery.malsup.com/form/)
-The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX.
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/Gruntfile.js b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/Gruntfile.js
deleted file mode 100644
index a8916fb87c..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/Gruntfile.js
+++ /dev/null
@@ -1,69 +0,0 @@
-module.exports = function(grunt) {
- grunt.initConfig({
- pkg: grunt.file.readJSON('package.json'),
- meta: {
- banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd HH:MM:ss") %> */'
- },
-
- githooks: {
- options: {
- hashbang: '#!/bin/sh',
- template: 'install/template/shell.hb',
- startMarker: '# GRUNT-GITHOOKS START',
- endMarker: '# GRUNT-GITHOOKS END'
- },
- all: {
- 'pre-commit': 'pre-commit'
- }
- },
-
- eslint: {
- options: {
- quiet: true
- },
- target: ['src/**/*.js']
- },
-
- mocha: {
- all: {
- src: ['test/*.html'],
- },
- options: {
- run: true
- }
- },
-
- // Minifies JS files
- uglify: {
- options: {
- output: {
- comments: /^!|@preserve|@license|@cc_on/i
- },
- sourceMap: true,
- footer: '\n'
- },
- dist: {
- files: [{
- expand: true,
- cwd: 'src',
- src: ['*.js','!*.min.js'],
- dest: 'dist',
- ext: '.min.js',
- extDot: 'last'
- }]
- }
- }
- });
-
- // Load tasks
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-mocha');
- grunt.loadNpmTasks('grunt-eslint');
- grunt.loadNpmTasks('grunt-githooks');
-
- // Default task.
- grunt.registerTask('lint', [ 'eslint' ]);
- grunt.registerTask('test', [ 'lint', 'mocha' ]);
- grunt.registerTask('pre-commit', [ 'test' ]);
- grunt.registerTask('default', [ 'test', 'uglify' ]);
-};
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/LICENSE b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/LICENSE
deleted file mode 100644
index 4362b49151..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/LICENSE
+++ /dev/null
@@ -1,502 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/LICENSE-MIT b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/LICENSE-MIT
deleted file mode 100644
index bade8ab70f..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/LICENSE-MIT
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2017 jquery-form
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/README.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/README.md
deleted file mode 100644
index 6c80b49d2d..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/README.md
+++ /dev/null
@@ -1,241 +0,0 @@
-# jQuery Form [](https://travis-ci.org/jquery-form/form)
-
-## Overview
-The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX. The main methods, ajaxForm and ajaxSubmit, gather information from the form element to determine how to manage the submit process. Both of these methods support numerous options which allows you to have full control over how the data is submitted.
-
-No special markup is needed, just a normal form. Submitting a form with AJAX doesn't get any easier than this!
-
-## Community
-Want to contribute to jQuery Form? Awesome! See [CONTRIBUTING](CONTRIBUTING.md) for more information.
-
-### Code of Conduct
-Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md) to ensure that this project is a welcoming place for **everyone** to contribute to. By participating in this project you agree to abide by its terms.
-
-## Requirements
-Requires jQuery 1.7.2 or later. Compatible with jQuery 2.x.x and 3.x.x.
-
-## Download
-* **Development:** [src/jquery.form.js
-](https://github.com/jquery-form/form/blob/master/src/jquery.form.js)
-* **Production/Minified:** [dist/jquery.form.min.js
-](https://github.com/jquery-form/form/blob/master/dist/jquery.form.min.js)
-
-### CDN
-```html
-
-```
-or
-```html
-
-```
-
----
-
-## API
-
-### jqXHR
-The jqXHR object is stored in element data -cache with the jqxhr key after each ajaxSubmit
-call. It can be accessed like this:
-
-````javascript
-var form = $('#myForm').ajaxSubmit({ /* options */ });
-var xhr = form.data('jqxhr');
-
-xhr.done(function() {
-...
-});
-````
-
-### ajaxForm( options )
-Prepares a form to be submitted via AJAX by adding all of the necessary event listeners. It does **not** submit the form. Use `ajaxForm` in your document's `ready` function to prepare existing forms for AJAX submission, or with the `delegation` option to handle forms not yet added to the DOM.
-Use ajaxForm when you want the plugin to manage all the event binding for you.
-
-````javascript
-// prepare all forms for ajax submission
-$('form').ajaxForm({
- target: '#myResultsDiv'
-});
-````
-
-### ajaxSubmit( options )
-Immediately submits the form via AJAX. In the most common use case this is invoked in response to the user clicking a submit button on the form.
-Use ajaxSubmit if you want to bind your own submit handler to the form.
-
-````javascript
-// bind submit handler to form
-$('form').on('submit', function(e) {
- e.preventDefault(); // prevent native submit
- $(this).ajaxSubmit({
- target: 'myResultsDiv'
- })
-});
-````
-
----
-
-## Options
-**Note:** All standard [$.ajax](http://api.jquery.com/jQuery.ajax) options can be used.
-
-### beforeSerialize
-Callback function invoked prior to form serialization. Provides an opportunity to manipulate the form before its values are retrieved. Returning `false` from the callback will prevent the form from being submitted. The callback is invoked with two arguments: the jQuery wrapped form object and the options object.
-
-````javascript
-beforeSerialize: function($form, options) {
- // return false to cancel submit
-}
-````
-
-### beforeSubmit
-Callback function invoked prior to form submission. Returning `false` from the callback will prevent the form from being submitted. The callback is invoked with three arguments: the form data in array format, the jQuery wrapped form object, and the options object.
-
-````javascript
-beforeSubmit: function(arr, $form, options) {
- // form data array is an array of objects with name and value properties
- // [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
- // return false to cancel submit
-}
-````
-
-### filtering
-Callback function invoked before processing fields. This provides a way to filter elements.
-
-````javascript
-filtering: function(el, index) {
- if ( !$(el).hasClass('ignore') ) {
- return el;
- }
-}
-````
-
-### clearForm
-Boolean flag indicating whether the form should be cleared if the submit is successful
-
-### data
-An object containing extra data that should be submitted along with the form.
-
-````
-data: { key1: 'value1', key2: 'value2' }
-````
-
-### dataType
-Expected data type of the response. One of: null, 'xml', 'script', or 'json'. The dataType option provides a means for specifying how the server response should be handled. This maps directly to jQuery's dataType method. The following values are supported:
-
-* 'xml': server response is treated as XML and the 'success' callback method, if specified, will be passed the responseXML value
-* 'json': server response will be evaluted and passed to the 'success' callback, if specified
-* 'script': server response is evaluated in the global context
-
-### delegation
-true to enable support for event delegation
-*requires jQuery v1.7+*
-
-````javascript
-// prepare all existing and future forms for ajax submission
-$('form').ajaxForm({
- delegation: true
-});
-````
-
-### error
-Callback function to be invoked upon error.
-
-### forceSync
-Only applicable when explicity using the iframe option or when uploading files on browses that don't support XHR2.
-Set to `true` to remove the short delay before posting form when uploading files. The delay is used to allow the browser to render DOM updates prior to performing a native form submit. This improves usability when displaying notifications to the user, such as "Please Wait..."
-
-### iframe
-Boolean flag indicating whether the form should *always* target the server response to an iframe instead of leveraging XHR when possible.
-
-### iframeSrc
-String value that should be used for the iframe's src attribute when an iframe is used.
-
-### iframeTarget
-Identifies the iframe element to be used as the response target for file uploads. By default, the plugin will create a temporary iframe element to capture the response when uploading files. This options allows you to use an existing iframe if you wish. When using this option the plugin will make no attempt at handling the response from the server.
-
-### method
-The HTTP method to use for the request (e.g. 'POST', 'GET', 'PUT').
-
-### replaceTarget
-Optionally used along with the the target option. Set to true if the target should be replaced or false if only the target contents should be replaced.
-
-### resetForm
-Boolean flag indicating whether the form should be reset if the submit is successful
-
-### semantic
-Boolean flag indicating whether data must be submitted in strict semantic order (slower). Note that the normal form serialization is done in semantic order with the exception of input elements of `type="image"`. You should only set the semantic option to true if your server has strict semantic requirements and your form contains an input element of `type="image"`.
-
-### success
-Callback function to be invoked after the form has been submitted. If a 'success' callback function is provided it is invoked after the response has been returned from the server. It is passed the following standard jQuery arguments:
-
-1. `data`, formatted according to the dataType parameter or the dataFilter callback function, if specified
-2. `textStatus`, string
-3. `jqXHR`, object
-4. `$form` jQuery object containing form element
-
-### target
-Identifies the element(s) in the page to be updated with the server response. This value may be specified as a jQuery selection string, a jQuery object, or a DOM element.
-
-### type
-The HTTP method to use for the request (e.g. 'POST', 'GET', 'PUT').
-An alias for `method` option. Overridden by the `method` value if both are present.
-
-### uploadProgress
-Callback function to be invoked with upload progress information (if supported by the browser). The callback is passed the following arguments:
-
-1. event; the browser event
-2. position (integer)
-3. total (integer)
-4. percentComplete (integer)
-
-### url
-URL to which the form data will be submitted.
-
----
-
-## Utility Methods
-### formSerialize
-Serializes the form into a query string. This method will return a string in the format: `name1=value1&name2=value2`
-
-````javascript
-var queryString = $('#myFormId').formSerialize();
-````
-
-### fieldSerialize
-Serializes field elements into a query string. This is handy when you need to serialize only part of a form. This method will return a string in the format: `name1=value1&name2=value2`
-
-````javascript
-var queryString = $('#myFormId .specialFields').fieldSerialize();
-````
-
-### fieldValue
-Returns the value(s) of the element(s) in the matched set in an array. This method always returns an array. If no valid value can be determined the array will be empty, otherwise it will contain one or more values.
-
-### resetForm
-Resets the form to its original state by invoking the form element's native DOM method.
-
-### clearForm
-Clears the form elements. This method emptys all of the text inputs, password inputs and textarea elements, clears the selection in any select elements, and unchecks all radio and checkbox inputs. It does *not* clear hidden field values.
-
-### clearFields
-Clears selected field elements. This is handy when you need to clear only a part of the form.
-
----
-
-## File Uploads
-The Form Plugin supports use of [XMLHttpRequest Level 2]("http://www.w3.org/TR/XMLHttpRequest/") and [FormData](https://developer.mozilla.org/en/XMLHttpRequest/FormData) objects on browsers that support these features. As of today (March 2012) that includes Chrome, Safari, and Firefox. On these browsers (and future Opera and IE10) files uploads will occur seamlessly through the XHR object and progress updates are available as the upload proceeds. For older browsers, a fallback technology is used which involves iframes. [More Info](http://malsup.com/jquery/form/#file-upload)
-
----
-
-## Contributors
-This project has transferred from [github.com/malsup/form](https://github.com/malsup/form/), courtesy of [Mike Alsup](https://github.com/malsup).
-See [CONTRIBUTORS](CONTRIBUTORS.md) for details.
-
-## License
-
-This project is dual licensed under the LGPLv2.1 (or later) or MIT licenses:
-
-* [GNU Lesser General Public License v2.1](LICENSE)
-* [MIT](LICENSE-MIT)
-
----
-
-Additional documentation and examples for version 3.51- at: [http://malsup.com/jquery/form/](http://malsup.com/jquery/form/)
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/_config.yml b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/_config.yml
deleted file mode 100644
index 259a24e4d2..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/_config.yml
+++ /dev/null
@@ -1 +0,0 @@
-theme: jekyll-theme-tactile
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/bower.json b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/bower.json
deleted file mode 100644
index a094bc736c..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/bower.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "name": "jquery-form",
- "description": "The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX.",
- "main": "src/jquery.form.js",
- "moduleType": [ "globals", "amd", "node" ],
- "license": "(LGPL-2.1+ OR MIT)",
- "ignore": [
- "README.md",
- "composer.json",
- "package.json"
- ],
- "keywords": [ "jquery", "ajax", "jquery-plugin", "json", "json-form", "html-form", "form", "jquery-form" ],
- "authors": [
- { "name": "Kevin Morris" },
- { "name": "Mike Alsup" }
- ],
- "homepage": "https://github.com/jquery-form/form",
- "repository": {
- "type": "git",
- "url": "https://github.com/jquery-form/form.git"
- },
- "dependencies": {
- "jquery": ">=1.7.2"
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/composer.json b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/composer.json
deleted file mode 100644
index f5bd7ed0ac..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/composer.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "jquery-form/form",
- "description": "The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX.",
- "keywords": [ "jquery", "ajax", "jquery-plugin", "json", "json-form", "html-form", "form", "jquery-form" ],
- "homepage": "https://github.com/jquery-form/form",
- "license": "(LGPL-2.1+ OR MIT)",
- "authors": [
- { "name": "Kevin Morris" },
- { "name": "Mike Alsup" }
- ],
- "support": {
- "issues": "https://github.com/jquery-form/form/issues"
- },
- "require": {
- "components/jquery": ">=1.7.2"
- },
- "extra": {
- "component": {
- "scripts": [
- "src/jquery.form.js"
- ],
- "shim": {
- "deps": [
- "jquery"
- ]
- }
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/dist/jquery.form.min.js b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/dist/jquery.form.min.js
deleted file mode 100644
index 9a447f7cc8..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/dist/jquery.form.min.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*!
- * jQuery Form Plugin
- * version: 4.2.2
- * Requires jQuery v1.7.2 or later
- * Project repository: https://github.com/jquery-form/form
-
- * Copyright 2017 Kevin Morris
- * Copyright 2006 M. Alsup
-
- * Dual licensed under the LGPL-2.1+ or MIT licenses
- * https://github.com/jquery-form/form#license
-
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- */
-!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=function(t,r){return void 0===r&&(r="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(r),r}:e(jQuery)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).closest("form").ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=r.form;if(i.clk=r,"image"===r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n=/\r?\n/g,i={};i.fileapi=void 0!==e(' ').get(0).files,i.formdata=void 0!==window.FormData;var o=!!e.fn.prop;e.fn.attr2=function(){if(!o)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t,r,n,s){function u(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;a',k).val(f.extraData[c].value).appendTo(w)[0]):u.push(e(' ',k).val(f.extraData[c]).appendTo(w)[0]));f.iframeTarget||h.appendTo(D),v.attachEvent?v.attachEvent("onload",s):v.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(e){document.createElement("form").submit.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",o),r?w.setAttribute("target",r):p.removeAttr("target"),e(u).remove()}}function s(t){if(!x.aborted&&!X){if((O=n(v))||(a("cannot access response document"),t=L),t===A&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t===L&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(O&&O.location.href!==f.iframeSrc||T){v.detachEvent?v.detachEvent("onload",s):v.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"===f.dataType||O.XMLDocument||e.isXMLDoc(O);if(a("isXml="+o),!o&&window.opera&&(null===O.body||!O.body.innerHTML)&&--C)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=O.body?O.body:O.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=O.XMLDocument?O.XMLDocument:O,o&&(f.dataType="xml"),x.getResponseHeader=function(e){return{"content-type":f.dataType}[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(f.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||f.textarea){var p=O.getElementsByTagName("textarea")[0];if(p)x.responseText=p.value,x.status=Number(p.getAttribute("status"))||x.status,x.statusText=p.getAttribute("statusText")||x.statusText;else if(l){var m=O.getElementsByTagName("pre")[0],g=O.getElementsByTagName("body")[0];m?x.responseText=m.textContent?m.textContent:m.innerText:g&&(x.responseText=g.textContent?g.textContent:g.innerText)}}else"xml"===c&&!x.responseXML&&x.responseText&&(x.responseXML=q(x.responseText));try{M=N(x,c,f)}catch(e){i="parsererror",x.error=r=e||i}}catch(e){a("error caught: ",e),i="error",x.error=r=e||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(f.success&&f.success.call(f.context,M,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,f])):i&&(void 0===r&&(r=x.statusText),f.error&&f.error.call(f.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,f,r])),d&&e.event.trigger("ajaxComplete",[x,f]),d&&!--e.active&&e.event.trigger("ajaxStop"),f.complete&&f.complete.call(f.context,x,i),X=!0,f.timeout&&clearTimeout(j),setTimeout(function(){f.iframeTarget?h.attr("src",f.iframeSrc):h.remove(),x.responseXML=null},100)}}}var u,c,f,d,m,h,v,x,y,b,T,j,w=p[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(c=0;c ',k)).css({position:"absolute",top:"-1000px",left:"-1000px"}),v=h[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{v.contentWindow.document.execCommand&&v.contentWindow.document.execCommand("Stop")}catch(e){}h.attr("src",f.iframeSrc),x.error=r,f.error&&f.error.call(f.context,x,r,t),d&&e.event.trigger("ajaxError",[x,f,r]),f.complete&&f.complete.call(f.context,x,r)}},(d=f.global)&&0==e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,f]),f.beforeSend&&!1===f.beforeSend.call(f.context,x,f))return f.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;(y=w.clk)&&(b=y.name)&&!y.disabled&&(f.extraData=f.extraData||{},f.extraData[b]=y.value,"image"===y.type&&(f.extraData[b+".x"]=w.clk_x,f.extraData[b+".y"]=w.clk_y));var A=1,L=2,F=e("meta[name=csrf-token]").attr("content"),E=e("meta[name=csrf-param]").attr("content");E&&F&&(f.extraData=f.extraData||{},f.extraData[E]=F),f.forceSync?i():setTimeout(i,10);var M,O,X,C=50,q=e.parseXML||function(e,t){return window.ActiveXObject?((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!==t.documentElement.nodeName?t:null},_=e.parseJSON||function(e){return window.eval("("+e+")")},N=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i=("xml"===r||!r)&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&(("json"===r||!r)&&n.indexOf("json")>=0?o=_(o):("script"===r||!r)&&n.indexOf("javascript")>=0&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var l,f,d,p=this;"function"==typeof t?t={success:t}:"string"==typeof t||!1===t&&arguments.length>0?(t={url:t,data:r,dataType:n},"function"==typeof s&&(t.success=s)):void 0===t&&(t={}),l=t.method||t.type||this.attr2("method"),(d=(d="string"==typeof(f=t.url||this.attr2("action"))?e.trim(f):"")||window.location.href||"")&&(d=(d.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:d,success:e.ajaxSettings.success,type:l||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&!1===t.beforeSerialize(this,t))return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var h=t.traditional;void 0===h&&(h=e.ajaxSettings.traditional);var v,g=[],x=this.formToArray(t.semantic,g,t.filtering);if(t.data){var y=e.isFunction(t.data)?t.data(x):t.data;t.extraData=y,v=e.param(y,h)}if(t.beforeSubmit&&!1===t.beforeSubmit(x,this,t))return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[x,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var b=e.param(x,h);v&&(b=b?b+"&"+v:v),"GET"===t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+b,t.data=null):t.data=b;var T=[];if(t.resetForm&&T.push(function(){p.resetForm()}),t.clearForm&&T.push(function(){p.clearForm(t.includeHidden)}),!t.dataType&&t.target){var j=t.success||function(){};T.push(function(r,a,n){var i=arguments,o=t.replaceTarget?"replaceWith":"html";e(t.target)[o](r).each(function(){j.apply(this,i)})})}else t.success&&(e.isArray(t.success)?e.merge(T,t.success):T.push(t.success));if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=T.length;i0,D="multipart/form-data",A=p.attr("enctype")===D||p.attr("encoding")===D,L=i.fileapi&&i.formdata;a("fileAPI :"+L);var F,E=(k||A)&&!L;!1!==t.iframe&&(t.iframe||E)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){F=c(x)}):F=c(x):F=(k||A)&&L?function(r){for(var a=new FormData,n=0;n0)&&(n={url:n,data:i,dataType:o},"function"==typeof s&&(n.success=s)),n=n||{},n.delegation=n.delegation&&e.isFunction(e.fn.on),!n.delegation&&0===this.length){var u={s:this.selector,c:this.context};return!e.isReady&&u.s?(a("DOM not ready, queuing ajaxForm"),e(function(){e(u.s,u.c).ajaxForm(n)}),this):(a("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this)}return n.delegation?(e(document).off("submit.form-plugin",this.selector,t).off("click.form-plugin",this.selector,r).on("submit.form-plugin",this.selector,n,t).on("click.form-plugin",this.selector,n,r),this):this.ajaxFormUnbind().on("submit.form-plugin",n,t).on("click.form-plugin",n,r)},e.fn.ajaxFormUnbind=function(){return this.off("submit.form-plugin click.form-plugin")},e.fn.formToArray=function(t,r,a){var n=[];if(0===this.length)return n;var o,s=this[0],u=this.attr("id"),c=t||void 0===s.elements?s.getElementsByTagName("*"):s.elements;if(c&&(c=e.makeArray(c)),u&&(t||/(Edge|Trident)\//.test(navigator.userAgent))&&(o=e(':input[form="'+u+'"]').get()).length&&(c=(c||[]).concat(o)),!c||!c.length)return n;e.isFunction(a)&&(c=e.map(c,a));var l,f,d,p,m,h,v;for(l=0,h=c.length;l
-
-
-
-
-
-
-
-
- {{ site.title | default: site.github.repository_name }} by {{ site.github.owner_name }}
-
-
-
-
-
-
-
- {{ site.title | default: site.github.repository_name }}
- {{ site.description | default: site.github.project_tagline }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {% if site.google_analytics %}
-
- {% endif %}
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/_sass/style.scss b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/_sass/style.scss
deleted file mode 100644
index 245afffdc8..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/_sass/style.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-.inner {
- width: 700px;
-}
-nav {
- margin: 0;
- padding: 0;
- text-align: center;
-}
-nav ul {
- list-style: none;
-}
-nav li {
- display: inline;
-}
-nav li.active {
- font-weight: bold;
-}
-nav a {
- display: inline-block;
- padding: 2px 5px;
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/api.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/api.md
deleted file mode 100644
index cc4ee9b515..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/api.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
----
-
-## API
-The Form Plugin API provides several methods that allow you to easily manage form data and form submission.
-
-### ajaxForm
-Prepares a form to be submitted via AJAX by adding all of the necessary event listeners. It does **not** submit the form. Use `ajaxForm` in your document's `ready` function to prepare your form(s) for AJAX submission. `ajaxForm` takes zero or one argument. The single argument can be either a callback function or an [Options Object](http://malsup.com/jquery/form/#options-object).
-Chainable: Yes.
-
-**Note:** You can pass any of the standard [$.ajax settings](https://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings) to ajaxForm
-
-```javascript
-$(function() {
- $('#myFormId').ajaxForm();
-});
-```
-
-
-### ajaxSubmit
-Immediately submits the form via AJAX. In the most common use case this is invoked in response to the user clicking a submit button on the form. `ajaxSubmit` takes zero or one argument. The single argument can be either a callback function or an [Options Object](http://malsup.com/jquery/form/#options-object).
-Chainable: Yes.
-
-**Note:** You can pass any of the standard [$.ajax settings](https://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings) to ajaxSubmit.
-
-```javascript
-// attach handler to form's submit event
-$('#myFormId').submit(function() {
- // submit the form
- $(this).ajaxSubmit();
- // return false to prevent normal browser submit and page navigation
- return false;
-});
-```
-
-
-### formSerialize
-Serializes the form into a query string. This method will return a string in the format: `name1=value1&name2=value2`
-Chainable: No, this method returns a String.
-
-```javascript
-var queryString = $('#myFormId').formSerialize();
-// the data could now be submitted using $.get, $.post, $.ajax, etc
-$.post('myscript.php', queryString);
-```
-
-
-### fieldSerialize
-Serializes field elements into a query string. This is handy when you need to serialize only part of a form. This method will return a string in the format: `name1=value1&name2=value2`
-Chainable: No, this method returns a String.
-
-```javascript
-var queryString = $('#myFormId .specialFields').fieldSerialize();
-```
-
-
-### fieldValue
-Returns the value(s) of the element(s) in the matched set in an array. As of version .91, this method **always** returns an array. If no valid value can be determined the array will be empty, otherwise it will contain one or more values.
-Chainable: No, this method returns an array.
-
-```javascript
-// get the value of the password input
-var value = $('#myFormId :password').fieldValue();
-alert('The password is: ' + value[0]);
-```
-
-
-### resetForm
-Resets the form to its original state by invoking the form element's native DOM method.
-Chainable: Yes.
-
-```javascript
-$('#myFormId').resetForm();
-```
-
-
-### clearForm
-Clears the form elements. This method emptys all of the text inputs, password inputs and textarea elements, clears the selection in any select elements, and unchecks all radio and checkbox inputs.
-Chainable: Yes.
-
-```javascript
-$('#myFormId').clearForm();
-```
-
-
-### clearFields
-Clears field elements. This is handy when you need to clear only a part of the form.
-Chainable: Yes.
-
-```javascript
-$('#myFormId .specialFields').clearFields();
-```
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/assets/css/style.scss b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/assets/css/style.scss
deleted file mode 100644
index 2bf8eaded6..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/assets/css/style.scss
+++ /dev/null
@@ -1,5 +0,0 @@
----
----
-
-@import "jekyll-theme-tactile";
-@import "style";
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/faq.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/faq.md
deleted file mode 100644
index ea01ea8ca1..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/faq.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
----
-
-## Frequently Asked Questions
-#### Does jQuery Form Plugin have any dependencies?
-The only dependency is jQuery itself.
-
-#### Which versions of jQuery is jQuery Form Plugin compatible with?
-jQuery Form Plugin is compatible with jQuery v1.7.2 and later, including jQuery 2.x.x and 3.x.x.
-
-#### Is jQuery Form Plugin fast? Does it serialize forms accurately?
-Yes! See our [comparison page](http://malsup.com/jquery/form/comp/) for a look at how jQuery Form Plugin compares to other libraries (including Prototype and dojo).
-
-#### What is the easiet way to use jQuery Form Plugin?
-The `ajaxForm` method provides the simplest way to enable your HTML form to use AJAX. It's the one-stop-shopping method for preparing forms.
-
-#### What is the difference between `ajaxForm` and `ajaxSubmit`?
-There are two main differences between these methods:
-1. `ajaxSubmit` submits the form, `ajaxForm` does not. When you invoke `ajaxSubmit` it immediately serializes the form data and sends it to the server. When you invoke `ajaxForm` it adds the necessary event listeners to the form so that it can detect when the form is submitted by the user. When this occurs `ajaxSubmit` is called for you.
-2. When using `ajaxForm` the submitted data will include the name and value of the submitting element (or its click coordinates if the submitting element is an image).
-
-#### How can I cancel a form submit?
-You can prevent a form from being submitted by adding a 'beforeSubmit' callback function and returning false from that function. See the [Code Samples](http://malsup.com/jquery/form/#ajaxForm) page for an example.
-
-#### Is there a unit test suite for jQuery Form Plugin?
-Yes! jQuery Form Plugin has an extensive set of tests that are used to validate its functionality.
-[Run unit tests](http://malsup.com/jquery/form/test/)
-
-#### Does jQuery Form Plugin support file uploads?
-Yes!
-
-#### Why aren't all my input values posted?
-jQuery Form serialization adheres closely to the HTML spec. Only [successful controls](https://www.w3.org/TR/html5/forms.html#constructing-form-data-set) are valid for submission.
-
-#### How do I display upload progress information?
-[Demo](view-source:malsup.com/jquery/form/progress.html)
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/index.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/index.md
deleted file mode 100644
index 0f9d3ef263..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/index.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
----
-
-## Getting Started
-### Overview
-The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX. The main methods, `ajaxForm` and `ajaxSubmit`, gather information from the form element to determine how to manage the submit process. Both of these methods support numerous options which allows you to have full control over how the data is submitted. Submitting a form with AJAX doesn't get any easier than this!
-
-### Quick Start Guide
-1. Add a form to your page. Just a normal form, no special markup required:
- ```html
-
- Name:
- Comment:
-
-
- ```
-2. Include jQuery and the Form Plugin external script files and a short script to initialize the form when the DOM is ready:
- ```html
-
-
-
-
-
-
-
- ```
-
-**That's it!**
-
-When this form is submitted the _name_ and _comment_ fields will be posted to _comment.php_. If the server returns a success status then the user will see a "Thank you" message.
-
-*[AJAX]: Asynchronous JavaScript and XML
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/options.md b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/options.md
deleted file mode 100644
index 993d5e6649..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/docs/options.md
+++ /dev/null
@@ -1,153 +0,0 @@
----
----
-
-## ajaxForm and ajaxSubmit Options
-Both `ajaxForm` and `ajaxSubmit` support numerous options which can be provided using plain JavaScript `options` object containing any of the options below:
-**Note:** Aside from the options listed below, you can also pass any of the standard [$.ajax settings](https://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings) to ajaxForm and ajaxSubmit.
-
-
-### beforeSerialize
-Default: `null`
-Callback function to be invoked before the form is serialized. This provides an opportunity to manipulate the form before it's values are retrieved. The `beforeSerialize` function is invoked with two arguments: the jQuery object for the form, and the Options Object passed into ajaxForm/ajaxSubmit.
-
-```javascript
-beforeSerialize: function($form, options) {
- // return false to cancel submit
-}
-```
-
-
-### beforeSubmit
-Default: `null`
-Callback function to be invoked before the form is submitted. The 'beforeSubmit' callback can be provided as a hook for running pre-submit logic or for validating the form data. If the 'beforeSubmit' callback returns false then the form will not be submitted. The 'beforeSubmit' callback is invoked with three arguments: the form data in array format, the jQuery object for the form, and the Options Object passed into ajaxForm/ajaxSubmit.
-
-```javascript
-beforeSubmit: function(arr, $form, options) {
- // The array of form data takes the following form:
- // [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
-
- // return false to cancel submit
-}
-```
-
-
-### clearForm
-Default: `null`
-Boolean flag indicating whether the form should be cleared if the submit is successful
-
-
-### data
-Default: `{}`
-An object containing extra data that should be submitted along with the form.
-
-```javascript
-data: { key1: 'value1', key2: 'value2' }
-```
-
-
-### dataType
-Default: `null`
-Expected data type of the response. One of: null, 'xml', 'script', or 'json'. The `dataType` option provides a means for specifying how the server response should be handled. This maps directly to the `jQuery.httpData` method. The following values are supported:
-
-**'xml'**: if dataType == 'xml' the server response is treated as XML and the 'success' callback method, if specified, will be passed the responseXML value
-
-**'json'**: if dataType == 'json' the server response will be evaluted and passed to the 'success' callback, if specified
-
-**'script'**: if dataType == 'script' the server response is evaluated in the global context
-
-
-### error
-Callback function to be invoked upon error.
-
-
-### forceSync
-Default: `false`
-Boolean value. Set to true to remove short delay before posting form when uploading files (or using the iframe option). The delay is used to allow the browser to render DOM updates prior to performing a native form submit. This improves usability when displaying notifications to the user, such as "Please Wait…" **(version added: 2.38)**
-
-
-### iframe
-Default: `false`
-Boolean flag indicating whether the form should always target the server response to an iframe. This is useful in conjuction with file uploads. See the _File Uploads_ documentation on the [Code Samples](#code-samples) page for more info.
-
-
-### iframeSrc
-Default: `about:blank`
-Default value for HTTPS pages: `javascript:false`
-String value that should be used for the iframe's src attribute when/if an iframe is used.
-
-
-### iframeTarget
-Default: `null`
-Identifies the iframe element to be used as the response target for file uploads. By default, the plugin will create a temporary iframe element to capture the response when uploading files. This options allows you to use an existing iframe if you wish. When using this option the plugin will make no attempt at handling the response from the server. **(version added: 2.76)**
-
-
-### method
-Default: value of form's `method` attribute (or `GET` if none found)
-The HTTP method to use for the request (e.g. 'POST', 'GET', 'PUT'). **(version added: 4.2.0)**
-
-
-### replaceTarget
-Default: `false`
-Optionally used along with the the [`target`](#target) option. Set to `true` if the target should be replaced or `false` if only the target _contents_ should be replaced. **(version added: 2.43)**
-
-### resetForm
-Default: `null`
-Boolean flag indicating whether the form should be reset if the submit is successful
-
-
-### semantic
-Default: `false`
-Boolean flag indicating whether data must be submitted in strict semantic order (slower). Note that the normal form serialization is done in semantic order with the exception of input elements of `type="image"`.
-**Note:** You should _only_ set the `semantic` option to `true` if your server has strict semantic requirements **and** your form contains an input element of `type="image"`.
-
-
-### success
-Default: `null`
-Callback function to be invoked after the form has been submitted. If a 'success' callback function is provided it is invoked after the response has been returned from the server. It is passed the following standard jQuery arguments:
-
-1. `data`, formatted according to the dataType parameter or the dataFilter callback function, if specified
-2. `textStatus`, string
-3. `jqXHR`, object
-4. `$form` jQuery object containing form element
-
-
-### target
-Default: `null`
-Identifies the element(s) in the page to be updated with the server response. This value may be specified as a jQuery selection string, a jQuery object, or a DOM element.
-
-
-### type
-Default: value of form's `method` attribute (or 'GET' if none found)
-The HTTP method to use for the request (e.g. 'POST', 'GET', 'PUT').
-An alias for `method` option. Overridden by the `method` value if both are present.
-
-
-### uploadProgress
-Default: `null`
-Callback function to be invoked with upload progress information (if supported by the browser). The callback is passed the following arguments:
-
-1. event; the browser event
-2. position (integer)
-3. total (integer)
-4. percentComplete (integer)
-
-
-### url
-Default: value of form's `action` attribute
-URL to which the form data will be submitted.
-
-
-## Example
-```javascript
-// prepare Options Object
-var options = {
- target: '#divToUpdate',
- url: 'comment.php',
- success: function() {
- alert('Thanks for your comment!');
- }
-};
-
-// pass options to ajaxForm
-$('#myForm').ajaxForm(options);
-```
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/form.jquery.json b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/form.jquery.json
deleted file mode 100644
index 7ff719de81..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/form.jquery.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "name": "form",
- "title": "jQuery Form",
- "version": "4.2.2",
- "author": {
- "name": "Kevin Morris",
- "url": "https://github.com/kevindb/"
- },
- "description": "The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX.",
- "keywords": [ "jquery", "ajax", "jquery-plugin", "json", "json-form", "html-form", "form", "jquery-form" ],
- "homepage": "https://github.com/jquery-form/form",
- "docs": "https://jquery-form.github.io/form/",
- "bugs": "https://github.com/jquery-form/form/issues",
- "licenses": [
- {
- "type": "LGPL-2.1+",
- "url": "https://github.com/jquery-form/form/blob/master/LICENSE"
- },
- {
- "type": "MIT",
- "url": "https://github.com/jquery-form/form/blob/master/LICENSE-MIT"
- }
- ],
- "maintainers": [
- {
- "name": "Kevin Morris",
- "url": "https://github.com/kevindb"
- },
- {
- "name": "Mike Alsup",
- "url": "https://github.com/malsup"
- }
- ],
- "main": "src/jquery.form.js",
- "browser": "dist/jquery.form.min.js",
- "repository": {
- "type": "git",
- "url": "https://github.com/jquery-form/form.git"
- },
- "dependencies": {
- "jquery": ">=1.7.2"
- },
- "devDependencies": {
- "chai": "^4.1.0",
- "grunt": "^1.0.1",
- "grunt-cli": "^1.2.0",
- "grunt-contrib-uglify": "^3.0.1",
- "grunt-eslint": "*",
- "grunt-githooks": "^0.6.0",
- "grunt-mocha": "^1.0.4",
- "jquery": "^3.0.0",
- "mocha": "^3.4.2"
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/install/pre-commit.sh b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/install/pre-commit.sh
deleted file mode 100644
index 1f2b16178d..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/install/pre-commit.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-#
-# Pre-commit hooks
-
-# Make sure node modules are available to Github Desktop
-PATH=$PATH:/usr/local/bin:/usr/local/sbin
-
-# Lint and test before committing
-grunt test
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/install/template/shell.hb b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/install/template/shell.hb
deleted file mode 100644
index e98df2ece9..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/install/template/shell.hb
+++ /dev/null
@@ -1,4 +0,0 @@
-# Make sure node modules are available to Github Desktop
-PATH=$PATH:/usr/local/bin:/usr/local/sbin
-
-{{command}}{{#if task}} {{task}}{{/if}}{{#if args}} {{args}}{{/if}}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/package-lock.json b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/package-lock.json
deleted file mode 100644
index 5f894c046b..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/package-lock.json
+++ /dev/null
@@ -1,3451 +0,0 @@
-{
- "name": "jquery-form",
- "version": "4.2.1",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "abbrev": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
- "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
- "dev": true
- },
- "acorn": {
- "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz",
- "integrity": "sha1-F6jWp6bE71OLgU7Jq6wneSk78wo=",
- "dev": true
- },
- "acorn-jsx": {
- "version": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
- "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
- "dev": true,
- "requires": {
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
- },
- "dependencies": {
- "acorn": {
- "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
- "dev": true
- }
- }
- },
- "ajv": {
- "version": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz",
- "integrity": "sha1-tu50ZXuZOgHc5Et5RNVvSFgo1b0=",
- "dev": true,
- "requires": {
- "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
- }
- },
- "ajv-keywords": {
- "version": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
- "dev": true
- },
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
- "dev": true
- },
- "ansi-escapes": {
- "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
- "dev": true
- },
- "ansi-regex": {
- "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "argparse": {
- "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "dev": true,
- "requires": {
- "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
- }
- },
- "array-find-index": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
- "dev": true
- },
- "array-union": {
- "version": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
- "dev": true,
- "requires": {
- "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
- }
- },
- "array-uniq": {
- "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
- "dev": true
- },
- "arrify": {
- "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
- "dev": true
- },
- "asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "dev": true
- },
- "assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
- "dev": true
- },
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
- },
- "aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
- "dev": true
- },
- "aws4": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
- "dev": true
- },
- "babel-code-frame": {
- "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
- "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
- "dev": true,
- "requires": {
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz"
- }
- },
- "balanced-match": {
- "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
- "dev": true,
- "optional": true,
- "requires": {
- "tweetnacl": "0.14.5"
- }
- },
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "brace-expansion": {
- "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
- "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
- "dev": true,
- "requires": {
- "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
- }
- },
- "browser-stdout": {
- "version": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
- "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
- "dev": true
- },
- "browserify-zlib": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
- "dev": true,
- "requires": {
- "pako": "0.2.9"
- }
- },
- "buffer-shims": {
- "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
- "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
- "dev": true
- },
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "dev": true
- },
- "caller-path": {
- "version": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
- "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
- "dev": true,
- "requires": {
- "callsites": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz"
- }
- },
- "callsites": {
- "version": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
- "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
- "dev": true
- },
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
- "dev": true
- },
- "camelcase-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
- "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
- "dev": true,
- "requires": {
- "camelcase": "2.1.1",
- "map-obj": "1.0.1"
- }
- },
- "caseless": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
- "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
- "dev": true
- },
- "chai": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.0.tgz",
- "integrity": "sha1-MxoDkbVcOvh0CunDt0WLwcOAXm0=",
- "dev": true,
- "requires": {
- "assertion-error": "1.0.2",
- "check-error": "1.0.2",
- "deep-eql": "2.0.2",
- "get-func-name": "2.0.0",
- "pathval": "1.1.0",
- "type-detect": "4.0.3"
- },
- "dependencies": {
- "assertion-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz",
- "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=",
- "dev": true
- }
- }
- },
- "chalk": {
- "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
- },
- "dependencies": {
- "supports-color": {
- "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- }
- }
- },
- "check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
- "dev": true
- },
- "circular-json": {
- "version": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
- "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=",
- "dev": true
- },
- "cli-cursor": {
- "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
- "dev": true,
- "requires": {
- "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz"
- }
- },
- "cli-width": {
- "version": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
- "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=",
- "dev": true
- },
- "co": {
- "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
- },
- "code-point-at": {
- "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "dev": true
- },
- "coffee-script": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
- "integrity": "sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA=",
- "dev": true
- },
- "colors": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "dev": true,
- "requires": {
- "delayed-stream": "1.0.0"
- }
- },
- "commander": {
- "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
- "dev": true,
- "requires": {
- "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
- }
- },
- "concat-map": {
- "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "concat-stream": {
- "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
- "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
- "dev": true,
- "requires": {
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
- "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
- }
- },
- "core-util-is": {
- "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
- },
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
- "dev": true,
- "requires": {
- "boom": "2.10.1"
- }
- },
- "currently-unhandled": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
- "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
- "dev": true,
- "requires": {
- "array-find-index": "1.0.2"
- }
- },
- "d": {
- "version": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
- "dev": true,
- "requires": {
- "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dev": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "dateformat": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
- "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
- "dev": true,
- "requires": {
- "get-stdin": "4.0.1",
- "meow": "3.7.0"
- }
- },
- "debug": {
- "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
- },
- "deep-eql": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-2.0.2.tgz",
- "integrity": "sha1-sbrAblbwp2d3aG1Qyf63XC7XZ5o=",
- "dev": true,
- "requires": {
- "type-detect": "3.0.0"
- },
- "dependencies": {
- "type-detect": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-3.0.0.tgz",
- "integrity": "sha1-RtDMhVOrt7E6NSsNbeov1Y8tm1U=",
- "dev": true
- }
- }
- },
- "deep-is": {
- "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
- "dev": true
- },
- "del": {
- "version": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
- "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
- "dev": true,
- "requires": {
- "globby": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
- "is-path-cwd": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "is-path-in-cwd": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
- },
- "doctrine": {
- "version": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
- "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=",
- "dev": true,
- "requires": {
- "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
- }
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "error-ex": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
- "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
- "dev": true,
- "requires": {
- "is-arrayish": "0.2.1"
- }
- },
- "es5-ext": {
- "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz",
- "integrity": "sha1-YlvJq5ysD2+53CcVJYI9GACz02A=",
- "dev": true,
- "requires": {
- "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
- "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
- }
- },
- "es6-iterator": {
- "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
- "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=",
- "dev": true,
- "requires": {
- "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz",
- "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
- }
- },
- "es6-map": {
- "version": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
- "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
- "dev": true,
- "requires": {
- "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz",
- "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
- "es6-set": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
- "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
- }
- },
- "es6-promise": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz",
- "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=",
- "dev": true
- },
- "es6-set": {
- "version": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
- "dev": true,
- "requires": {
- "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz",
- "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
- "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz"
- }
- },
- "es6-symbol": {
- "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
- "dev": true,
- "requires": {
- "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz"
- }
- },
- "es6-weak-map": {
- "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
- "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
- "dev": true,
- "requires": {
- "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz",
- "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
- "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz"
- }
- },
- "escape-string-regexp": {
- "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "escope": {
- "version": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
- "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
- "dev": true,
- "requires": {
- "es6-map": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
- "es6-weak-map": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
- "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz",
- "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
- }
- },
- "eslint": {
- "version": "https://registry.npmjs.org/eslint/-/eslint-3.18.0.tgz",
- "integrity": "sha1-ZH6YXErnFQLSCsYsEJ9m1RBMiks=",
- "dev": true,
- "requires": {
- "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
- "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
- "escope": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
- "espree": "https://registry.npmjs.org/espree/-/espree-3.4.0.tgz",
- "esquery": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
- "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "file-entry-cache": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
- "glob": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
- "globals": "https://registry.npmjs.org/globals/-/globals-9.16.0.tgz",
- "ignore": "https://registry.npmjs.org/ignore/-/ignore-3.2.6.tgz",
- "imurmurhash": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
- "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
- "is-resolvable": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
- "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
- "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "natural-compare": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "pluralize": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
- "progress": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "require-uncached": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
- "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz",
- "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "table": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
- "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "user-home": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz"
- },
- "dependencies": {
- "lodash": {
- "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
- "dev": true
- },
- "shelljs": {
- "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz",
- "integrity": "sha1-svXHfvlxSPS09uImguELuoZnz/E=",
- "dev": true,
- "requires": {
- "glob": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
- "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
- "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
- }
- },
- "strip-bom": {
- "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- },
- "strip-json-comments": {
- "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- },
- "user-home": {
- "version": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
- "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
- "dev": true,
- "requires": {
- "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
- }
- }
- }
- },
- "espree": {
- "version": "https://registry.npmjs.org/espree/-/espree-3.4.0.tgz",
- "integrity": "sha1-QWVvpWKOBCh4Al70Z+ePEly4bh0=",
- "dev": true,
- "requires": {
- "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz",
- "acorn-jsx": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz"
- }
- },
- "esprima": {
- "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
- "dev": true
- },
- "esquery": {
- "version": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
- "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
- "dev": true,
- "requires": {
- "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
- }
- },
- "esrecurse": {
- "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz",
- "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=",
- "dev": true,
- "requires": {
- "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
- },
- "dependencies": {
- "estraverse": {
- "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz",
- "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=",
- "dev": true
- }
- }
- },
- "estraverse": {
- "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
- "dev": true
- },
- "esutils": {
- "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true
- },
- "event-emitter": {
- "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "dev": true,
- "requires": {
- "d": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz"
- }
- },
- "eventemitter2": {
- "version": "0.4.14",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
- "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
- "dev": true
- },
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
- "dev": true
- },
- "exit-hook": {
- "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
- "dev": true
- },
- "extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
- "dev": true
- },
- "extract-zip": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz",
- "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=",
- "dev": true,
- "requires": {
- "concat-stream": "1.5.0",
- "debug": "0.7.4",
- "mkdirp": "0.5.0",
- "yauzl": "2.4.1"
- },
- "dependencies": {
- "concat-stream": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz",
- "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.0.6",
- "typedarray": "0.0.6"
- }
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
- },
- "debug": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
- "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=",
- "dev": true
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
- "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
- "dev": true
- },
- "readable-stream": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
- }
- }
- },
- "extsprintf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
- "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
- "dev": true
- },
- "fd-slicer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
- "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
- "dev": true,
- "requires": {
- "pend": "1.2.0"
- }
- },
- "figures": {
- "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
- }
- },
- "file-entry-cache": {
- "version": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
- "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
- "dev": true,
- "requires": {
- "flat-cache": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
- }
- },
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true,
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- },
- "dependencies": {
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- }
- }
- },
- "findup-sync": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
- "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
- "dev": true,
- "requires": {
- "glob": "5.0.15"
- },
- "dependencies": {
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "dev": true,
- "requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
- "dev": true,
- "requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- }
- }
- },
- "flat-cache": {
- "version": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
- "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
- "dev": true,
- "requires": {
- "circular-json": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
- "del": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
- "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "write": "https://registry.npmjs.org/write/-/write-0.2.1.tgz"
- }
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
- },
- "form-data": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
- "dev": true,
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.15"
- }
- },
- "fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "2.4.0",
- "klaw": "1.3.1"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true
- }
- }
- },
- "fs.realpath": {
- "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "generate-function": {
- "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
- "dev": true
- },
- "generate-object-property": {
- "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
- "dev": true,
- "requires": {
- "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
- }
- },
- "get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
- "dev": true
- },
- "get-stdin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
- "dev": true
- },
- "getobject": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
- "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
- "dev": true
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "dev": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "glob": {
- "version": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
- "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=",
- "dev": true,
- "requires": {
- "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
- }
- },
- "globals": {
- "version": "https://registry.npmjs.org/globals/-/globals-9.16.0.tgz",
- "integrity": "sha1-Y+kDZYFx7C2fUbHTHeXiuNwB+4A=",
- "dev": true
- },
- "globby": {
- "version": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
- "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
- "dev": true,
- "requires": {
- "array-union": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "glob": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
- "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
- }
- },
- "graceful-fs": {
- "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true
- },
- "graceful-readlink": {
- "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
- "dev": true
- },
- "growl": {
- "version": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
- "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
- "dev": true
- },
- "grunt": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
- "integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=",
- "dev": true,
- "requires": {
- "coffee-script": "1.10.0",
- "dateformat": "1.0.12",
- "eventemitter2": "0.4.14",
- "exit": "0.1.2",
- "findup-sync": "0.3.0",
- "glob": "7.0.6",
- "grunt-cli": "1.2.0",
- "grunt-known-options": "1.1.0",
- "grunt-legacy-log": "1.0.0",
- "grunt-legacy-util": "1.0.0",
- "iconv-lite": "0.4.18",
- "js-yaml": "3.5.5",
- "minimatch": "3.0.4",
- "nopt": "3.0.6",
- "path-is-absolute": "1.0.1",
- "rimraf": "2.2.8"
- },
- "dependencies": {
- "argparse": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "dev": true,
- "requires": {
- "sprintf-js": "1.0.3"
- }
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "dev": true,
- "requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "esprima": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "glob": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
- "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
- "dev": true,
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "js-yaml": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
- "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
- "dev": true,
- "requires": {
- "argparse": "1.0.9",
- "esprima": "2.7.3"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "rimraf": {
- "version": "2.2.8",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
- "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
- "dev": true
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- }
- }
- },
- "grunt-cli": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
- "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
- "dev": true,
- "requires": {
- "findup-sync": "0.3.0",
- "grunt-known-options": "1.1.0",
- "nopt": "3.0.6",
- "resolve": "1.1.7"
- },
- "dependencies": {
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
- }
- }
- },
- "grunt-contrib-uglify": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.0.1.tgz",
- "integrity": "sha1-/etfk4pMgEL46Grkb2NVTo6VEcs=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "maxmin": "1.1.0",
- "uglify-js": "3.0.24",
- "uri-path": "1.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- }
- }
- },
- "grunt-eslint": {
- "version": "20.0.0",
- "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-20.0.0.tgz",
- "integrity": "sha512-jQ2GBIYUkfVict7WcSBH7mAukTJ7Cz5TwJUCQ8XxzVTTyAcxC+1MGM3rdEuQbtsLUNKqy9xr0ai/l14WkxVtkw==",
- "dev": true,
- "requires": {
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "eslint": "https://registry.npmjs.org/eslint/-/eslint-3.18.0.tgz"
- }
- },
- "grunt-githooks": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/grunt-githooks/-/grunt-githooks-0.6.0.tgz",
- "integrity": "sha1-EMakDFN8G2xlZIxrft8AGKAPw/A=",
- "dev": true,
- "requires": {
- "handlebars": "1.0.12"
- }
- },
- "grunt-known-options": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
- "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=",
- "dev": true
- },
- "grunt-legacy-log": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz",
- "integrity": "sha1-+4bxgJhHvAfcR4Q/ns1srLYt8tU=",
- "dev": true,
- "requires": {
- "colors": "1.1.2",
- "grunt-legacy-log-utils": "1.0.0",
- "hooker": "0.2.3",
- "lodash": "3.10.1",
- "underscore.string": "3.2.3"
- }
- },
- "grunt-legacy-log-utils": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz",
- "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "lodash": "4.3.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "lodash": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
- "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- }
- }
- },
- "grunt-legacy-util": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz",
- "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=",
- "dev": true,
- "requires": {
- "async": "1.5.2",
- "exit": "0.1.2",
- "getobject": "0.1.0",
- "hooker": "0.2.3",
- "lodash": "4.3.0",
- "underscore.string": "3.2.3",
- "which": "1.2.14"
- },
- "dependencies": {
- "lodash": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
- "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
- "dev": true
- }
- }
- },
- "grunt-lib-phantomjs": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz",
- "integrity": "sha1-np7c3Z/S3UDgwYHJQ3HVcqpe6tI=",
- "dev": true,
- "requires": {
- "eventemitter2": "0.4.14",
- "phantomjs-prebuilt": "2.1.14",
- "rimraf": "2.6.1",
- "semver": "5.3.0",
- "temporary": "0.0.8"
- },
- "dependencies": {
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "dev": true,
- "requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "rimraf": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
- "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
- "dev": true,
- "requires": {
- "glob": "7.1.2"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- }
- }
- },
- "grunt-mocha": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grunt-mocha/-/grunt-mocha-1.0.4.tgz",
- "integrity": "sha1-7iYdxmoDAC4MqkLLf9QdFrKVar0=",
- "dev": true,
- "requires": {
- "grunt-lib-phantomjs": "1.1.0",
- "lodash": "3.10.1",
- "mocha": "3.4.2"
- }
- },
- "gzip-size": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
- "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=",
- "dev": true,
- "requires": {
- "browserify-zlib": "0.1.4",
- "concat-stream": "1.6.0"
- },
- "dependencies": {
- "concat-stream": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
- "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3",
- "typedarray": "0.0.6"
- }
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
- "dev": true
- },
- "readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
- }
- },
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
- }
- }
- },
- "handlebars": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-1.0.12.tgz",
- "integrity": "sha1-GMbTRAw16RsZs/9YK5FRq0mF1Pw=",
- "dev": true,
- "requires": {
- "optimist": "0.3.7",
- "uglify-js": "2.3.6"
- },
- "dependencies": {
- "async": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
- "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
- "dev": true
- },
- "source-map": {
- "version": "0.1.43",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "dev": true,
- "requires": {
- "amdefine": "1.0.1"
- }
- },
- "uglify-js": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz",
- "integrity": "sha1-+gmEdwtCi3qbKoBY9GNV0U/vIRo=",
- "dev": true,
- "requires": {
- "async": "0.2.10",
- "optimist": "0.3.7",
- "source-map": "0.1.43"
- }
- }
- }
- },
- "har-validator": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
- "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "commander": "2.11.0",
- "is-my-json-valid": "2.16.0",
- "pinkie-promise": "2.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "commander": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
- "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
- "dev": true
- },
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
- "dev": true,
- "requires": {
- "is-property": "1.0.2"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "is-my-json-valid": {
- "version": "2.16.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
- "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=",
- "dev": true,
- "requires": {
- "generate-function": "2.0.0",
- "generate-object-property": "1.2.0",
- "jsonpointer": "4.0.1",
- "xtend": "4.0.1"
- }
- },
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
- "dev": true
- },
- "jsonpointer": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
- "dev": true
- }
- }
- },
- "has-ansi": {
- "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
- "requires": {
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
- }
- },
- "has-flag": {
- "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
- "dev": true
- },
- "hasha": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
- "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
- "dev": true,
- "requires": {
- "is-stream": "1.1.0",
- "pinkie-promise": "2.0.1"
- },
- "dependencies": {
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- }
- }
- },
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
- "dev": true,
- "requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
- }
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
- "dev": true
- },
- "hooker": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
- "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
- "dev": true
- },
- "hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
- "dev": true
- },
- "http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
- "dev": true,
- "requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.0",
- "sshpk": "1.13.1"
- }
- },
- "iconv-lite": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
- "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==",
- "dev": true
- },
- "ignore": {
- "version": "https://registry.npmjs.org/ignore/-/ignore-3.2.6.tgz",
- "integrity": "sha1-JujaBkS+C7TLOVFvbHnw4PT/5Iw=",
- "dev": true
- },
- "imurmurhash": {
- "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
- "dev": true
- },
- "indent-string": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
- "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
- "dev": true,
- "requires": {
- "repeating": "2.0.1"
- }
- },
- "inflight": {
- "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
- "requires": {
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
- }
- },
- "inherits": {
- "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- },
- "inquirer": {
- "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
- "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
- "dev": true,
- "requires": {
- "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
- "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "readline2": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
- "run-async": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
- "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
- },
- "dependencies": {
- "lodash": {
- "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
- "dev": true
- }
- }
- },
- "interpret": {
- "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
- "integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw=",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "dev": true,
- "requires": {
- "builtin-modules": "1.1.1"
- }
- },
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- },
- "dependencies": {
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- }
- }
- },
- "is-fullwidth-code-point": {
- "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
- }
- },
- "is-my-json-valid": {
- "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz",
- "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=",
- "dev": true,
- "requires": {
- "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
- }
- },
- "is-path-cwd": {
- "version": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
- "dev": true
- },
- "is-path-in-cwd": {
- "version": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
- "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
- "dev": true,
- "requires": {
- "is-path-inside": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz"
- }
- },
- "is-path-inside": {
- "version": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
- "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
- "dev": true,
- "requires": {
- "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"
- }
- },
- "is-property": {
- "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
- "dev": true
- },
- "is-resolvable": {
- "version": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
- "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
- "dev": true,
- "requires": {
- "tryit": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz"
- }
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "dev": true
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
- "dev": true
- },
- "isarray": {
- "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "dev": true
- },
- "jquery": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz",
- "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c="
- },
- "js-tokens": {
- "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz",
- "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=",
- "dev": true
- },
- "js-yaml": {
- "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
- "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
- "dev": true,
- "requires": {
- "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true,
- "optional": true
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
- },
- "json-stable-stringify": {
- "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true,
- "requires": {
- "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
- }
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
- "dev": true
- },
- "json3": {
- "version": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
- "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
- "dev": true
- },
- "jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true,
- "optional": true
- }
- }
- },
- "jsonify": {
- "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
- "dev": true
- },
- "jsonpointer": {
- "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
- "dev": true
- },
- "jsprim": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz",
- "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=",
- "dev": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.0.2",
- "json-schema": "0.2.3",
- "verror": "1.3.6"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "kew": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
- "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
- "dev": true
- },
- "klaw": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
- "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true,
- "optional": true
- }
- }
- },
- "levn": {
- "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "dev": true,
- "requires": {
- "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
- }
- },
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- }
- }
- },
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
- },
- "lodash._baseassign": {
- "version": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
- "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
- "dev": true,
- "requires": {
- "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
- "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz"
- }
- },
- "lodash._basecopy": {
- "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
- "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
- "dev": true
- },
- "lodash._basecreate": {
- "version": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
- "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
- "dev": true
- },
- "lodash._getnative": {
- "version": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
- "dev": true
- },
- "lodash._isiterateecall": {
- "version": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
- "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
- "dev": true
- },
- "lodash.create": {
- "version": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
- "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
- "dev": true,
- "requires": {
- "lodash._baseassign": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
- "lodash._basecreate": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
- "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"
- }
- },
- "lodash.isarguments": {
- "version": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
- "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
- "dev": true
- },
- "lodash.isarray": {
- "version": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
- "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
- "dev": true
- },
- "lodash.keys": {
- "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
- "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
- "dev": true,
- "requires": {
- "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "lodash.isarguments": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
- "lodash.isarray": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz"
- }
- },
- "loud-rejection": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
- "dev": true,
- "requires": {
- "currently-unhandled": "0.4.1",
- "signal-exit": "3.0.2"
- }
- },
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
- "dev": true
- },
- "maxmin": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
- "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "figures": "1.7.0",
- "gzip-size": "1.0.0",
- "pretty-bytes": "1.0.4"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- }
- }
- },
- "meow": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
- "dev": true,
- "requires": {
- "camelcase-keys": "2.1.0",
- "decamelize": "1.2.0",
- "loud-rejection": "1.6.0",
- "map-obj": "1.0.1",
- "minimist": "1.2.0",
- "normalize-package-data": "2.4.0",
- "object-assign": "4.1.1",
- "read-pkg-up": "1.0.1",
- "redent": "1.0.0",
- "trim-newlines": "1.0.0"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
- }
- },
- "mime-db": {
- "version": "1.27.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
- "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.15",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
- "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=",
- "dev": true,
- "requires": {
- "mime-db": "1.27.0"
- }
- },
- "minimatch": {
- "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
- "dev": true,
- "requires": {
- "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
- }
- },
- "minimist": {
- "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- },
- "mkdirp": {
- "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "dev": true,
- "requires": {
- "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
- }
- },
- "mocha": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.4.2.tgz",
- "integrity": "sha1-0O9NMyEm2/GNDWQMmzgt1IvpdZQ=",
- "dev": true,
- "requires": {
- "browser-stdout": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
- "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "debug": "2.6.0",
- "diff": "3.2.0",
- "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "glob": "7.1.1",
- "growl": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
- "json3": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
- "lodash.create": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
- "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
- "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "diff": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz",
- "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=",
- "dev": true
- },
- "glob": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
- "dev": true,
- "requires": {
- "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "ms": {
- "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
- },
- "mute-stream": {
- "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
- "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
- "dev": true
- },
- "natural-compare": {
- "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
- "dev": true
- },
- "nopt": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
- "dev": true,
- "requires": {
- "abbrev": "1.1.0"
- }
- },
- "normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
- "dev": true,
- "requires": {
- "hosted-git-info": "2.5.0",
- "is-builtin-module": "1.0.0",
- "semver": "5.3.0",
- "validate-npm-package-license": "3.0.1"
- }
- },
- "number-is-nan": {
- "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- },
- "oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
- "dev": true
- },
- "object-assign": {
- "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
- "once": {
- "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
- "requires": {
- "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
- }
- },
- "onetime": {
- "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
- "dev": true
- },
- "optimist": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
- "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=",
- "dev": true,
- "requires": {
- "wordwrap": "0.0.3"
- }
- },
- "optionator": {
- "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
- "dev": true,
- "requires": {
- "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
- },
- "dependencies": {
- "wordwrap": {
- "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
- "dev": true
- }
- }
- },
- "os-homedir": {
- "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "dev": true
- },
- "package": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz",
- "integrity": "sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=",
- "dev": true
- },
- "pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
- "dev": true
- },
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dev": true,
- "requires": {
- "error-ex": "1.3.1"
- }
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- },
- "dependencies": {
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- }
- }
- },
- "path-is-absolute": {
- "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
- },
- "path-is-inside": {
- "version": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
- "dev": true
- },
- "path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- }
- }
- },
- "pathval": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
- "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
- "dev": true
- },
- "pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
- "dev": true
- },
- "phantomjs-prebuilt": {
- "version": "2.1.14",
- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz",
- "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=",
- "dev": true,
- "requires": {
- "es6-promise": "4.0.5",
- "extract-zip": "1.5.0",
- "fs-extra": "1.0.0",
- "hasha": "2.2.0",
- "kew": "0.7.0",
- "progress": "1.1.8",
- "request": "2.79.0",
- "request-progress": "2.0.1",
- "which": "1.2.14"
- },
- "dependencies": {
- "progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
- "dev": true
- }
- }
- },
- "pify": {
- "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "pinkie": {
- "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
- }
- },
- "pluralize": {
- "version": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
- "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
- "dev": true
- },
- "prelude-ls": {
- "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "dev": true
- },
- "pretty-bytes": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
- "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
- "dev": true,
- "requires": {
- "get-stdin": "4.0.1",
- "meow": "3.7.0"
- }
- },
- "process-nextick-args": {
- "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
- "dev": true
- },
- "progress": {
- "version": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
- "dev": true
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
- },
- "qs": {
- "version": "6.3.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
- "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
- "dev": true
- },
- "read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
- "dev": true,
- "requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
- }
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "dev": true,
- "requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- }
- },
- "readable-stream": {
- "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.3.tgz",
- "integrity": "sha1-nPSUY5hd8BbIrogTCXqSk6mzNyk=",
- "dev": true,
- "requires": {
- "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
- "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
- }
- },
- "readline2": {
- "version": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
- "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
- "dev": true,
- "requires": {
- "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz"
- }
- },
- "rechoir": {
- "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "dev": true,
- "requires": {
- "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"
- }
- },
- "redent": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
- "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
- "dev": true,
- "requires": {
- "indent-string": "2.1.0",
- "strip-indent": "1.0.1"
- }
- },
- "repeating": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "dev": true,
- "requires": {
- "is-finite": "1.0.2"
- }
- },
- "request": {
- "version": "2.79.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
- "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
- "dev": true,
- "requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.6.0",
- "caseless": "0.11.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "2.0.6",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.15",
- "oauth-sign": "0.8.2",
- "qs": "6.3.2",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
- "tunnel-agent": "0.4.3",
- "uuid": "3.1.0"
- }
- },
- "request-progress": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
- "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
- "dev": true,
- "requires": {
- "throttleit": "1.0.0"
- }
- },
- "require-uncached": {
- "version": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
- "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
- "dev": true,
- "requires": {
- "caller-path": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
- "resolve-from": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz"
- }
- },
- "resolve": {
- "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
- },
- "resolve-from": {
- "version": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
- "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
- "dev": true
- },
- "restore-cursor": {
- "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
- "dev": true,
- "requires": {
- "exit-hook": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz"
- }
- },
- "rimraf": {
- "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
- "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
- "dev": true
- },
- "run-async": {
- "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
- "dev": true,
- "requires": {
- "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
- }
- },
- "rx-lite": {
- "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
- "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
- "dev": true
- },
- "safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
- "dev": true
- },
- "semver": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
- "dev": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "dev": true
- },
- "slice-ansi": {
- "version": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
- "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
- "dev": true
- },
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "source-map": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
- "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
- "dev": true
- },
- "spdx-correct": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
- "dev": true,
- "requires": {
- "spdx-license-ids": "1.2.2"
- }
- },
- "spdx-expression-parse": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
- "dev": true
- },
- "spdx-license-ids": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
- "dev": true
- },
- "sprintf-js": {
- "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
- "dev": true,
- "requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "string_decoder": {
- "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
- "string-width": {
- "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true,
- "requires": {
- "is-utf8": "0.2.1"
- }
- },
- "strip-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
- "dev": true,
- "requires": {
- "get-stdin": "4.0.1"
- }
- },
- "supports-color": {
- "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
- "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
- "dev": true,
- "requires": {
- "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
- }
- },
- "table": {
- "version": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
- "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
- "dev": true,
- "requires": {
- "ajv": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz",
- "ajv-keywords": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "slice-ansi": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
- "string-width": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "lodash": {
- "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
- "dev": true
- },
- "string-width": {
- "version": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz",
- "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
- }
- }
- }
- },
- "temporary": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz",
- "integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=",
- "dev": true,
- "requires": {
- "package": "1.0.1"
- }
- },
- "text-table": {
- "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
- "dev": true
- },
- "throttleit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
- "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
- "dev": true
- },
- "through": {
- "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
- },
- "tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
- "dev": true,
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "trim-newlines": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
- "dev": true
- },
- "tryit": {
- "version": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
- "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
- "dev": true
- },
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
- "dev": true
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true,
- "optional": true
- },
- "type-check": {
- "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "dev": true,
- "requires": {
- "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
- }
- },
- "type-detect": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz",
- "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=",
- "dev": true
- },
- "typedarray": {
- "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
- },
- "uglify-js": {
- "version": "3.0.24",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.24.tgz",
- "integrity": "sha512-IZ7l7MU2j7LIuz6IAFWBOk1dbuQ0QVQsKLffpNPKXuL8NYcFBBQ5QkvMAtfL1+oaBW16344DY4sA26GI9cXzlA==",
- "dev": true,
- "requires": {
- "commander": "2.9.0",
- "source-map": "0.5.6"
- },
- "dependencies": {
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
- "dev": true,
- "requires": {
- "graceful-readlink": "1.0.1"
- }
- },
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
- "dev": true
- }
- }
- },
- "underscore.string": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
- "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=",
- "dev": true
- },
- "uri-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
- "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
- "dev": true
- },
- "util-deprecate": {
- "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
- },
- "uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
- "dev": true,
- "requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
- }
- },
- "verror": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
- "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=",
- "dev": true,
- "requires": {
- "extsprintf": "1.0.2"
- }
- },
- "which": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
- "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
- "dev": true,
- "requires": {
- "isexe": "2.0.0"
- }
- },
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
- "dev": true
- },
- "wrappy": {
- "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
- },
- "write": {
- "version": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
- "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
- "dev": true,
- "requires": {
- "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
- }
- },
- "xtend": {
- "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
- "dev": true
- },
- "yauzl": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
- "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
- "dev": true,
- "requires": {
- "fd-slicer": "1.0.1"
- }
- }
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/package.json b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/package.json
deleted file mode 100644
index ce7bf9eb9c..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/package.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "name": "jquery-form",
- "version": "4.2.2",
- "description": "The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX.",
- "keywords": [ "jquery", "ajax", "jquery-plugin", "json", "json-form", "html-form", "form", "jquery-form", "ecosystem:jquery" ],
- "homepage": "https://github.com/jquery-form/form",
- "bugs": "https://github.com/jquery-form/form/issues",
- "license": "(LGPL-2.1+ OR MIT)",
- "contributors": [
- "Mike Alsup",
- "Kevin Morris"
- ],
- "main": "src/jquery.form.js",
- "browser": "dist/jquery.form.min.js",
- "repository": {
- "type": "git",
- "url": "https://github.com/jquery-form/form.git"
- },
- "dependencies": {
- "jquery": ">=1.7.2"
- },
- "devDependencies": {
- "chai": "^4.1.0",
- "grunt": "^1.0.1",
- "grunt-cli": "^1.2.0",
- "grunt-contrib-uglify": "^3.0.1",
- "grunt-eslint": "*",
- "grunt-githooks": "^0.6.0",
- "grunt-mocha": "^1.0.4",
- "jquery": "^3.0.0",
- "mocha": "^3.4.2"
- }
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/src/jquery.form.js b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/src/jquery.form.js
deleted file mode 100644
index 2a75fe0c02..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/src/jquery.form.js
+++ /dev/null
@@ -1,1531 +0,0 @@
-/*!
- * jQuery Form Plugin
- * version: 4.2.2
- * Requires jQuery v1.7.2 or later
- * Project repository: https://github.com/jquery-form/form
-
- * Copyright 2017 Kevin Morris
- * Copyright 2006 M. Alsup
-
- * Dual licensed under the LGPL-2.1+ or MIT licenses
- * https://github.com/jquery-form/form#license
-
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- */
-/* global ActiveXObject */
-
-/* eslint-disable */
-(function (factory) {
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['jquery'], factory);
- } else if (typeof module === 'object' && module.exports) {
- // Node/CommonJS
- module.exports = function( root, jQuery ) {
- if (typeof jQuery === 'undefined') {
- // require('jQuery') returns a factory that requires window to build a jQuery instance, we normalize how we use modules
- // that require this pattern but the window provided is a noop if it's defined (how jquery works)
- if (typeof window !== 'undefined') {
- jQuery = require('jquery');
- }
- else {
- jQuery = require('jquery')(root);
- }
- }
- factory(jQuery);
- return jQuery;
- };
- } else {
- // Browser globals
- factory(jQuery);
- }
-
-}(function ($) {
-/* eslint-enable */
- 'use strict';
-
- /*
- Usage Note:
- -----------
- Do not use both ajaxSubmit and ajaxForm on the same form. These
- functions are mutually exclusive. Use ajaxSubmit if you want
- to bind your own submit handler to the form. For example,
-
- $(document).ready(function() {
- $('#myForm').on('submit', function(e) {
- e.preventDefault(); // <-- important
- $(this).ajaxSubmit({
- target: '#output'
- });
- });
- });
-
- Use ajaxForm when you want the plugin to manage all the event binding
- for you. For example,
-
- $(document).ready(function() {
- $('#myForm').ajaxForm({
- target: '#output'
- });
- });
-
- You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
- form does not have to exist when you invoke ajaxForm:
-
- $('#myForm').ajaxForm({
- delegation: true,
- target: '#output'
- });
-
- When using ajaxForm, the ajaxSubmit function will be invoked for you
- at the appropriate time.
- */
-
- var rCRLF = /\r?\n/g;
-
- /**
- * Feature detection
- */
- var feature = {};
-
- feature.fileapi = $(' ').get(0).files !== undefined;
- feature.formdata = (typeof window.FormData !== 'undefined');
-
- var hasProp = !!$.fn.prop;
-
- // attr2 uses prop when it can but checks the return type for
- // an expected string. This accounts for the case where a form
- // contains inputs with names like "action" or "method"; in those
- // cases "prop" returns the element
- $.fn.attr2 = function() {
- if (!hasProp) {
- return this.attr.apply(this, arguments);
- }
-
- var val = this.prop.apply(this, arguments);
-
- if ((val && val.jquery) || typeof val === 'string') {
- return val;
- }
-
- return this.attr.apply(this, arguments);
- };
-
- /**
- * ajaxSubmit() provides a mechanism for immediately submitting
- * an HTML form using AJAX.
- *
- * @param {object|string} options jquery.form.js parameters or custom url for submission
- * @param {object} data extraData
- * @param {string} dataType ajax dataType
- * @param {function} onSuccess ajax success callback function
- */
- $.fn.ajaxSubmit = function(options, data, dataType, onSuccess) {
- // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
- if (!this.length) {
- log('ajaxSubmit: skipping submit process - no element selected');
-
- return this;
- }
-
- /* eslint consistent-this: ["error", "$form"] */
- var method, action, url, $form = this;
-
- if (typeof options === 'function') {
- options = {success: options};
-
- } else if (typeof options === 'string' || (options === false && arguments.length > 0)) {
- options = {
- 'url' : options,
- 'data' : data,
- 'dataType' : dataType
- };
-
- if (typeof onSuccess === 'function') {
- options.success = onSuccess;
- }
-
- } else if (typeof options === 'undefined') {
- options = {};
- }
-
- method = options.method || options.type || this.attr2('method');
- action = options.url || this.attr2('action');
-
- url = (typeof action === 'string') ? $.trim(action) : '';
- url = url || window.location.href || '';
- if (url) {
- // clean url (don't include hash vaue)
- url = (url.match(/^([^#]+)/) || [])[1];
- }
-
- options = $.extend(true, {
- url : url,
- success : $.ajaxSettings.success,
- type : method || $.ajaxSettings.type,
- iframeSrc : /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' // eslint-disable-line no-script-url
- }, options);
-
- // hook for manipulating the form data before it is extracted;
- // convenient for use with rich editors like tinyMCE or FCKEditor
- var veto = {};
-
- this.trigger('form-pre-serialize', [this, options, veto]);
-
- if (veto.veto) {
- log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
-
- return this;
- }
-
- // provide opportunity to alter form data before it is serialized
- if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
- log('ajaxSubmit: submit aborted via beforeSerialize callback');
-
- return this;
- }
-
- var traditional = options.traditional;
-
- if (typeof traditional === 'undefined') {
- traditional = $.ajaxSettings.traditional;
- }
-
- var elements = [];
- var qx, a = this.formToArray(options.semantic, elements, options.filtering);
-
- if (options.data) {
- var optionsData = $.isFunction(options.data) ? options.data(a) : options.data;
-
- options.extraData = optionsData;
- qx = $.param(optionsData, traditional);
- }
-
- // give pre-submit callback an opportunity to abort the submit
- if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
- log('ajaxSubmit: submit aborted via beforeSubmit callback');
-
- return this;
- }
-
- // fire vetoable 'validate' event
- this.trigger('form-submit-validate', [a, this, options, veto]);
- if (veto.veto) {
- log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
-
- return this;
- }
-
- var q = $.param(a, traditional);
-
- if (qx) {
- q = (q ? (q + '&' + qx) : qx);
- }
-
- if (options.type.toUpperCase() === 'GET') {
- options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
- options.data = null; // data is null for 'get'
- } else {
- options.data = q; // data is the query string for 'post'
- }
-
- var callbacks = [];
-
- if (options.resetForm) {
- callbacks.push(function() {
- $form.resetForm();
- });
- }
-
- if (options.clearForm) {
- callbacks.push(function() {
- $form.clearForm(options.includeHidden);
- });
- }
-
- // perform a load on the target only if dataType is not provided
- if (!options.dataType && options.target) {
- var oldSuccess = options.success || function(){};
-
- callbacks.push(function(data, textStatus, jqXHR) {
- var successArguments = arguments,
- fn = options.replaceTarget ? 'replaceWith' : 'html';
-
- $(options.target)[fn](data).each(function(){
- oldSuccess.apply(this, successArguments);
- });
- });
-
- } else if (options.success) {
- if ($.isArray(options.success)) {
- $.merge(callbacks, options.success);
- } else {
- callbacks.push(options.success);
- }
- }
-
- options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
- var context = options.context || this; // jQuery 1.4+ supports scope context
-
- for (var i = 0, max = callbacks.length; i < max; i++) {
- callbacks[i].apply(context, [data, status, xhr || $form, $form]);
- }
- };
-
- if (options.error) {
- var oldError = options.error;
-
- options.error = function(xhr, status, error) {
- var context = options.context || this;
-
- oldError.apply(context, [xhr, status, error, $form]);
- };
- }
-
- if (options.complete) {
- var oldComplete = options.complete;
-
- options.complete = function(xhr, status) {
- var context = options.context || this;
-
- oldComplete.apply(context, [xhr, status, $form]);
- };
- }
-
- // are there files to upload?
-
- // [value] (issue #113), also see comment:
- // https://github.com/malsup/form/commit/588306aedba1de01388032d5f42a60159eea9228#commitcomment-2180219
- var fileInputs = $('input[type=file]:enabled', this).filter(function() {
- return $(this).val() !== '';
- });
- var hasFileInputs = fileInputs.length > 0;
- var mp = 'multipart/form-data';
- var multipart = ($form.attr('enctype') === mp || $form.attr('encoding') === mp);
- var fileAPI = feature.fileapi && feature.formdata;
-
- log('fileAPI :' + fileAPI);
-
- var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI;
- var jqxhr;
-
- // options.iframe allows user to force iframe mode
- // 06-NOV-09: now defaulting to iframe mode if file input is detected
- if (options.iframe !== false && (options.iframe || shouldUseFrame)) {
- // hack to fix Safari hang (thanks to Tim Molendijk for this)
- // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
- if (options.closeKeepAlive) {
- $.get(options.closeKeepAlive, function() {
- jqxhr = fileUploadIframe(a);
- });
-
- } else {
- jqxhr = fileUploadIframe(a);
- }
-
- } else if ((hasFileInputs || multipart) && fileAPI) {
- jqxhr = fileUploadXhr(a);
-
- } else {
- jqxhr = $.ajax(options);
- }
-
- $form.removeData('jqxhr').data('jqxhr', jqxhr);
-
- // clear element array
- for (var k = 0; k < elements.length; k++) {
- elements[k] = null;
- }
-
- // fire 'notify' event
- this.trigger('form-submit-notify', [this, options]);
-
- return this;
-
- // utility fn for deep serialization
- function deepSerialize(extraData) {
- var serialized = $.param(extraData, options.traditional).split('&');
- var len = serialized.length;
- var result = [];
- var i, part;
-
- for (i = 0; i < len; i++) {
- // #252; undo param space replacement
- serialized[i] = serialized[i].replace(/\+/g, ' ');
- part = serialized[i].split('=');
- // #278; use array instead of object storage, favoring array serializations
- result.push([decodeURIComponent(part[0]), decodeURIComponent(part[1])]);
- }
-
- return result;
- }
-
- // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz)
- function fileUploadXhr(a) {
- var formdata = new FormData();
-
- for (var i = 0; i < a.length; i++) {
- formdata.append(a[i].name, a[i].value);
- }
-
- if (options.extraData) {
- var serializedData = deepSerialize(options.extraData);
-
- for (i = 0; i < serializedData.length; i++) {
- if (serializedData[i]) {
- formdata.append(serializedData[i][0], serializedData[i][1]);
- }
- }
- }
-
- options.data = null;
-
- var s = $.extend(true, {}, $.ajaxSettings, options, {
- contentType : false,
- processData : false,
- cache : false,
- type : method || 'POST'
- });
-
- if (options.uploadProgress) {
- // workaround because jqXHR does not expose upload property
- s.xhr = function() {
- var xhr = $.ajaxSettings.xhr();
-
- if (xhr.upload) {
- xhr.upload.addEventListener('progress', function(event) {
- var percent = 0;
- var position = event.loaded || event.position; /* event.position is deprecated */
- var total = event.total;
-
- if (event.lengthComputable) {
- percent = Math.ceil(position / total * 100);
- }
-
- options.uploadProgress(event, position, total, percent);
- }, false);
- }
-
- return xhr;
- };
- }
-
- s.data = null;
-
- var beforeSend = s.beforeSend;
-
- s.beforeSend = function(xhr, o) {
- // Send FormData() provided by user
- if (options.formData) {
- o.data = options.formData;
- } else {
- o.data = formdata;
- }
-
- if (beforeSend) {
- beforeSend.call(this, xhr, o);
- }
- };
-
- return $.ajax(s);
- }
-
- // private function for handling file uploads (hat tip to YAHOO!)
- function fileUploadIframe(a) {
- var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
- var deferred = $.Deferred();
-
- // #341
- deferred.abort = function(status) {
- xhr.abort(status);
- };
-
- if (a) {
- // ensure that every serialized input is still enabled
- for (i = 0; i < elements.length; i++) {
- el = $(elements[i]);
- if (hasProp) {
- el.prop('disabled', false);
- } else {
- el.removeAttr('disabled');
- }
- }
- }
-
- s = $.extend(true, {}, $.ajaxSettings, options);
- s.context = s.context || s;
- id = 'jqFormIO' + new Date().getTime();
- var ownerDocument = form.ownerDocument;
- var $body = $form.closest('body');
-
- if (s.iframeTarget) {
- $io = $(s.iframeTarget, ownerDocument);
- n = $io.attr2('name');
- if (!n) {
- $io.attr2('name', id);
- } else {
- id = n;
- }
-
- } else {
- $io = $('', ownerDocument);
- $io.css({position: 'absolute', top: '-1000px', left: '-1000px'});
- }
- io = $io[0];
-
-
- xhr = { // mock object
- aborted : 0,
- responseText : null,
- responseXML : null,
- status : 0,
- statusText : 'n/a',
- getAllResponseHeaders : function() {},
- getResponseHeader : function() {},
- setRequestHeader : function() {},
- abort : function(status) {
- var e = (status === 'timeout' ? 'timeout' : 'aborted');
-
- log('aborting upload... ' + e);
- this.aborted = 1;
-
- try { // #214, #257
- if (io.contentWindow.document.execCommand) {
- io.contentWindow.document.execCommand('Stop');
- }
- } catch (ignore) {}
-
- $io.attr('src', s.iframeSrc); // abort op in progress
- xhr.error = e;
- if (s.error) {
- s.error.call(s.context, xhr, e, status);
- }
-
- if (g) {
- $.event.trigger('ajaxError', [xhr, s, e]);
- }
-
- if (s.complete) {
- s.complete.call(s.context, xhr, e);
- }
- }
- };
-
- g = s.global;
- // trigger ajax global events so that activity/block indicators work like normal
- if (g && $.active++ === 0) {
- $.event.trigger('ajaxStart');
- }
- if (g) {
- $.event.trigger('ajaxSend', [xhr, s]);
- }
-
- if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
- if (s.global) {
- $.active--;
- }
- deferred.reject();
-
- return deferred;
- }
-
- if (xhr.aborted) {
- deferred.reject();
-
- return deferred;
- }
-
- // add submitting element to data if we know it
- sub = form.clk;
- if (sub) {
- n = sub.name;
- if (n && !sub.disabled) {
- s.extraData = s.extraData || {};
- s.extraData[n] = sub.value;
- if (sub.type === 'image') {
- s.extraData[n + '.x'] = form.clk_x;
- s.extraData[n + '.y'] = form.clk_y;
- }
- }
- }
-
- var CLIENT_TIMEOUT_ABORT = 1;
- var SERVER_ABORT = 2;
-
- function getDoc(frame) {
- /* it looks like contentWindow or contentDocument do not
- * carry the protocol property in ie8, when running under ssl
- * frame.document is the only valid response document, since
- * the protocol is know but not on the other two objects. strange?
- * "Same origin policy" http://en.wikipedia.org/wiki/Same_origin_policy
- */
-
- var doc = null;
-
- // IE8 cascading access check
- try {
- if (frame.contentWindow) {
- doc = frame.contentWindow.document;
- }
- } catch (err) {
- // IE8 access denied under ssl & missing protocol
- log('cannot get iframe.contentWindow document: ' + err);
- }
-
- if (doc) { // successful getting content
- return doc;
- }
-
- try { // simply checking may throw in ie8 under ssl or mismatched protocol
- doc = frame.contentDocument ? frame.contentDocument : frame.document;
- } catch (err) {
- // last attempt
- log('cannot get iframe.contentDocument: ' + err);
- doc = frame.document;
- }
-
- return doc;
- }
-
- // Rails CSRF hack (thanks to Yvan Barthelemy)
- var csrf_token = $('meta[name=csrf-token]').attr('content');
- var csrf_param = $('meta[name=csrf-param]').attr('content');
-
- if (csrf_param && csrf_token) {
- s.extraData = s.extraData || {};
- s.extraData[csrf_param] = csrf_token;
- }
-
- // take a breath so that pending repaints get some cpu time before the upload starts
- function doSubmit() {
- // make sure form attrs are set
- var t = $form.attr2('target'),
- a = $form.attr2('action'),
- mp = 'multipart/form-data',
- et = $form.attr('enctype') || $form.attr('encoding') || mp;
-
- // update form attrs in IE friendly way
- form.setAttribute('target', id);
- if (!method || /post/i.test(method)) {
- form.setAttribute('method', 'POST');
- }
- if (a !== s.url) {
- form.setAttribute('action', s.url);
- }
-
- // ie borks in some cases when setting encoding
- if (!s.skipEncodingOverride && (!method || /post/i.test(method))) {
- $form.attr({
- encoding : 'multipart/form-data',
- enctype : 'multipart/form-data'
- });
- }
-
- // support timout
- if (s.timeout) {
- timeoutHandle = setTimeout(function() {
- timedOut = true; cb(CLIENT_TIMEOUT_ABORT);
- }, s.timeout);
- }
-
- // look for server aborts
- function checkState() {
- try {
- var state = getDoc(io).readyState;
-
- log('state = ' + state);
- if (state && state.toLowerCase() === 'uninitialized') {
- setTimeout(checkState, 50);
- }
-
- } catch (e) {
- log('Server abort: ', e, ' (', e.name, ')');
- cb(SERVER_ABORT); // eslint-disable-line callback-return
- if (timeoutHandle) {
- clearTimeout(timeoutHandle);
- }
- timeoutHandle = undefined;
- }
- }
-
- // add "extra" data to form if provided in options
- var extraInputs = [];
-
- try {
- if (s.extraData) {
- for (var n in s.extraData) {
- if (s.extraData.hasOwnProperty(n)) {
- // if using the $.param format that allows for multiple values with the same name
- if ($.isPlainObject(s.extraData[n]) && s.extraData[n].hasOwnProperty('name') && s.extraData[n].hasOwnProperty('value')) {
- extraInputs.push(
- $(' ', ownerDocument).val(s.extraData[n].value)
- .appendTo(form)[0]);
- } else {
- extraInputs.push(
- $(' ', ownerDocument).val(s.extraData[n])
- .appendTo(form)[0]);
- }
- }
- }
- }
-
- if (!s.iframeTarget) {
- // add iframe to doc and submit the form
- $io.appendTo($body);
- }
-
- if (io.attachEvent) {
- io.attachEvent('onload', cb);
- } else {
- io.addEventListener('load', cb, false);
- }
-
- setTimeout(checkState, 15);
-
- try {
- form.submit();
-
- } catch (err) {
- // just in case form has element with name/id of 'submit'
- var submitFn = document.createElement('form').submit;
-
- submitFn.apply(form);
- }
-
- } finally {
- // reset attrs and remove "extra" input elements
- form.setAttribute('action', a);
- form.setAttribute('enctype', et); // #380
- if (t) {
- form.setAttribute('target', t);
- } else {
- $form.removeAttr('target');
- }
- $(extraInputs).remove();
- }
- }
-
- if (s.forceSync) {
- doSubmit();
- } else {
- setTimeout(doSubmit, 10); // this lets dom updates render
- }
-
- var data, doc, domCheckCount = 50, callbackProcessed;
-
- function cb(e) {
- if (xhr.aborted || callbackProcessed) {
- return;
- }
-
- doc = getDoc(io);
- if (!doc) {
- log('cannot access response document');
- e = SERVER_ABORT;
- }
- if (e === CLIENT_TIMEOUT_ABORT && xhr) {
- xhr.abort('timeout');
- deferred.reject(xhr, 'timeout');
-
- return;
-
- } else if (e === SERVER_ABORT && xhr) {
- xhr.abort('server abort');
- deferred.reject(xhr, 'error', 'server abort');
-
- return;
- }
-
- if (!doc || doc.location.href === s.iframeSrc) {
- // response not received yet
- if (!timedOut) {
- return;
- }
- }
-
- if (io.detachEvent) {
- io.detachEvent('onload', cb);
- } else {
- io.removeEventListener('load', cb, false);
- }
-
- var status = 'success', errMsg;
-
- try {
- if (timedOut) {
- throw 'timeout';
- }
-
- var isXml = s.dataType === 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
-
- log('isXml=' + isXml);
-
- if (!isXml && window.opera && (doc.body === null || !doc.body.innerHTML)) {
- if (--domCheckCount) {
- // in some browsers (Opera) the iframe DOM is not always traversable when
- // the onload callback fires, so we loop a bit to accommodate
- log('requeing onLoad callback, DOM not available');
- setTimeout(cb, 250);
-
- return;
- }
- // let this fall through because server response could be an empty document
- // log('Could not access iframe DOM after mutiple tries.');
- // throw 'DOMException: not available';
- }
-
- // log('response detected');
- var docRoot = doc.body ? doc.body : doc.documentElement;
-
- xhr.responseText = docRoot ? docRoot.innerHTML : null;
- xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
- if (isXml) {
- s.dataType = 'xml';
- }
- xhr.getResponseHeader = function(header){
- var headers = {'content-type': s.dataType};
-
- return headers[header.toLowerCase()];
- };
- // support for XHR 'status' & 'statusText' emulation :
- if (docRoot) {
- xhr.status = Number(docRoot.getAttribute('status')) || xhr.status;
- xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
- }
-
- var dt = (s.dataType || '').toLowerCase();
- var scr = /(json|script|text)/.test(dt);
-
- if (scr || s.textarea) {
- // see if user embedded response in textarea
- var ta = doc.getElementsByTagName('textarea')[0];
-
- if (ta) {
- xhr.responseText = ta.value;
- // support for XHR 'status' & 'statusText' emulation :
- xhr.status = Number(ta.getAttribute('status')) || xhr.status;
- xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;
-
- } else if (scr) {
- // account for browsers injecting pre around json response
- var pre = doc.getElementsByTagName('pre')[0];
- var b = doc.getElementsByTagName('body')[0];
-
- if (pre) {
- xhr.responseText = pre.textContent ? pre.textContent : pre.innerText;
- } else if (b) {
- xhr.responseText = b.textContent ? b.textContent : b.innerText;
- }
- }
-
- } else if (dt === 'xml' && !xhr.responseXML && xhr.responseText) {
- xhr.responseXML = toXml(xhr.responseText); // eslint-disable-line no-use-before-define
- }
-
- try {
- data = httpData(xhr, dt, s); // eslint-disable-line no-use-before-define
-
- } catch (err) {
- status = 'parsererror';
- xhr.error = errMsg = (err || status);
- }
-
- } catch (err) {
- log('error caught: ', err);
- status = 'error';
- xhr.error = errMsg = (err || status);
- }
-
- if (xhr.aborted) {
- log('upload aborted');
- status = null;
- }
-
- if (xhr.status) { // we've set xhr.status
- status = ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) ? 'success' : 'error';
- }
-
- // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
- if (status === 'success') {
- if (s.success) {
- s.success.call(s.context, data, 'success', xhr);
- }
-
- deferred.resolve(xhr.responseText, 'success', xhr);
-
- if (g) {
- $.event.trigger('ajaxSuccess', [xhr, s]);
- }
-
- } else if (status) {
- if (typeof errMsg === 'undefined') {
- errMsg = xhr.statusText;
- }
- if (s.error) {
- s.error.call(s.context, xhr, status, errMsg);
- }
- deferred.reject(xhr, 'error', errMsg);
- if (g) {
- $.event.trigger('ajaxError', [xhr, s, errMsg]);
- }
- }
-
- if (g) {
- $.event.trigger('ajaxComplete', [xhr, s]);
- }
-
- if (g && !--$.active) {
- $.event.trigger('ajaxStop');
- }
-
- if (s.complete) {
- s.complete.call(s.context, xhr, status);
- }
-
- callbackProcessed = true;
- if (s.timeout) {
- clearTimeout(timeoutHandle);
- }
-
- // clean up
- setTimeout(function() {
- if (!s.iframeTarget) {
- $io.remove();
- } else { // adding else to clean up existing iframe response.
- $io.attr('src', s.iframeSrc);
- }
- xhr.responseXML = null;
- }, 100);
- }
-
- var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
- if (window.ActiveXObject) {
- doc = new ActiveXObject('Microsoft.XMLDOM');
- doc.async = 'false';
- doc.loadXML(s);
-
- } else {
- doc = (new DOMParser()).parseFromString(s, 'text/xml');
- }
-
- return (doc && doc.documentElement && doc.documentElement.nodeName !== 'parsererror') ? doc : null;
- };
- var parseJSON = $.parseJSON || function(s) {
- /* jslint evil:true */
- return window['eval']('(' + s + ')'); // eslint-disable-line dot-notation
- };
-
- var httpData = function(xhr, type, s) { // mostly lifted from jq1.4.4
-
- var ct = xhr.getResponseHeader('content-type') || '',
- xml = ((type === 'xml' || !type) && ct.indexOf('xml') >= 0),
- data = xml ? xhr.responseXML : xhr.responseText;
-
- if (xml && data.documentElement.nodeName === 'parsererror') {
- if ($.error) {
- $.error('parsererror');
- }
- }
- if (s && s.dataFilter) {
- data = s.dataFilter(data, type);
- }
- if (typeof data === 'string') {
- if ((type === 'json' || !type) && ct.indexOf('json') >= 0) {
- data = parseJSON(data);
- } else if ((type === 'script' || !type) && ct.indexOf('javascript') >= 0) {
- $.globalEval(data);
- }
- }
-
- return data;
- };
-
- return deferred;
- }
- };
-
- /**
- * ajaxForm() provides a mechanism for fully automating form submission.
- *
- * The advantages of using this method instead of ajaxSubmit() are:
- *
- * 1: This method will include coordinates for elements (if the element
- * is used to submit the form).
- * 2. This method will include the submit element's name/value data (for the element that was
- * used to submit the form).
- * 3. This method binds the submit() method to the form for you.
- *
- * The options argument for ajaxForm works exactly as it does for ajaxSubmit. ajaxForm merely
- * passes the options argument along after properly binding events for submit elements and
- * the form itself.
- */
- $.fn.ajaxForm = function(options, data, dataType, onSuccess) {
- if (typeof options === 'string' || (options === false && arguments.length > 0)) {
- options = {
- 'url' : options,
- 'data' : data,
- 'dataType' : dataType
- };
-
- if (typeof onSuccess === 'function') {
- options.success = onSuccess;
- }
- }
-
- options = options || {};
- options.delegation = options.delegation && $.isFunction($.fn.on);
-
- // in jQuery 1.3+ we can fix mistakes with the ready state
- if (!options.delegation && this.length === 0) {
- var o = {s: this.selector, c: this.context};
-
- if (!$.isReady && o.s) {
- log('DOM not ready, queuing ajaxForm');
- $(function() {
- $(o.s, o.c).ajaxForm(options);
- });
-
- return this;
- }
-
- // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
- log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
-
- return this;
- }
-
- if (options.delegation) {
- $(document)
- .off('submit.form-plugin', this.selector, doAjaxSubmit)
- .off('click.form-plugin', this.selector, captureSubmittingElement)
- .on('submit.form-plugin', this.selector, options, doAjaxSubmit)
- .on('click.form-plugin', this.selector, options, captureSubmittingElement);
-
- return this;
- }
-
- return this.ajaxFormUnbind()
- .on('submit.form-plugin', options, doAjaxSubmit)
- .on('click.form-plugin', options, captureSubmittingElement);
- };
-
- // private event handlers
- function doAjaxSubmit(e) {
- /* jshint validthis:true */
- var options = e.data;
-
- if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
- e.preventDefault();
- $(e.target).closest('form').ajaxSubmit(options); // #365
- }
- }
-
- function captureSubmittingElement(e) {
- /* jshint validthis:true */
- var target = e.target;
- var $el = $(target);
-
- if (!$el.is('[type=submit],[type=image]')) {
- // is this a child element of the submit el? (ex: a span within a button)
- var t = $el.closest('[type=submit]');
-
- if (t.length === 0) {
- return;
- }
- target = t[0];
- }
-
- var form = target.form;
-
- form.clk = target;
-
- if (target.type === 'image') {
- if (typeof e.offsetX !== 'undefined') {
- form.clk_x = e.offsetX;
- form.clk_y = e.offsetY;
-
- } else if (typeof $.fn.offset === 'function') {
- var offset = $el.offset();
-
- form.clk_x = e.pageX - offset.left;
- form.clk_y = e.pageY - offset.top;
-
- } else {
- form.clk_x = e.pageX - target.offsetLeft;
- form.clk_y = e.pageY - target.offsetTop;
- }
- }
- // clear form vars
- setTimeout(function() {
- form.clk = form.clk_x = form.clk_y = null;
- }, 100);
- }
-
-
- // ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
- $.fn.ajaxFormUnbind = function() {
- return this.off('submit.form-plugin click.form-plugin');
- };
-
- /**
- * formToArray() gathers form element data into an array of objects that can
- * be passed to any of the following ajax functions: $.get, $.post, or load.
- * Each object in the array has both a 'name' and 'value' property. An example of
- * an array for a simple login form might be:
- *
- * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
- *
- * It is this array that is passed to pre-submit callback functions provided to the
- * ajaxSubmit() and ajaxForm() methods.
- */
- $.fn.formToArray = function(semantic, elements, filtering) {
- var a = [];
-
- if (this.length === 0) {
- return a;
- }
-
- var form = this[0];
- var formId = this.attr('id');
- var els = (semantic || typeof form.elements === 'undefined') ? form.getElementsByTagName('*') : form.elements;
- var els2;
-
- if (els) {
- els = $.makeArray(els); // convert to standard array
- }
-
- // #386; account for inputs outside the form which use the 'form' attribute
- // FinesseRus: in non-IE browsers outside fields are already included in form.elements.
- if (formId && (semantic || /(Edge|Trident)\//.test(navigator.userAgent))) {
- els2 = $(':input[form="' + formId + '"]').get(); // hat tip @thet
- if (els2.length) {
- els = (els || []).concat(els2);
- }
- }
-
- if (!els || !els.length) {
- return a;
- }
-
- if ($.isFunction(filtering)) {
- els = $.map(els, filtering);
- }
-
- var i, j, n, v, el, max, jmax;
-
- for (i = 0, max = els.length; i < max; i++) {
- el = els[i];
- n = el.name;
- if (!n || el.disabled) {
- continue;
- }
-
- if (semantic && form.clk && el.type === 'image') {
- // handle image inputs on the fly when semantic == true
- if (form.clk === el) {
- a.push({name: n, value: $(el).val(), type: el.type});
- a.push({name: n + '.x', value: form.clk_x}, {name: n + '.y', value: form.clk_y});
- }
- continue;
- }
-
- v = $.fieldValue(el, true);
- if (v && v.constructor === Array) {
- if (elements) {
- elements.push(el);
- }
- for (j = 0, jmax = v.length; j < jmax; j++) {
- a.push({name: n, value: v[j]});
- }
-
- } else if (feature.fileapi && el.type === 'file') {
- if (elements) {
- elements.push(el);
- }
-
- var files = el.files;
-
- if (files.length) {
- for (j = 0; j < files.length; j++) {
- a.push({name: n, value: files[j], type: el.type});
- }
- } else {
- // #180
- a.push({name: n, value: '', type: el.type});
- }
-
- } else if (v !== null && typeof v !== 'undefined') {
- if (elements) {
- elements.push(el);
- }
- a.push({name: n, value: v, type: el.type, required: el.required});
- }
- }
-
- if (!semantic && form.clk) {
- // input type=='image' are not found in elements array! handle it here
- var $input = $(form.clk), input = $input[0];
-
- n = input.name;
-
- if (n && !input.disabled && input.type === 'image') {
- a.push({name: n, value: $input.val()});
- a.push({name: n + '.x', value: form.clk_x}, {name: n + '.y', value: form.clk_y});
- }
- }
-
- return a;
- };
-
- /**
- * Serializes form data into a 'submittable' string. This method will return a string
- * in the format: name1=value1&name2=value2
- */
- $.fn.formSerialize = function(semantic) {
- // hand off to jQuery.param for proper encoding
- return $.param(this.formToArray(semantic));
- };
-
- /**
- * Serializes all field elements in the jQuery object into a query string.
- * This method will return a string in the format: name1=value1&name2=value2
- */
- $.fn.fieldSerialize = function(successful) {
- var a = [];
-
- this.each(function() {
- var n = this.name;
-
- if (!n) {
- return;
- }
-
- var v = $.fieldValue(this, successful);
-
- if (v && v.constructor === Array) {
- for (var i = 0, max = v.length; i < max; i++) {
- a.push({name: n, value: v[i]});
- }
-
- } else if (v !== null && typeof v !== 'undefined') {
- a.push({name: this.name, value: v});
- }
- });
-
- // hand off to jQuery.param for proper encoding
- return $.param(a);
- };
-
- /**
- * Returns the value(s) of the element in the matched set. For example, consider the following form:
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- * var v = $('input[type=text]').fieldValue();
- * // if no values are entered into the text inputs
- * v === ['','']
- * // if values entered into the text inputs are 'foo' and 'bar'
- * v === ['foo','bar']
- *
- * var v = $('input[type=checkbox]').fieldValue();
- * // if neither checkbox is checked
- * v === undefined
- * // if both checkboxes are checked
- * v === ['B1', 'B2']
- *
- * var v = $('input[type=radio]').fieldValue();
- * // if neither radio is checked
- * v === undefined
- * // if first radio is checked
- * v === ['C1']
- *
- * The successful argument controls whether or not the field element must be 'successful'
- * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
- * The default value of the successful argument is true. If this value is false the value(s)
- * for each element is returned.
- *
- * Note: This method *always* returns an array. If no valid value can be determined the
- * array will be empty, otherwise it will contain one or more values.
- */
- $.fn.fieldValue = function(successful) {
- for (var val = [], i = 0, max = this.length; i < max; i++) {
- var el = this[i];
- var v = $.fieldValue(el, successful);
-
- if (v === null || typeof v === 'undefined' || (v.constructor === Array && !v.length)) {
- continue;
- }
-
- if (v.constructor === Array) {
- $.merge(val, v);
- } else {
- val.push(v);
- }
- }
-
- return val;
- };
-
- /**
- * Returns the value of the field element.
- */
- $.fieldValue = function(el, successful) {
- var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
-
- if (typeof successful === 'undefined') {
- successful = true;
- }
-
- /* eslint-disable no-mixed-operators */
- if (successful && (!n || el.disabled || t === 'reset' || t === 'button' ||
- (t === 'checkbox' || t === 'radio') && !el.checked ||
- (t === 'submit' || t === 'image') && el.form && el.form.clk !== el ||
- tag === 'select' && el.selectedIndex === -1)) {
- /* eslint-enable no-mixed-operators */
- return null;
- }
-
- if (tag === 'select') {
- var index = el.selectedIndex;
-
- if (index < 0) {
- return null;
- }
-
- var a = [], ops = el.options;
- var one = (t === 'select-one');
- var max = (one ? index + 1 : ops.length);
-
- for (var i = (one ? index : 0); i < max; i++) {
- var op = ops[i];
-
- if (op.selected && !op.disabled) {
- var v = op.value;
-
- if (!v) { // extra pain for IE...
- v = (op.attributes && op.attributes.value && !(op.attributes.value.specified)) ? op.text : op.value;
- }
-
- if (one) {
- return v;
- }
-
- a.push(v);
- }
- }
-
- return a;
- }
-
- return $(el).val().replace(rCRLF, '\r\n');
- };
-
- /**
- * Clears the form data. Takes the following actions on the form's input fields:
- * - input text fields will have their 'value' property set to the empty string
- * - select elements will have their 'selectedIndex' property set to -1
- * - checkbox and radio inputs will have their 'checked' property set to false
- * - inputs of type submit, button, reset, and hidden will *not* be effected
- * - button elements will *not* be effected
- */
- $.fn.clearForm = function(includeHidden) {
- return this.each(function() {
- $('input,select,textarea', this).clearFields(includeHidden);
- });
- };
-
- /**
- * Clears the selected form elements.
- */
- $.fn.clearFields = $.fn.clearInputs = function(includeHidden) {
- var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
-
- return this.each(function() {
- var t = this.type, tag = this.tagName.toLowerCase();
-
- if (re.test(t) || tag === 'textarea') {
- this.value = '';
-
- } else if (t === 'checkbox' || t === 'radio') {
- this.checked = false;
-
- } else if (tag === 'select') {
- this.selectedIndex = -1;
-
- } else if (t === 'file') {
- if (/MSIE/.test(navigator.userAgent)) {
- $(this).replaceWith($(this).clone(true));
- } else {
- $(this).val('');
- }
-
- } else if (includeHidden) {
- // includeHidden can be the value true, or it can be a selector string
- // indicating a special test; for example:
- // $('#myForm').clearForm('.special:hidden')
- // the above would clean hidden inputs that have the class of 'special'
- if ((includeHidden === true && /hidden/.test(t)) ||
- (typeof includeHidden === 'string' && $(this).is(includeHidden))) {
- this.value = '';
- }
- }
- });
- };
-
-
- /**
- * Resets the form data or individual elements. Takes the following actions
- * on the selected tags:
- * - all fields within form elements will be reset to their original value
- * - input / textarea / select fields will be reset to their original value
- * - option / optgroup fields (for multi-selects) will defaulted individually
- * - non-multiple options will find the right select to default
- * - label elements will be searched against its 'for' attribute
- * - all others will be searched for appropriate children to default
- */
- $.fn.resetForm = function() {
- return this.each(function() {
- var el = $(this);
- var tag = this.tagName.toLowerCase();
-
- switch (tag) {
- case 'input':
- this.checked = this.defaultChecked;
- // fall through
-
- case 'textarea':
- this.value = this.defaultValue;
-
- return true;
-
- case 'option':
- case 'optgroup':
- var select = el.parents('select');
-
- if (select.length && select[0].multiple) {
- if (tag === 'option') {
- this.selected = this.defaultSelected;
- } else {
- el.find('option').resetForm();
- }
- } else {
- select.resetForm();
- }
-
- return true;
-
- case 'select':
- el.find('option').each(function(i) { // eslint-disable-line consistent-return
- this.selected = this.defaultSelected;
- if (this.defaultSelected && !el[0].multiple) {
- el[0].selectedIndex = i;
-
- return false;
- }
- });
-
- return true;
-
- case 'label':
- var forEl = $(el.attr('for'));
- var list = el.find('input,select,textarea');
-
- if (forEl[0]) {
- list.unshift(forEl[0]);
- }
-
- list.resetForm();
-
- return true;
-
- case 'form':
- // guard against an input with the name of 'reset'
- // note that IE reports the reset function as an 'object'
- if (typeof this.reset === 'function' || (typeof this.reset === 'object' && !this.reset.nodeType)) {
- this.reset();
- }
-
- return true;
-
- default:
- el.find('form,input,label,select,textarea').resetForm();
-
- return true;
- }
- });
- };
-
- /**
- * Enables or disables any matching elements.
- */
- $.fn.enable = function(b) {
- if (typeof b === 'undefined') {
- b = true;
- }
-
- return this.each(function() {
- this.disabled = !b;
- });
- };
-
- /**
- * Checks/unchecks any matching checkboxes or radio buttons and
- * selects/deselects and matching option elements.
- */
- $.fn.selected = function(select) {
- if (typeof select === 'undefined') {
- select = true;
- }
-
- return this.each(function() {
- var t = this.type;
-
- if (t === 'checkbox' || t === 'radio') {
- this.checked = select;
-
- } else if (this.tagName.toLowerCase() === 'option') {
- var $sel = $(this).parent('select');
-
- if (select && $sel[0] && $sel[0].type === 'select-one') {
- // deselect all other options
- $sel.find('option').selected(false);
- }
-
- this.selected = select;
- }
- });
- };
-
- // expose debug var
- $.fn.ajaxSubmit.debug = false;
-
- // helper fn for console logging
- function log() {
- if (!$.fn.ajaxSubmit.debug) {
- return;
- }
-
- var msg = '[jquery.form] ' + Array.prototype.join.call(arguments, '');
-
- if (window.console && window.console.log) {
- window.console.log(msg);
-
- } else if (window.opera && window.opera.postError) {
- window.opera.postError(msg);
- }
- }
-}));
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/.eslintrc.js b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/.eslintrc.js
deleted file mode 100644
index edd586ad49..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/.eslintrc.js
+++ /dev/null
@@ -1,32 +0,0 @@
-module.exports = {
- "env": {
- "browser": true,
- "jquery": true,
- "node": true,
- "mocha": true
- },
- "parserOptions": {
- "ecmaVersion": 5,
- "sourceType": "script"
- },
- "rules": {
- "comma-spacing": "warn",
- "eqeqeq": "warn",
- "newline-after-var": "off",
- "newline-before-return": "off",
- "no-multi-spaces": "warn",
- "object-curly-spacing": [
- "warn",
- "never",
- {
- "arraysInObjects": true,
- "objectsInObjects": true
- }
- ],
- "strict": [
- "warn",
- "global"
- ],
- "yoda": "warn"
- }
-};
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/doc-with-scripts.html b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/doc-with-scripts.html
deleted file mode 100644
index 8e5fa6d6c8..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/doc-with-scripts.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-Lorem ipsum dolor sit amet
-
-
-
-Lorem ipsum dolor sit amet
-
-
-
-
-
-Lorem ipsum dolor sit amet
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/json.json b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/json.json
deleted file mode 100644
index d5dad436de..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/json.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "name": "jquery-test" }
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/json.txt b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/json.txt
deleted file mode 100644
index d5dad436de..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/json.txt
+++ /dev/null
@@ -1 +0,0 @@
-{ "name": "jquery-test" }
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/script.txt b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/script.txt
deleted file mode 100644
index 99c5849e9d..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/script.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-formScriptTest = function() {
- // no-op
-}
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/test.xml b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/test.xml
deleted file mode 100644
index b16b62da4b..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/test.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/text.html b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/text.html
deleted file mode 100644
index c06ef4b8eb..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/ajax/text.html
+++ /dev/null
@@ -1,12 +0,0 @@
-Lorem ipsum dolor sit amet
-consectetuer adipiscing elit
-Sed lorem leo
-lorem leo consectetuer adipiscing elit
-Sed lorem leo
-rhoncus sit amet
-elementum at
-bibendum at, eros
-Cras at mi et tortor egestas vestibulum
-sed Cras at mi vestibulum
-Phasellus sed felis sit amet
-orci dapibus semper.
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/img/submit.gif b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/img/submit.gif
deleted file mode 100644
index cb930be18d..0000000000
Binary files a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/img/submit.gif and /dev/null differ
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/test.html b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/test.html
deleted file mode 100644
index 6378347fee..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/test.html
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-
-
-
- Example Mocha Test
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/test.js b/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/test.js
deleted file mode 100644
index 13bd943157..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/form-4.2.2/test/test.js
+++ /dev/null
@@ -1,914 +0,0 @@
-/* global chai, scriptCount */
-
-'use strict';
-
-// helper method
-var arrayCount = function(arr, key) {
- var count = 0;
- for (var i = 0; i < arr.length; i++) {
- if (arr[i].name === key) {
- count++;
- }
- }
- return count;
-};
-
-// helper method
-var arrayValue = function(arr, key) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i].name === key) {
- return arr[i].value;
- }
- }
- return undefined;
-};
-
-
-var assert = chai.assert;
-var fixture;
-
-describe('form', function() {
- before(function() {
- fixture = $('#main').html();
- });
-
- beforeEach(function() {
- $('#main').html(fixture);
- });
-
-
- it('"action" and "method" form attributes', function() {
- var f = $('#form1');
- assert.strictEqual(f.attr('action'), 'ajax/text.html', 'form "action"');
- assert.strictEqual(f.attr('method'), 'get', 'form "method"');
- });
-
- it('formToArray: multi-select', function() {
- var a = $('#form1').formToArray();
- assert.strictEqual(a.constructor, Array, 'type check');
- assert.strictEqual(a.length, 13, 'array length');
- assert.strictEqual(arrayCount(a, 'Multiple'), 3, 'multi-select');
- });
-
- it('formToArray: "action" and "method" inputs', function() {
- var a = $('#form1').formToArray();
- assert.strictEqual(a.constructor, Array, 'type check');
- assert.strictEqual(arrayValue(a, 'action'), '1', 'input name=action');
- assert.strictEqual(arrayValue(a, 'method'), '2', 'input name=method');
- });
-
- it('formToArray: semantic test', function() {
- var formData = $('#form2').formToArray(true);
- var testData = ['a','b','c','d','e','f'];
- for (var i = 0; i < 6; i++) {
- assert.strictEqual(formData[i].name, testData[i], 'match value at index=' + i);
- }
- });
-
- it('formToArray: text promotion for missing value attributes', function() {
- var expected = [
- { name: 'A', value: ''},
- { name: 'B', value: 'MISSING_ATTR'},
- { name: 'C', value: ''},
- { name: 'C', value: 'MISSING_ATTR'}
- ];
- var a = $('#form6').formToArray(true);
-
- // verify all the option values
- for (var i = 0; i < a.length; i++) {
- assert.strictEqual(a[i].name, expected[i].name, 'Name: ' + a[i].name + ' = ' + expected[i].name);
- assert.strictEqual(a[i].value, expected[i].value, 'Value: ' + a[i].value + ' = ' + expected[i].value);
- }
- });
-
- it('formToArray: outside fields', function() {
- var formData = $('#form10').formToArray();
- assert.strictEqual(formData.length, 2, 'There are two "successful" elements of the form');
- });
-
- // test string serialization
- it('serialize: param count', function() {
- var s = $('#form1').formSerialize();
- assert.ok(s.constructor == String, 'type check');
- assert.ok(s.split('&').length == 13, 'string array length');
- });
-
- // test support for input elements not contained within a form
- it('serialize: pseudo form', function() {
- var s = $('#pseudo *').fieldSerialize();
- assert.ok(s.constructor == String, 'type check');
- assert.ok(s.split('&').length == 3, 'string array length');
- });
-
-
- // test resetForm
- it('resetForm (text input)', function() {
- var $el = $('#form1 input[name=Name]');
- var val = $el.val();
- assert.ok('MyName1' == val, 'beforeSubmit: ' + val);
- $el.val('test');
- val = $el.val();
- assert.ok('test' == $el.val(), 'update: ' + val);
- $('#form1').resetForm();
- val = $el.val();
- assert.ok('MyName1' == val, 'success: ' + val);
- });
-
- // test resetForm
- it('resetForm (select)', function() {
- var $el = $('#form1 select[name=Single]');
- var val = $el.val();
- assert.ok('one' == val, 'beforeSubmit: ' + val);
- $el.val('two');
- val = $el.val();
- assert.ok('two' == $el.val(), 'update: ' + val);
- $('#form1').resetForm();
- val = $el.val();
- assert.ok('one' == val, 'success: ' + val);
- });
-
- // test resetForm
- it('resetForm (textarea)', function() {
- var $el = $('#form1 textarea');
- var val = $el.val();
- assert.ok('This is Form1' == val, 'beforeSubmit: ' + val);
- $el.val('test');
- val = $el.val();
- assert.ok('test' == val, 'udpate: ' + val);
- $('#form1').resetForm();
- val = $el.val();
- assert.ok('This is Form1' == val, 'success: ' + val);
- });
-
- // test resetForm
- it('resetForm (checkbox)', function() {
- var el = $('#form1 input:checkbox:checked')[0];
- var val = el.value;
- assert.ok(el.checked, 'beforeSubmit: ' + el.checked);
- el.checked = false;
- assert.ok(!el.checked, 'update: ' + el.checked);
- $('#form1').resetForm();
- assert.ok(el.checked, 'success: ' + el.checked);
- });
-
- // test resetForm
- it('resetForm (radio)', function() {
- var el = $('#form1 input:radio:checked')[0];
- var val = el.value;
- assert.ok(el.checked, 'beforeSubmit: ' + el.checked);
- el.checked = false;
- assert.ok(!el.checked, 'update: ' + el.checked);
- $('#form1').resetForm();
- assert.ok(el.checked, 'success: ' + el.checked);
- });
-
-
- // test clearForm
- it('clearForm (text input)', function() {
- var $el = $('#form1 input[name=Name]');
- var val = $el.val();
- assert.ok('MyName1' == val, 'beforeSubmit: ' + val);
- $('#form1').clearForm();
- val = $el.val();
- assert.ok('' == val, 'success: ' + val);
- });
-
- // test clearForm
- it('clearForm (select)', function() {
- var $el = $('#form1 select[name=Single]');
- var val = $el.val();
- assert.ok('one' == val, 'beforeSubmit: ' + val);
- $('#form1').clearForm();
- val = $el.val();
- assert.ok(!val, 'success: ' + val);
- });
-
- // test clearForm; here we're testing that a hidden field is NOT cleared
- it('clearForm: (hidden input)', function() {
- var $el = $('#form1 input:hidden');
- var val = $el.val();
- assert.ok('hiddenValue' == val, 'beforeSubmit: ' + val);
- $('#form1').clearForm();
- val = $el.val();
- assert.ok('hiddenValue' == val, 'success: ' + val);
- });
-
-
- // test clearForm; here we're testing that a submit element is NOT cleared
- it('clearForm: (submit input)', function() {
- var $el = $('#form1 input:submit');
- var val = $el.val();
- assert.ok('Submit1' == val, 'beforeSubmit: ' + val);
- $('#form1').clearForm();
- val = $el.val();
- assert.ok('Submit1' == val, 'success: ' + val);
- });
-
- // test clearForm
- it('clearForm (checkbox)', function() {
- var el = $('#form1 input:checkbox:checked')[0];
- assert.ok(el.checked, 'beforeSubmit: ' + el.checked);
- $('#form1').clearForm();
- assert.ok(!el.checked, 'success: ' + el.checked);
- });
-
- // test clearForm
- it('clearForm (radio)', function() {
- var el = $('#form1 input:radio:checked')[0];
- assert.ok(el.checked, 'beforeSubmit: ' + el.checked);
- $('#form1').clearForm();
- assert.ok(!el.checked, 'success: ' + el.checked);
- });
-
- // test ajaxSubmit target update
- it('ajaxSubmit: target == String', function() {
- $('#targetDiv').empty();
- // stop();
- var opts = {
- target: '#targetDiv',
- success: function() { // post-callback
- assert.ok(true, 'post-callback');
- assert.ok($('#targetDiv').text().match('Lorem ipsum'), 'targetDiv updated');
- // start();
- }
- };
-
- // expect(2);
- $('#form3').ajaxSubmit(opts);
- });
-
- // test passing jQuery object as the target
- it('ajaxSubmit: target == jQuery object', function() {
- // stop();
- var target = $('#targetDiv');
- target.empty();
-
- var opts = {
- target: target,
- success: function(responseText) { // post-callback
- assert.ok(true, 'post-callback');
- assert.ok($('#targetDiv').text().match('Lorem ipsum'), 'targetDiv updated');
- // start();
- }
- };
-
- // expect(2);
- $('#form2').ajaxSubmit(opts);
- });
-
- // test passing DOM element as the target
- it('ajaxSubmit: target == DOM element', function() {
- // stop();
- $('#targetDiv').empty();
- var el = $('#targetDiv')[0];
-
- var opts = {
- target: '#targetDiv',
- success: function(responseText) { // post-callback
- assert.ok(true, 'post-callback');
- assert.ok($('#targetDiv').text().match('Lorem ipsum'), 'targetDiv updated');
- // start();
- }
- };
-
- // expect(2);
- $('#form2').ajaxSubmit(opts);
- });
-
- // test simulated $.load behavior
- it('ajaxSubmit: load target with scripts', function() {
- // stop();
- $('#targetDiv').empty();
-
- var opts = {
- target: '#targetDiv',
- url: 'ajax/doc-with-scripts.html?' + new Date().getTime(),
- success: function(responseText) { // post-callback
- assert.ok(true, 'success-callback');
- assert.ok($('#targetDiv').text().match('Lorem ipsum'), 'targetDiv updated');
- assert.ok(typeof unitTestVariable1 != 'undefined', 'first script block executed');
- assert.ok(typeof unitTestVariable2 != 'undefined', 'second script block executed');
- assert.ok(typeof scriptCount != 'undefined', 'third script block executed');
- assert.ok(scriptCount == 1, 'scripts executed once: ' + scriptCount);
- // start();
- }
- };
-
- // expect(6);
- $('#form2').ajaxSubmit(opts);
- });
-
- // test ajaxSubmit pre-submit callback
- it('ajaxSubmit: pre-submit callback', function() {
- var opts = {
- beforeSubmit: function(a, jq) { // pre-submit callback
- assert.ok(true, 'pre-submit callback');
- assert.ok(a.constructor == Array, 'type check array');
- assert.ok(jq.jquery, 'type check jQuery');
- assert.ok(jq[0].tagName.toLowerCase() == 'form', 'jQuery arg == "form": ' + jq[0].tagName.toLowerCase());
- }
- };
-
- // expect(4);
- $('#form3').ajaxSubmit(opts);
- });
-
- // test ajaxSubmit post-submit callback for response and status text
- it('ajaxSubmit: post-submit callback', function() {
- // stop();
-
- var opts = {
- success: function(responseText, statusText) { // post-submit callback
- assert.ok(true, 'post-submit callback');
- assert.ok(responseText.match('Lorem ipsum'), 'responseText');
- assert.ok(statusText == 'success', 'statusText');
- // start();
- }
- };
-
- // expect(3);
- $('#form3').ajaxSubmit(opts);
- });
-
- // test ajaxSubmit with function argument
- it('ajaxSubmit: function arg', function() {
- // stop();
-
- // expect(1);
- $('#form3').ajaxSubmit(function() {
- assert.ok(true, 'callback hit');
- // start();
- });
- });
-
- // test semantic support via ajaxSubmit's pre-submit callback
- it('ajaxSubmit: semantic test', function() {
- var testData = ['a','b','c','d','e','f'];
-
- var opts = {
- semantic: true,
- beforeSubmit: function(a, jq) { // pre-submit callback
- assert.ok(true, 'pre-submit callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- for (var i = 0; i < a.length; i++) {
- assert.ok(a[i].name == testData[i], 'match value at index=' + i);
- }
- }
- };
-
- // expect(9);
- $('#form2').ajaxSubmit(opts);
- });
-
- // test json datatype
- it('ajaxSubmit: dataType == json', function() {
- // stop();
-
- var opts = {
- url: 'ajax/json.json',
- dataType: 'json',
- success: function(data, statusText) { // post-submit callback
- // assert that the json data was evaluated
- assert.ok(typeof data == 'object', 'json data type');
- assert.ok(data.name == 'jquery-test', 'json data contents');
- // start();
- }
- };
-
- // expect(2);
- $('#form2').ajaxSubmit(opts);
- });
-
-
- // test script datatype
- it('ajaxSubmit: dataType == script', function() {
- // stop();
-
- var opts = {
- url: 'ajax/script.txt?' + new Date().getTime(), // don't let ie cache it
- dataType: 'script',
- success: function(responseText, statusText) { // post-submit callback
- assert.ok(typeof formScriptTest == 'function', 'script evaluated');
- assert.ok(responseText.match('formScriptTest'), 'script returned');
- // start();
- }
- };
-
- // expect(2);
- $('#form2').ajaxSubmit(opts);
- });
-
- // test xml datatype
- it('ajaxSubmit: dataType == xml', function() {
- // stop();
-
- var opts = {
- url: 'ajax/test.xml',
- dataType: 'xml',
- success: function(responseXML, statusText) { // post-submit callback
- assert.ok(typeof responseXML == 'object', 'data type xml');
- assert.ok($('test', responseXML).size() == 3, 'xml data query');
- // start();
- }
- };
-
- // expect(2);
- $('#form2').ajaxSubmit(opts);
- });
-
-
- // test that args embedded in the action are honored; no real way
- // to assert this so successful callback is used to signal success
- it('ajaxSubmit: existing args in action attr', function() {
- // stop();
-
- var opts = {
- success: function() { // post-submit callback
- assert.ok(true, 'post callback');
- // start();
- }
- };
-
- // expect(1);
- $('#form5').ajaxSubmit(opts);
- });
-
- // test ajaxSubmit using pre-submit callback to cancel submit
- it('ajaxSubmit: cancel submit', function() {
-
- var opts = {
- beforeSubmit: function(a, jq) { // pre-submit callback
- assert.ok(true, 'pre-submit callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- return false; // return false to abort submit
- },
- success: function() { // post-submit callback
- assert.ok(false, 'should not hit this post-submit callback');
- }
- };
-
- // expect(3);
- $('#form3').ajaxSubmit(opts);
- });
-
- // test submitting a pseudo-form
- it('ajaxSubmit: pseudo-form', function() {
- // stop();
-
- var opts = {
- beforeSubmit: function(a, jq) { // pre-submit callback
- assert.ok(true, 'pre-submit callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- assert.ok(jq[0].tagName.toLowerCase() == 'div', 'jQuery arg == "div"');
- },
- success: function() { // post-submit callback
- assert.ok(true, 'post-submit callback');
- // start();
- },
- // url and method must be provided for a pseudo form since they can
- // not be extracted from the markup
- url: 'ajax/text.html',
- type: 'post'
- };
-
- // expect(5);
- $('#pseudo').ajaxSubmit(opts);
- });
-
- // test eval of json response
- it('ajaxSubmit: evaluate response', function() {
- // stop();
-
- var opts = {
- success: function(responseText) { // post-callback
- assert.ok(true, 'post-callback');
- var data = eval.call(window, '(' + responseText + ')');
- assert.ok(data.name == 'jquery-test', 'evaled response');
- // start();
- },
- url: 'ajax/json.txt'
- };
-
- // expect(2);
- $('#form2').ajaxSubmit(opts);
- });
-
-
- // test pre and post callbacks for ajaxForm
- it('ajaxForm: pre and post callbacks', function() {
- // stop();
-
- var opts = {
- beforeSubmit: function(a, jq) { // pre-submit callback
- assert.ok(true, 'pre-submit callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- },
- success: function() { // post-submit callback
- assert.ok(true, 'post-submit callback');
- // start();
- }
- };
-
- // expect(4);
- $('#form4').ajaxForm(opts);
- $('#submitForm4')[0].click(); // trigger the submit button
- });
-
- // test that the value of the submit button is captured
- it('ajaxForm: capture submit element', function() {
-
- var opts = {
- beforeSubmit: function(a, jq) { // pre-callback
- assert.ok(true, 'pre-callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- assert.ok(arrayValue(a, 'form4inputName') !== null, 'submit button');
- }
- };
-
- // expect(4);
- $('#form4').ajaxForm(opts);
- $('#submitForm4withName')[0].click();
- });
-
- // test image submit support
- it('ajaxForm: capture submit image coordinates', function() {
-
- var opts = {
- beforeSubmit: function(a, jq) { // pre-callback
- assert.ok(true, 'pre-callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- assert.ok(arrayValue(a, 'myImage.x') !== null, 'x coord');
- assert.ok(arrayValue(a, 'myImage.y') !== null, 'y coord');
- }
- };
-
- // expect(5);
- $('#form4').ajaxForm(opts);
- $('#form4imageSubmit')[0].click();
- });
-
- // test image submit support
- it('ajaxForm: capture submit image coordinates (semantic=true)', function() {
-
- var opts = {
- semantic: true,
- beforeSubmit: function(a, jq) { // pre-callback
- assert.ok(true, 'pre-callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- assert.ok(arrayValue(a, 'myImage.x') !== null, 'x coord');
- assert.ok(arrayValue(a, 'myImage.y') !== null, 'y coord');
- }
- };
-
- // expect(5);
- $('#form4').ajaxForm(opts);
- $('#form4imageSubmit')[0].click();
- });
-
- // test that the targetDiv gets updated
- it('ajaxForm: update target div', function() {
- $('#targetDiv').empty();
- // stop();
-
- var opts = {
- target: '#targetDiv',
- beforeSubmit: function(a, jq) { // pre-callback
- assert.ok(true, 'pre-callback');
- assert.ok(a.constructor == Array, 'type check');
- assert.ok(jq.jquery, 'type check jQuery');
- },
- success: function() {
- assert.ok(true, 'post-callback');
- assert.ok($('#targetDiv').text().match('Lorem ipsum'), 'targetDiv updated');
- // start();
- }
- };
-
- // expect(5);
- $('#form4').ajaxForm(opts);
- $('#submitForm4')[0].click();
- });
-
- it('"success" callback', function() {
- $('#targetDiv').empty();
- // stop();
-
- var opts = {
- success: function() {
- assert.ok(true, 'post-callback');
- // start();
- }
- };
-
- // expect(1);
- $('#form3').ajaxSubmit(opts);
- });
-
- it('"error" callback', function() {
- $('#targetDiv').empty();
- // stop();
-
- var opts = {
- url: 'ajax/404.html',
- error: function() {
- assert.ok(true, 'error-callback');
- // start();
- },
- success: function() { // post-submit callback
- assert.ok(false, 'should not hit post-submit callback');
- }
- };
-
- // expect(1);
- $('#form3').ajaxSubmit(opts);
- });
-
-
- it('fieldValue(true)', function() {
- var i;
-
- assert.ok('5' == $('#fieldTest input').fieldValue(true)[0], 'input');
- assert.ok('1' == $('#fieldTest :input').fieldValue(true)[0], ':input');
- assert.ok('5' == $('#fieldTest input:hidden').fieldValue(true)[0], ':hidden');
- assert.ok('14' == $('#fieldTest :password').fieldValue(true)[0], ':password');
- assert.ok('12' == $('#fieldTest :radio').fieldValue(true)[0], ':radio');
- assert.ok('1' == $('#fieldTest select').fieldValue(true)[0], 'select');
-
- var expected = ['8','10'];
- var result = $('#fieldTest :checkbox').fieldValue(true);
- assert.ok(result.length == expected.length, 'result size check (checkbox): ' + result.length + '=' + expected.length);
- for (i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i]);
- }
-
- expected = ['3','4'];
- result = $('#fieldTest [name=B]').fieldValue(true);
- assert.ok(result.length == expected.length, 'result size check (select-multiple): ' + result.length + '=' + expected.length);
- for (i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i]);
- }
- });
-
- it('fieldValue(false)', function() {
- var i;
-
- assert.ok('5' == $('#fieldTest input').fieldValue(false)[0], 'input');
- assert.ok('1' == $('#fieldTest :input').fieldValue(false)[0], ':input');
- assert.ok('5' == $('#fieldTest input:hidden').fieldValue(false)[0], ':hidden');
- assert.ok('14' == $('#fieldTest :password').fieldValue(false)[0], ':password');
- assert.ok('1' == $('#fieldTest select').fieldValue(false)[0], 'select');
-
- var expected = ['8','9','10'];
- var result = $('#fieldTest :checkbox').fieldValue(false);
- assert.ok(result.length == expected.length, 'result size check (checkbox): ' + result.length + '=' + expected.length);
- for (i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i]);
- }
-
- expected = ['11','12','13'];
- result = $('#fieldTest :radio').fieldValue(false);
- assert.ok(result.length == expected.length, 'result size check (radio): ' + result.length + '=' + expected.length);
- for (i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i]);
- }
-
- expected = ['3','4'];
- result = $('#fieldTest [name=B]').fieldValue(false);
- assert.ok(result.length == expected.length, 'result size check (select-multiple): ' + result.length + '=' + expected.length);
- for (i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i]);
- }
- });
-
- it('fieldSerialize(true) input', function() {
- var expected = ['C=5', 'D=6', 'F=8', 'F=10', 'G=12', 'H=14'];
-
- var result = $('#fieldTest input').fieldSerialize(true);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('fieldSerialize(true) :input', function() {
- var expected = ['A=1','B=3','B=4','C=5','D=6','E=7','F=8','F=10','G=12','H=14'];
-
- var result = $('#fieldTest :input').fieldSerialize(true);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('fieldSerialize(false) :input', function() {
- var expected = ['A=1','B=3','B=4','C=5','D=6','E=7','F=8','F=9','F=10','G=11','G=12','G=13','H=14','I=15','J=16'];
-
- var result = $('#fieldTest :input').fieldSerialize(false);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('fieldSerialize(true) select-mulitple', function() {
- var expected = ['B=3','B=4'];
-
- var result = $('#fieldTest [name=B]').fieldSerialize(true);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('fieldSerialize(true) :checkbox', function() {
- var expected = ['F=8','F=10'];
-
- var result = $('#fieldTest :checkbox').fieldSerialize(true);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('fieldSerialize(false) :checkbox', function() {
- var expected = ['F=8','F=9','F=10'];
-
- var result = $('#fieldTest :checkbox').fieldSerialize(false);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('fieldSerialize(true) :radio', function() {
- var expected = ['G=12'];
-
- var result = $('#fieldTest :radio').fieldSerialize(true);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('fieldSerialize(false) :radio', function() {
- var expected = ['G=11','G=12','G=13'];
-
- var result = $('#fieldTest :radio').fieldSerialize(false);
- result = result.split('&');
-
- assert.ok(result.length == expected.length, 'result size check: ' + result.length + '=' + expected.length);
- for (var i = 0; i < result.length; i++) {
- assert.ok(result[i] == expected[i], expected[i] + ' = ' + result[i]);
- }
- });
-
- it('ajaxForm - auto unbind', function() {
- $('#targetDiv').empty();
- // stop();
-
- var opts = {
- target: '#targetDiv',
- beforeSubmit: function(a, jq) { // pre-callback
- assert.ok(true, 'pre-callback');
- },
- success: function() {
- assert.ok(true, 'post-callback');
- // start();
- }
- };
-
- // expect(2);
- // multiple binds
- $('#form8').ajaxForm(opts).ajaxForm(opts).ajaxForm(opts);
- $('#submitForm8')[0].click();
- });
-
- it('ajaxFormUnbind', function() {
- $('#targetDiv').empty();
- // stop();
-
- var opts = {
- target: '#targetDiv',
- beforeSubmit: function(a, jq) { // pre-callback
- assert.ok(true, 'pre-callback');
- },
- success: function() {
- assert.ok(true, 'post-callback');
- // start();
- }
- };
-
- // expect(0);
- // multiple binds
- $('#form9').ajaxForm(opts).submit(function() {
- return false;
- });
- $('#form9').ajaxFormUnbind(opts);
- $('#submitForm9')[0].click();
-
- // setTimeout(start, 500);
- });
-
- it('naked hash', function() {
- $('#actionTest1').ajaxSubmit({
- beforeSerialize: function($f, opts) {
- assert.ok(true, 'url=' + opts.url);
- }
- });
- assert.ok(true, 'ajaxSubmit passed');
- });
- it('hash only', function() {
- $('#actionTest2').ajaxSubmit({
- beforeSerialize: function($f, opts) {
- assert.ok(true, 'url=' + opts.url);
- }
- });
- assert.ok(true, 'ajaxSubmit passed');
- });
- it('empty action', function() {
- $('#actionTest3').ajaxSubmit({
- beforeSerialize: function($f, opts) {
- assert.ok(true, 'url=' + opts.url);
- }
- });
- assert.ok(true, 'ajaxSubmit passed');
- });
- it('missing action', function() {
- $('#actionTest4').ajaxSubmit({
- beforeSerialize: function($f, opts) {
- assert.ok(true, 'url=' + opts.url);
- }
- });
- assert.ok(true, 'ajaxSubmit passed');
- });
-
- it('success callback params', function() {
- var $testForm;
-
- $('#targetDiv').empty();
- // stop();
-
- if (/^1\.3/.test($.fn.jquery)) {
- // expect(3);
- $testForm = $('#form3').ajaxSubmit({
- success: function(data, status, $form) { // jQuery 1.4+ signature
- assert.ok(true, 'success callback invoked');
- assert.ok(status === 'success', 'status === success');
- assert.ok($form === $testForm, '$form param is valid');
- // start();
- }
- });
-
- } else { // if (/^1\.4/.test($.fn.jquery)) {
- // expect(6);
- $testForm = $('#form3').ajaxSubmit({
- success: function(data, status, xhr, $form) { // jQuery 1.4+ signature
- assert.ok(true, 'success callback invoked');
- assert.ok(status === 'success', 'status === success');
- assert.ok(true, 'third arg: ' + typeof xhr != undefined);
- assert.ok(!!xhr != false, 'xhr != false');
- assert.ok(xhr.status, 'xhr.status == ' + xhr.status);
- assert.ok($form === $testForm, '$form param is valid');
- // start();
- }
- });
- }
- });
-
- it('forceSync', function() {
- $('#targetDiv').empty();
- // stop();
-
- // expect(2);
- var $testForm = $('#form3').ajaxSubmit({
- forceSync: true,
- success: function(data, status, $form) { // jQuery 1.4+ signature
- assert.ok(true, 'success callback invoked');
- assert.ok(status === 'success', 'status === success');
- // start();
- }
- });
- });
-
-});
diff --git a/mayan/apps/appearance/static/appearance/vendors/jquery-3.3.1.min.js b/mayan/apps/appearance/static/appearance/vendors/jquery-3.3.1.min.js
deleted file mode 100644
index 4d9b3a2587..0000000000
--- a/mayan/apps/appearance/static/appearance/vendors/jquery-3.3.1.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML=" ";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML=" ","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML=" ",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="x ",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/
-
+
+
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/mayan/apps/mayan_statistics/static/statistics/package.json b/mayan/apps/mayan_statistics/static/statistics/package.json
index 0464979df8..26c33321b1 100644
--- a/mayan/apps/mayan_statistics/static/statistics/package.json
+++ b/mayan/apps/mayan_statistics/static/statistics/package.json
@@ -7,7 +7,7 @@
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
- "license": "Apache 2.0",
+ "license": "Apache-2.0",
"private": true,
"dependencies": {
"chart.js": "^2.7.2"
diff --git a/mayan/apps/sources/static/sources/package.json b/mayan/apps/sources/static/sources/package.json
index 10b13259e9..5b71265d06 100644
--- a/mayan/apps/sources/static/sources/package.json
+++ b/mayan/apps/sources/static/sources/package.json
@@ -11,6 +11,6 @@
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
- "license": "Apache 2.0",
+ "license": "Apache-2.0",
"private": true
}