diff --git a/.env.template b/.env.template index 8ffbb680f60866e0c74b2e648e4525db00750362..1d8018c5d42cfaf5fbf2c5dec296ba19065da056 100644 --- a/.env.template +++ b/.env.template @@ -70,8 +70,8 @@ MATOMO_AUTH_TOKEN= # Hyrax application setting HOST_APP_DATA_PATH=/data/ DERIVATIVES_PATH=/shared/derivatives/ -FITS_PATH=/fits/fits-1.5.0/fits.sh -FITS_VERSION=1.5.0 +FITS_PATH=/fits/fits-1.5.5/fits.sh +FITS_VERSION=1.5.5 UPLOADS_PATH=/shared/uploads/ CACHE_PATH=/shared/cache/ BRAND_PATH=/data/public/branding @@ -125,3 +125,11 @@ ORCID_CLIENT_ID= ORCID_CLIENT_SECRET= ORCID_MEMBER=false ORCID_SANDBOX=true + +# DOI +DOI_URL=https://api.test.datacite.org/ +USE_DOI_REGISTRATION=true +DOI_USERNAME= +DOI_PASSWORD= +DOI_PREFIX= + diff --git a/.env.template.development b/.env.template.development index 42811d4497eb8a32005627bee8aea4824c3d1b43..849a6c3c18cd3e1794237d82ef2f658955e9fb71 100644 --- a/.env.template.development +++ b/.env.template.development @@ -73,8 +73,8 @@ MATOMO_AUTH_TOKEN= # Hyrax application setting HOST_APP_DATA_PATH=./data/ DERIVATIVES_PATH=/shared/derivatives/ -FITS_PATH=/fits/fits-1.5.0/fits.sh -FITS_VERSION=1.5.0 +FITS_PATH=/fits/fits-1.5.5/fits.sh +FITS_VERSION=1.5.5 UPLOADS_PATH=/shared/uploads/ CACHE_PATH=/shared/cache/ BRAND_PATH=/data/public/branding @@ -128,3 +128,11 @@ ORCID_CLIENT_ID= ORCID_CLIENT_SECRET= ORCID_MEMBER=false ORCID_SANDBOX=true + +# DOI +DOI_URL= +USE_DOI_REGISTRATION=false +DOI_USERNAME= +DOI_PASSWORD= +DOI_PREFIX= + diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fdf344181aa2e620a74ceb60f909662c6d058f70..70ebafe55078ecd263c3216dcc961fd1ffcdad0f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ image: docker:stable -image: ruby:2.7.5 +image: ruby:2.7.7-alpine stages: - build @@ -21,31 +21,22 @@ variables: build-job: stage: build before_script: - - apt-get update -qq && apt-get install -y -qq nodejs - - cd hyrax - - bundle install --jobs 4 --retry 3 + - apk update && apk upgrade && apk add nodejs curl libarchive-tools build-base libpq-dev sqlite-dev libxml2-dev tzdata + - cd hyrax && bundle install --jobs 4 --retry 3 script: - - export FITS_ROOT=~/rdms-hyrax/ - - mkdir -p ${FITS_ROOT} - - wget -q https://github.com/harvard-lts/fits/releases/download/1.5.0/fits-1.5.0.zip -O ${FITS_ROOT}/fits-1.5.0.zip - - unzip -q ${FITS_ROOT}/fits-1.5.0.zip -d ${FITS_ROOT}/fits-1.5.0 - - chmod a+x ${FITS_ROOT}/fits-1.5.0/fits.sh - - rm ${FITS_ROOT}/fits-1.5.0.zip + - mkdir -p /fits/fits-1.5.5 + - curl --fail --location "https://github.com/harvard-lts/fits/releases/download/1.5.5/fits-1.5.5.zip" | bsdtar --extract --directory /fits/fits-1.5.5 + - chmod +x "/fits/fits-1.5.5/fits.sh" "/fits/fits-1.5.5/fits-env.sh" "/fits/fits-1.5.5/fits-ngserver.sh" - bundle exec rake db:test:prepare test-job: stage: test coverage: '/coverage: \d+.\d+% of statements/' before_script: - - apt-get update -qq && apt-get install -y -qq nodejs - - apt-get update -qq && apt-get install -y -qq software-properties-common - - apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main' - - apt-get update && apt-get -y install openjdk-8-jdk libmediainfo-dev - - update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - - cd hyrax - - bundle install --jobs 4 --retry 3 + - apk update && apk upgrade && apk add nodejs build-base libpq-dev libxml2-dev openjdk8-jre sqlite-dev + - cd hyrax && bundle install --jobs 4 --retry 3 script: - - export FITS_PATH=~/rdms-hyrax/fits-1.3.0/fits.sh + - export FITS_PATH=/fits/fits-1.5.5/fits.sh - if test -f "lib/tasks/test_servers.rake"; then echo 'Running full tests' && bundle exec rake test:servers:start && bundle exec rspec && bundle exec rake test:servers:stop; else echo "Running limited tests"; bundle exec rspec --exclude-pattern "**/features/*_spec.rb"; fi deploy-job: diff --git a/hyrax/.ruby-version b/hyrax/.ruby-version index 73ad478068b254f49e1dded61d4d3bd4e74ee8b3..d0a7ee935e02d8ae7a79f18304772bac21a28e40 100644 --- a/hyrax/.ruby-version +++ b/hyrax/.ruby-version @@ -1 +1 @@ -ruby-2.7.5 \ No newline at end of file +ruby-2.7.7 \ No newline at end of file diff --git a/hyrax/Dockerfile b/hyrax/Dockerfile index 389e81998778303c3423c000fede8c06d9262e81..f2ffdd0fc02809e98557e2251e3033f97a0907af 100644 --- a/hyrax/Dockerfile +++ b/hyrax/Dockerfile @@ -1,13 +1,11 @@ -FROM ruby:2.7.5-buster +FROM ruby:2.7.7-alpine # Setup build variables ARG RAILS_ENV ARG DERIVATIVES_PATH ARG UPLOADS_PATH ARG CACHE_PATH -ARG FITS_PATH -ARG FITS_VERSION -ARG IM_VERSION=7.0.7-39 +ARG FITS_VERSION=1.5.5 ENV APP_PRODUCTION=/data/ \ APP_WORKDIR=/data @@ -15,49 +13,23 @@ ENV APP_PRODUCTION=/data/ \ # Add backports to apt-get sources # Install libraries, dependencies, java and fits -RUN apt-get update -qq && \ - apt-get -y install apt-transport-https && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - curl -sL https://deb.nodesource.com/setup_14.x | bash - && \ - apt-get update -qq && apt-get install -y --no-install-recommends \ - libpq-dev \ - libxml2-dev libxslt1-dev \ - nodejs \ - libreoffice \ - libass-dev libfreetype6-dev libmp3lame-dev libopus-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev \ - libvpx-dev libvorbis-dev libx264-dev libx265-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev nasm pkg-config \ - texinfo wget yasm zlib1g-dev \ - libjpeg-dev libtiff-dev libpng-dev libraw-dev libwebp-dev libjxr-dev \ - libcairo2-dev libgs-dev librsvg2-dev \ - libmp3lame-dev libvorbis-dev libtheora-dev libspeex-dev libx264-dev \ - ghostscript ffmpeg \ - ufraw \ - bzip2 unzip xz-utils \ - vim \ - git \ - openjdk-11-jre-headless \ - yarn && \ - yarn config set no-progress && \ - yarn config set silent - -RUN git clone https://github.com/ImageMagick/ImageMagick.git && \ - cd ImageMagick && git checkout ${IM_VERSION} && \ - ./configure --prefix=/usr --without-magick-plus-plus --disable-docs --disable-static --with-tiff && \ - make && make install - -RUN mkdir -p /fits/ \ - && wget -q https://github.com/harvard-lts/fits/releases/download/$FITS_VERSION/fits-$FITS_VERSION.zip -O /fits/fits-$FITS_VERSION.zip \ - && unzip -q /fits/fits-$FITS_VERSION.zip -d /fits/fits-$FITS_VERSION \ - && chmod a+x $FITS_PATH \ - && rm /fits/fits-$FITS_VERSION.zip +RUN apk update && \ + apk upgrade && \ + apk add bash build-base curl curl-dev gcompat imagemagick imagemagick-libs imagemagick-dev libarchive-tools \ + libpq-dev libxml2-dev libxslt-dev nodejs openjdk11-jre-headless sqlite-dev tzdata yarn + +COPY policy.xml /etc/ImageMagick-7/policy.xml + +RUN mkdir -p /fits/fits-$FITS_VERSION \ + && curl --fail --location "https://github.com/harvard-lts/fits/releases/download/$FITS_VERSION/fits-$FITS_VERSION.zip" | bsdtar --extract --directory /fits/fits-$FITS_VERSION \ + && chmod +x "/fits/fits-$FITS_VERSION/fits.sh" "/fits/fits-$FITS_VERSION/fits-env.sh" "/fits/fits-$FITS_VERSION/fits-ngserver.sh" # copy gemfiles to production folder COPY Gemfile Gemfile.lock $APP_PRODUCTION # install gems to system - use flags dependent on RAILS_ENV -RUN cd $APP_PRODUCTION && \ - bundle config build.nokogiri --use-system-libraries \ +RUN cd $APP_PRODUCTION \ + && bundle config build.nokogiri --use-system-libraries \ && if [ "$RAILS_ENV" = "production" ]; then \ bundle install --without test:development; \ else \ @@ -75,7 +47,6 @@ RUN mkdir -p $CACHE_PATH # copy the application COPY . $APP_PRODUCTION -COPY docker-entrypoint.sh /bin/ # use the just built Gemfile.lock, not the one copied into the container and verify the gems are correctly installed RUN cd $APP_PRODUCTION \ @@ -89,6 +60,8 @@ RUN if [ "$RAILS_ENV" = "production" ]; then \ && SECRET_KEY_BASE_PRODUCTION=0 bundle exec rake assets:clean assets:precompile; \ fi +COPY docker-entrypoint.sh /bin/ + WORKDIR $APP_WORKDIR RUN chmod +x /bin/docker-entrypoint.sh diff --git a/hyrax/Gemfile b/hyrax/Gemfile index 595a19d1130ebf5b43aa96c4440fd92d2651a967..a14d297ff9f704e157819cd7d5b36c1e2f69dc95 100644 --- a/hyrax/Gemfile +++ b/hyrax/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '2.7.5' +ruby '2.7.7' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.2.6' @@ -12,10 +12,10 @@ gem 'puma', '~> 3.11' # Use SCSS for stylesheets gem 'sass-rails', '~> 5.0' # Use Uglifier as compressor for JavaScript assets -gem 'uglifier', '>= 1.3.0' +gem 'terser', '>= 1.1.12' # See https://github.com/rails/execjs#readme for more supported runtimes # gem 'mini_racer', platforms: :ruby -gem 'therubyracer' +gem 'execjs' # Use carrierwave-aws for upload file on aws s3 gem 'carrierwave-aws' # Use CoffeeScript for .coffee assets and views @@ -68,7 +68,7 @@ end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] -gem 'hyrax', '3.3.0' +gem 'hyrax', '3.5.0' group :development, :test do gem 'solr_wrapper', '>= 0.3' end @@ -89,10 +89,11 @@ gem 'sidekiq' gem 'hydra-role-management' gem 'bootstrap-datepicker-rails' gem 'pg' -gem 'bulkrax' +gem 'bulkrax', '~> 4.4.0' gem 'riiif', '~> 2.3' gem 'rinku' gem 'coveralls', require: false gem 'database_cleaner' gem 'aws-sdk-s3', '~> 1' +gem "blacklight_range_limit" diff --git a/hyrax/Gemfile.lock b/hyrax/Gemfile.lock index 00c3a12ccf6a6e9f10c77adf9b04cb6c16155fe5..9a615b47f4be3e32b053062e59a4bb867253a246 100644 --- a/hyrax/Gemfile.lock +++ b/hyrax/Gemfile.lock @@ -24,7 +24,7 @@ GEM erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - active-fedora (13.2.5) + active-fedora (13.3.0) active-triples (>= 0.11.0, < 2.0.0) activemodel (>= 5.1) activesupport (>= 5.1) @@ -55,7 +55,7 @@ GEM activemodel (= 5.2.6.2) activesupport (= 5.2.6.2) arel (>= 9.0) - activerecord-import (1.3.0) + activerecord-import (1.4.1) activerecord (>= 4.2) activestorage (5.2.6.2) actionpack (= 5.2.6.2) @@ -98,7 +98,7 @@ GEM babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) - bagit (0.4.4) + bagit (0.4.5) docopt (~> 0.5.0) validatable (~> 1.6) bcp47 (0.3.3) @@ -124,6 +124,11 @@ GEM bootstrap-sass (~> 3.0) openseadragon (>= 0.2.0) rails + blacklight_range_limit (7.0.1) + blacklight + jquery-rails + rails (>= 3.0) + tether-rails bootsnap (1.10.3) msgpack (~> 1.2) bootstrap-datepicker-rails (1.9.0.1) @@ -135,19 +140,18 @@ GEM actionpack (>= 5.2) activemodel (>= 5.2) breadcrumbs_on_rails (3.0.1) - browse-everything (1.1.2) + browse-everything (1.2.0) addressable (~> 2.5) aws-sdk-s3 - dropbox_api (>= 0.1.10) - google-api-client (~> 0.23) - google_drive (>= 2.1, < 4) - googleauth (>= 0.6.6, < 1.0) - rails (>= 4.2, < 7.0) + dropbox_api (>= 0.1.20) + google-apis-drive_v3 + googleauth (>= 0.6.6, < 2.0) + rails (>= 4.2, < 7.1) ruby-box signet (~> 0.8) typhoeus builder (3.2.4) - bulkrax (4.2.1) + bulkrax (4.4.0) bagit (~> 0.4) coderay iso8601 (~> 0.9.0) @@ -240,69 +244,76 @@ GEM activesupport (>= 5.0) request_store (>= 1.0) ruby2_keywords - dropbox_api (0.1.18) - faraday (<= 1.0) + dropbox_api (0.1.21) + faraday (< 3.0) oauth2 (~> 1.1) - dry-configurable (0.14.0) - concurrent-ruby (~> 1.0) + dry-configurable (0.16.1) dry-core (~> 0.6) - dry-container (0.9.0) + zeitwerk (~> 2.6) + dry-container (0.11.0) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.13, >= 0.13.0) - dry-core (0.7.1) + dry-core (0.9.1) concurrent-ruby (~> 1.0) + zeitwerk (~> 2.6) dry-equalizer (0.3.0) dry-events (0.2.0) concurrent-ruby (~> 1.0) dry-core (~> 0.4) dry-equalizer (~> 0.2) - dry-inflector (0.2.1) + dry-inflector (0.3.0) dry-initializer (3.1.1) - dry-logic (1.2.0) + dry-logic (1.3.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) + zeitwerk (~> 2.6) dry-matcher (0.9.0) dry-core (~> 0.4, >= 0.4.8) dry-monads (1.4.0) concurrent-ruby (~> 1.0) dry-core (~> 0.7) - dry-schema (1.9.1) + dry-schema (1.11.3) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.13, >= 0.13.0) - dry-core (~> 0.5, >= 0.5) + dry-configurable (~> 0.16, >= 0.16) + dry-core (~> 0.9, >= 0.9) dry-initializer (~> 3.0) - dry-logic (~> 1.0) - dry-types (~> 1.5) - dry-struct (1.4.0) - dry-core (~> 0.5, >= 0.5) - dry-types (~> 1.5) + dry-logic (~> 1.3) + dry-types (~> 1.6) + zeitwerk (~> 2.6) + dry-struct (1.5.2) + dry-core (~> 0.9, >= 0.9) + dry-types (~> 1.6) ice_nine (~> 0.11) + zeitwerk (~> 2.6) dry-transaction (0.13.3) dry-container (>= 0.2.8) dry-events (>= 0.1.0) dry-matcher (>= 0.7.0) dry-monads (>= 0.4.0) - dry-types (1.5.1) + dry-types (1.6.1) concurrent-ruby (~> 1.0) dry-container (~> 0.3) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) dry-inflector (~> 0.1, >= 0.1.2) - dry-logic (~> 1.0, >= 1.0.2) - dry-validation (1.8.0) + dry-logic (~> 1.3, >= 1.3) + zeitwerk (~> 2.6) + dry-validation (1.9.0) concurrent-ruby (~> 1.0) dry-container (~> 0.7, >= 0.7.1) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 0.9, >= 0.9) dry-initializer (~> 3.0) - dry-schema (~> 1.9, >= 1.9.1) - ebnf (2.3.0) + dry-schema (~> 1.11, >= 1.11.0) + zeitwerk (~> 2.6) + ebnf (2.3.1) amazing_print (~> 1.4) htmlentities (~> 4.3) rdf (~> 3.2) scanf (~> 1.0) sxp (~> 1.2) unicode-types (~> 1.7) + equivalent-xml (0.6.0) + nokogiri (>= 1.4.3) erubi (1.10.0) - ethon (0.15.0) + ethon (0.16.0) ffi (>= 1.15.0) execjs (2.8.1) factory_bot (6.2.0) @@ -322,20 +333,17 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - flipflop (2.6.0) + flipflop (2.7.0) activesupport (>= 4.0) + terminal-table (>= 1.8) flot-rails (0.0.7) jquery-rails font-awesome-rails (4.7.0.8) railties (>= 3.2, < 8.0) - gems (1.2.0) - geocoder (1.7.3) + geocoder (1.8.1) globalid (1.0.0) activesupport (>= 5.0) - google-api-client (0.53.0) - google-apis-core (~> 0.1) - google-apis-generator (~> 0.1) - google-apis-core (0.4.2) + google-apis-core (0.9.2) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -344,35 +352,18 @@ GEM retriable (>= 2.0, < 4.a) rexml webrick - google-apis-discovery_v1 (0.8.0) - google-apis-core (>= 0.4, < 2.a) - google-apis-drive_v3 (0.18.0) - google-apis-core (>= 0.4, < 2.a) - google-apis-generator (0.4.1) - activesupport (>= 5.0) - gems (~> 1.2) - google-apis-core (>= 0.4, < 2.a) - google-apis-discovery_v1 (~> 0.5) - thor (>= 0.20, < 2.a) - google-apis-sheets_v4 (0.11.0) - google-apis-core (>= 0.4, < 2.a) - google_drive (3.0.7) - google-apis-drive_v3 (>= 0.5.0, < 1.0.0) - google-apis-sheets_v4 (>= 0.4.0, < 1.0.0) - googleauth (>= 0.5.0, < 1.0.0) - nokogiri (>= 1.5.3, < 2.0.0) - googleauth (0.17.1) - faraday (>= 0.17.3, < 2.0) + google-apis-drive_v3 (0.32.0) + google-apis-core (>= 0.9.1, < 2.a) + googleauth (1.3.0) + faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.15) + signet (>= 0.16, < 2.a) haml (5.2.2) temple (>= 0.8.0) tilt - hamster (3.0.0) - concurrent-ruby (~> 1.0) hashie (5.0.0) hiredis (0.6.3) htmlentities (4.3.4) @@ -396,10 +387,9 @@ GEM hydra-core (11.0.7) hydra-access-controls (= 11.0.7) railties (>= 4.0.0, < 6) - hydra-derivatives (3.6.1) + hydra-derivatives (3.7.0) active-fedora (>= 11.5.6, != 13.2.1, != 13.2.0, != 13.1.3, != 13.1.2, != 13.1.1, != 13.1.0, != 13.0.0, != 12.2.1, != 12.2.0, != 12.1.1, != 12.1.0, != 12.0.3, != 12.0.2, != 12.0.1, != 12.0.0) active_encode (~> 0.1) - activemodel (< 6.1) activesupport (>= 4.0, < 7) addressable (~> 2.5) deprecation @@ -434,7 +424,7 @@ GEM hydra-derivatives (~> 3.6) hydra-file_characterization (~> 1.0) hydra-pcdm (>= 0.9) - hyrax (3.3.0) + hyrax (3.5.0) active-fedora (~> 13.1, >= 13.1.2) almond-rails (~> 0.1) awesome_nested_set (~> 3.1) @@ -447,6 +437,7 @@ GEM draper (~> 4.0) dry-equalizer (~> 0.2) dry-events (~> 0.2.0) + dry-monads (< 1.5) dry-struct (~> 1.0) dry-transaction (~> 0.11) dry-validation (~> 1.3) @@ -461,6 +452,7 @@ GEM iiif_manifest (>= 0.3, < 2.0) jquery-datatables-rails (~> 3.4) jquery-ui-rails (~> 6.0) + json-ld (< 3.2) json-schema kaminari_route_prefix (~> 0.1.1) legato (~> 0.3) @@ -472,11 +464,13 @@ GEM oauth2 (~> 1.2) posix-spawn power_converter (~> 0.1, >= 0.1.2) + psych (~> 3.3) qa (~> 5.5, >= 5.5.1) rails (~> 5.0) rails_autolink (~> 1.1) rdf-rdfxml rdf-vocab (~> 3.0) + redis (~> 4.0) redis-namespace (~> 1.5) redlock (>= 0.1.2) reform (~> 2.3) @@ -486,14 +480,14 @@ GEM sass-rails (~> 5.0) select2-rails (~> 3.5) signet - tinymce-rails + tinymce-rails (~> 5.10) valkyrie (~> 2, >= 2.1.1) i18n (1.10.0) concurrent-ruby (~> 1.0) ice_nine (0.11.2) iiif-image-api (0.2.0) activesupport - iiif_manifest (1.1.0) + iiif_manifest (1.2.0) activesupport (>= 4) io-like (0.3.1) iso8601 (0.9.1) @@ -513,19 +507,19 @@ GEM jquery-ui-rails (6.0.1) railties (>= 3.2.16) json (2.6.1) - json-canonicalization (0.3.0) - json-ld (3.2.0) + json-canonicalization (0.3.1) + json-ld (3.1.10) htmlentities (~> 4.3) - json-canonicalization (~> 0.3) + json-canonicalization (~> 0.2) link_header (~> 0.0, >= 0.0.8) - multi_json (~> 1.15) - rack (~> 2.2) - rdf (~> 3.2) - json-ld-preloaded (3.2.0) - json-ld (~> 3.2) - rdf (~> 3.2) - json-schema (2.8.1) - addressable (>= 2.4) + multi_json (~> 1.14) + rack (~> 2.0) + rdf (~> 3.1) + json-ld-preloaded (3.1.6) + json-ld (~> 3.1) + rdf (~> 3.1) + json-schema (3.0.0) + addressable (>= 2.8) jwt (2.3.0) kaminari (1.2.2) activesupport (>= 4.1.0) @@ -558,42 +552,42 @@ GEM rdf-turtle rdf-vocab (>= 0.8) slop - ldpath (1.1.0) + ldpath (1.2.0) nokogiri (~> 1.8) parslet rdf (~> 3.0) + rdf-vocab (~> 3.0) legato (0.7.0) multi_json - libv8 (3.16.14.19) libxml-ruby (3.1.0) link_header (0.0.8) - linkeddata (3.2.0) - json-ld (~> 3.2) - json-ld-preloaded (~> 3.2) - ld-patch (~> 3.2) - nokogiri (~> 1.12, >= 1.12.5) - rdf (~> 3.2) - rdf-aggregate-repo (~> 3.2) - rdf-hamster-repo (~> 3.2) - rdf-isomorphic (~> 3.2) - rdf-json (~> 3.2) - rdf-microdata (~> 3.2) - rdf-n3 (~> 3.2) - rdf-normalize (~> 0.5) - rdf-ordered-repo (~> 3.2) - rdf-rdfa (~> 3.2) - rdf-rdfxml (~> 3.2) - rdf-reasoner (~> 0.8) - rdf-tabular (~> 3.2) - rdf-trig (~> 3.2) - rdf-trix (~> 3.2) - rdf-turtle (~> 3.2) - rdf-vocab (~> 3.2) - rdf-xsd (~> 3.2) - shacl (~> 0.2) - shex (~> 0.7) - sparql (~> 3.2) - sparql-client (~> 3.2) + linkeddata (3.1.6) + equivalent-xml (~> 0.6) + json-ld (~> 3.1, >= 3.1.10) + json-ld-preloaded (~> 3.1, >= 3.1.6) + ld-patch (~> 3.1, >= 3.1.3) + nokogiri (~> 1.12) + rdf (~> 3.1, >= 3.1.15) + rdf-aggregate-repo (~> 3.1) + rdf-isomorphic (~> 3.1, >= 3.1.1) + rdf-json (~> 3.1) + rdf-microdata (~> 3.1, >= 3.1.4) + rdf-n3 (~> 3.1, >= 3.1.2) + rdf-normalize (~> 0.4) + rdf-ordered-repo (~> 3.1, >= 3.1.1) + rdf-rdfa (~> 3.1, >= 3.1.3) + rdf-rdfxml (~> 3.1, >= 3.1.1) + rdf-reasoner (~> 0.7, >= 0.7.2) + rdf-tabular (~> 3.1, >= 3.1.1) + rdf-trig (~> 3.1, >= 3.1.2) + rdf-trix (~> 3.1, >= 3.1.1) + rdf-turtle (~> 3.1, >= 3.1.3) + rdf-vocab (~> 3.1, >= 3.1.14) + rdf-xsd (~> 3.1, >= 3.1.1) + shacl (~> 0.1, >= 0.1.1) + shex (~> 0.6, >= 0.6.4) + sparql (~> 3.1, >= 3.1.8) + sparql-client (~> 3.1, >= 3.1.2) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) @@ -601,7 +595,7 @@ GEM llhttp-ffi (0.4.0) ffi-compiler (~> 1.0) rake (~> 13.0) - logger (1.5.0) + logger (1.5.3) loofah (2.14.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -617,7 +611,7 @@ GEM mime-types (3.4.1) mime-types-data (~> 3.2015) mime-types-data (3.2022.0105) - mini_magick (4.11.0) + mini_magick (4.12.0) mini_mime (1.1.2) mini_portile2 (2.7.1) minitest (5.15.0) @@ -641,7 +635,12 @@ GEM builder (>= 3.1.0) faraday faraday_middleware - oauth (0.5.8) + oauth (1.1.0) + oauth-tty (~> 1.0, >= 1.0.1) + snaky_hash (~> 2.0) + version_gem (~> 1.1) + oauth-tty (1.0.5) + version_gem (~> 1.1, >= 1.1.1) oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) @@ -669,16 +668,17 @@ GEM pg (1.3.2) posix-spawn (0.3.15) power_converter (0.1.2) + psych (3.3.4) public_suffix (4.0.6) puma (3.12.6) - qa (5.8.1) + qa (5.10.0) activerecord-import deprecation - faraday (< 2.0) + faraday (< 3.0, != 2.0.0) geocoder ldpath nokogiri (~> 1.6) - rails (>= 5.0, < 6.2) + rails (>= 5.0, < 7.1) rdf racc (1.6.0) rack (2.2.3) @@ -704,7 +704,7 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.2) loofah (~> 2.3) - rails_autolink (1.1.6) + rails_autolink (1.1.7) rails (> 3.1) railties (5.2.6.2) actionpack (= 5.2.6.2) @@ -718,11 +718,8 @@ GEM ffi (~> 1.0) rdf (3.2.4) link_header (~> 0.0, >= 0.0.8) - rdf-aggregate-repo (3.2.0) + rdf-aggregate-repo (3.2.1) rdf (~> 3.2) - rdf-hamster-repo (3.2.1) - hamster (~> 3.0) - rdf (~> 3.2, >= 3.2.1) rdf-isomorphic (3.2.1) rdf (~> 3.2) rdf-json (3.2.0) @@ -738,7 +735,7 @@ GEM rdf (~> 3.2) sparql (~> 3.2) sxp (~> 1.2) - rdf-normalize (0.5.0) + rdf-normalize (0.5.1) rdf (~> 3.2) rdf-ordered-repo (3.2.1) rdf (~> 3.2, >= 3.2.1) @@ -757,13 +754,13 @@ GEM rdf-reasoner (0.8.0) rdf (~> 3.2) rdf-xsd (~> 3.2) - rdf-tabular (3.2.0) - addressable (~> 2.8) + rdf-tabular (3.1.1) + addressable (~> 2.3) bcp47 (~> 0.3, >= 0.3.3) - json-ld (~> 3.2) - rdf (~> 3.2) - rdf-vocab (~> 3.2) - rdf-xsd (~> 3.2) + json-ld (~> 3.1) + rdf (~> 3.1) + rdf-vocab (~> 3.1) + rdf-xsd (~> 3.1) rdf-trig (3.2.0) ebnf (~> 2.2) rdf (~> 3.2) @@ -771,22 +768,21 @@ GEM rdf-trix (3.2.0) rdf (~> 3.2) rdf-xsd (~> 3.2) - rdf-turtle (3.2.0) + rdf-turtle (3.2.1) ebnf (~> 2.3) rdf (~> 3.2) - rdf-vocab (3.2.1) + rdf-vocab (3.2.3) rdf (~> 3.2, >= 3.2.4) - rdf-xsd (3.2.0) + rdf-xsd (3.2.1) rdf (~> 3.2) rexml (~> 3.2) redic (1.5.3) hiredis redis (4.6.0) - redis-namespace (1.8.1) - redis (>= 3.0.4) - redlock (1.2.2) - redis (>= 3.0.0, < 5.0) - ref (2.0.0) + redis-namespace (1.10.0) + redis (>= 4) + redlock (1.3.2) + redis (>= 3.0.0, < 6.0) reform (2.5.0) disposable (>= 0.4.2, < 0.5.0) representable (>= 2.4.0, < 3.1.0) @@ -862,20 +858,20 @@ GEM childprocess (>= 0.5, < 5.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) - shacl (0.2.1) - json-ld (~> 3.2) - rdf (~> 3.2) - sparql (~> 3.2) - sxp (~> 1.2) - shex (0.7.1) - ebnf (~> 2.2) + shacl (0.1.1) + json-ld (~> 3.1, >= 3.1.7) + rdf (~> 3.1, >= 3.1.8) + sparql (~> 3.1) + sxp (~> 1.1) + shex (0.6.4) + ebnf (~> 2.1, >= 2.2) htmlentities (~> 4.3) - json-ld (~> 3.2) - json-ld-preloaded (~> 3.2) - rdf (~> 3.2) - rdf-xsd (~> 3.2) - sparql (~> 3.2) - sxp (~> 1.2) + json-ld (~> 3.1) + json-ld-preloaded (~> 3.1) + rdf (~> 3.1) + rdf-xsd (~> 3.1) + sparql (~> 3.1) + sxp (~> 1.1) sidekiq (6.4.1) connection_pool (>= 2.2.2) rack (~> 2.0) @@ -893,7 +889,10 @@ GEM json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.2) - slop (4.9.1) + slop (4.9.3) + snaky_hash (2.0.1) + hashie + version_gem (~> 1.1, >= 1.1.1) solr_wrapper (3.1.2) http retriable @@ -932,22 +931,25 @@ GEM sprockets (>= 3.0.0) sqlite3 (1.3.13) ssrf_filter (1.0.7) - sxp (1.2.1) - matrix + sxp (1.2.3) + matrix (~> 0.4) rdf (~> 3.2) sync (0.5.0) - temple (0.8.2) + temple (0.9.1) term-ansicolor (1.7.1) tins (~> 1.0) - therubyracer (0.12.3) - libv8 (~> 3.16.14.15) - ref + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + terser (1.1.13) + execjs (>= 0.3.0, < 3) + tether-rails (1.4.0) + rails (>= 3.1) thor (1.2.1) thread_safe (0.3.6) tilt (2.0.10) tins (1.31.0) sync - tinymce-rails (5.10.3) + tinymce-rails (5.10.7) railties (>= 3.1.1) turbolinks (5.2.1) turbolinks-source (~> 5.2) @@ -961,12 +963,11 @@ GEM tzinfo (1.2.9) thread_safe (~> 0.1) uber (0.1.0) - uglifier (4.2.0) - execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext unf_ext (0.0.8) - unicode-types (1.7.0) + unicode-display_width (2.3.0) + unicode-types (1.8.0) validatable (1.6.7) valkyrie (2.2.0) activemodel @@ -983,6 +984,7 @@ GEM rdf-vocab reform (~> 2.2) reform-rails + version_gem (1.1.1) warden (1.2.9) rack (>= 2.0.9) web-console (3.7.0) @@ -998,16 +1000,18 @@ GEM rexml xpath (3.2.0) nokogiri (~> 1.8) + zeitwerk (2.6.6) PLATFORMS ruby DEPENDENCIES aws-sdk-s3 (~> 1) + blacklight_range_limit bootsnap (>= 1.1.0) bootstrap-datepicker-rails bootstrap-sass (~> 3.0) - bulkrax + bulkrax (~> 4.4.0) byebug capybara (>= 2.15) carrierwave-aws @@ -1017,10 +1021,11 @@ DEPENDENCIES database_cleaner devise devise-guests (~> 0.6) + execjs factory_bot_rails fcrepo_wrapper hydra-role-management - hyrax (= 3.3.0) + hyrax (= 3.5.0) jbuilder (~> 2.5) jquery-rails listen (>= 3.0.5, < 3.2) @@ -1043,15 +1048,14 @@ DEPENDENCIES spring spring-watcher-listen (~> 2.0.0) sqlite3 (~> 1.3.0) - therubyracer + terser (>= 1.1.12) turbolinks (~> 5) twitter-typeahead-rails (= 0.11.1.pre.corejavascript) tzinfo-data - uglifier (>= 1.3.0) web-console (>= 3.3.0) RUBY VERSION - ruby 2.7.5p203 + ruby 2.7.7p221 BUNDLED WITH 2.1.4 diff --git a/hyrax/app/actors/hyrax/actors/complex_attributes.rb b/hyrax/app/actors/hyrax/actors/complex_attributes.rb new file mode 100644 index 0000000000000000000000000000000000000000..4923ae9e8686fa9935a3f779dabd6a82cb2e5779 --- /dev/null +++ b/hyrax/app/actors/hyrax/actors/complex_attributes.rb @@ -0,0 +1,42 @@ +module Hyrax + module Actors + module ComplexAttributes + def apply_save_data_to_curation_concern(env) + super + # Clear this, it will be re-added by update_complex_metadata + env.curation_concern.updated_subresources = [] + env = update_complex_metadata(env, env.curation_concern) + end + + # Call execute on the ActiveTriple::Resources (ATR), like ComplexInstrument + # Due to a bug somewhere in ActiveFedora, changes to ATR + # are not being committed to the resource graph because they are BufferedTransactions + # This method runs execute on the graphs of each ATR + # Additionally adds all ATR to top-level property updates_subresources + # this seems to be necessary to get ATR nested within other ATR to update + def update_complex_metadata(env, resource_to_update) + complex_attributes.each do |attribute| + next unless resource_to_update.respond_to?(attribute) + next if resource_to_update.send(attribute).empty? + resource_to_update.send(attribute).each do |resource| + update_complex_metadata(env, resource) + resource.graph.execute + resource_to_update.send(attribute.to_s).push(resource) + env.curation_concern.updated_subresources.push(resource_to_update.send(attribute)) + end + end + env + end + + def complex_attributes + %w[ + complex_date + complex_funding_reference + complex_identifier + complex_person + complex_relation + ] + end + end + end +end diff --git a/hyrax/app/actors/hyrax/actors/crc_dataset_actor.rb b/hyrax/app/actors/hyrax/actors/crc_dataset_actor.rb index d6d851776d0995e1d46ab9862802955733bcaf33..5e0747711ec9d0989369591791b38df0608f65b5 100644 --- a/hyrax/app/actors/hyrax/actors/crc_dataset_actor.rb +++ b/hyrax/app/actors/hyrax/actors/crc_dataset_actor.rb @@ -3,6 +3,7 @@ module Hyrax module Actors class CrcDatasetActor < Hyrax::Actors::BaseActor + include Hyrax::Actors::ComplexAttributes end end -end +end \ No newline at end of file diff --git a/hyrax/app/actors/hyrax/actors/dataset_actor.rb b/hyrax/app/actors/hyrax/actors/dataset_actor.rb index eeca62e1396c85072e6dc72f937affc2020cfe44..8d2d890a7a11a9373e4295778ba1f4c9bd0ace80 100644 --- a/hyrax/app/actors/hyrax/actors/dataset_actor.rb +++ b/hyrax/app/actors/hyrax/actors/dataset_actor.rb @@ -3,6 +3,7 @@ module Hyrax module Actors class DatasetActor < Hyrax::Actors::BaseActor + include Hyrax::Actors::ComplexAttributes end end end diff --git a/hyrax/app/actors/hyrax/actors/file_actor.rb b/hyrax/app/actors/hyrax/actors/file_actor.rb index 69809bba0db5cff954b28900075ea86bcda39f09..aab0b96190074438a79105d93efc3b9de05cfd88 100644 --- a/hyrax/app/actors/hyrax/actors/file_actor.rb +++ b/hyrax/app/actors/hyrax/actors/file_actor.rb @@ -178,13 +178,14 @@ module Hyrax def generate_target_object_key(repository_file, file_set) prefix = case file_set.for_complex_type when 'ComplexSubject' - "#{file_set.for_complex_identifier}/#{repository_file.id}" + complex_subject = ComplexSubject.find_by(source_identifier: file_set.for_complex_identifier) + "#{complex_subject.subject_title}/#{repository_file.id}" when 'ComplexSession' complex_session = ComplexSession.find_by(source_identifier: file_set.for_complex_identifier) - "#{complex_session.complex_subject.source_identifier}/#{complex_session.source_identifier}/#{repository_file.id}" + "#{complex_session.complex_subject.subject_title}/#{complex_session.session_title}/#{repository_file.id}" when 'ComplexModality' complex_modality = ComplexModality.find_by(source_identifier: file_set.for_complex_identifier) - "#{complex_modality.complex_subject.source_identifier}/#{complex_modality.complex_session.source_identifier}/#{complex_modality.source_identifier}/#{repository_file.id}" + "#{complex_modality.complex_subject.subject_title}/#{complex_modality.complex_session.session_title}/#{complex_modality.modality_title}/#{repository_file.id}" else repository_file.id end diff --git a/hyrax/app/actors/hyrax/actors/file_set_actor.rb b/hyrax/app/actors/hyrax/actors/file_set_actor.rb index 1b48527afc844043f470fe4d456a405360223b27..2110856443f12e55887dcdc70efb907c2718b5be 100644 --- a/hyrax/app/actors/hyrax/actors/file_set_actor.rb +++ b/hyrax/app/actors/hyrax/actors/file_set_actor.rb @@ -73,8 +73,12 @@ module Hyrax work.reload unless work.new_record? file_set.visibility = work.visibility unless assign_visibility?(file_set_params) work.ordered_members << file_set - work.representative = file_set if work.representative_id.blank? - work.thumbnail = file_set if work.thumbnail_id.blank? + + unless work.class.name == "CrcDataset" + work.representative = file_set if work.representative_id.blank? + work.thumbnail = file_set if work.thumbnail_id.blank? + end + # Save the work so the association between the work and the file_set is persisted (head_id) # NOTE: the work may not be valid, in which case this save doesn't do anything. work.save diff --git a/hyrax/app/assets/images/jstree/32px.png b/hyrax/app/assets/images/jstree/32px.png new file mode 100644 index 0000000000000000000000000000000000000000..ca6af206777a87fb9d27dccf2184934065ceeae8 Binary files /dev/null and b/hyrax/app/assets/images/jstree/32px.png differ diff --git a/hyrax/app/assets/images/jstree/40px.png b/hyrax/app/assets/images/jstree/40px.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3fcb9dfacf4e82a4c3ac3a6cd1650af966fc29 Binary files /dev/null and b/hyrax/app/assets/images/jstree/40px.png differ diff --git a/hyrax/app/assets/images/jstree/throbber.gif b/hyrax/app/assets/images/jstree/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf06c1ad0f00be54b10f73e03c11d182d411fad1 Binary files /dev/null and b/hyrax/app/assets/images/jstree/throbber.gif differ diff --git a/hyrax/app/assets/javascripts/application.js b/hyrax/app/assets/javascripts/application.js index ac7e6cb86d59311406ba3d165f4eafcf15c50e20..e1c82c5ab052605f50061200f8eaa19313611169 100644 --- a/hyrax/app/assets/javascripts/application.js +++ b/hyrax/app/assets/javascripts/application.js @@ -15,9 +15,9 @@ //= require dataTables/jquery.dataTables //= require dataTables/bootstrap/3/jquery.dataTables.bootstrap //= require bootstrap-datepicker -// Jquery tree view -//= require shieldui-all // + +//= require tether // Required by Blacklight //= require blacklight/blacklight //= require hydra-editor/editMetadata @@ -27,3 +27,9 @@ //= require_tree . //= require hyrax + + +// For blacklight_range_limit built-in JS, if you don't want it you don't need +// this: +//= require 'blacklight_range_limit' + diff --git a/hyrax/app/assets/javascripts/jstree.min.js b/hyrax/app/assets/javascripts/jstree.min.js new file mode 100644 index 0000000000000000000000000000000000000000..eb68a01c436c0d24fe6690f4013a18b71ec9fb7c --- /dev/null +++ b/hyrax/app/assets/javascripts/jstree.min.js @@ -0,0 +1,3 @@ +/*! jsTree - v3.3.12 - 2022-04-07 - (MIT) */ + +!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(E,P){"use strict";if(!E.jstree){var s=0,a=!1,n=!1,o=!1,r=[],e=E("script:last").attr("src"),b=window.document,c=window.setImmediate,i=window.Promise;!c&&i&&(c=function(e,t){i.resolve(t).then(e)}),E.jstree={version:"{{VERSION}}",defaults:{plugins:[]},plugins:{},path:e&&-1!==e.indexOf("/")?e.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},E.jstree.create=function(e,i){var r=new E.jstree.core(++s),t=i;return i=E.extend(!0,{},E.jstree.defaults,i),t&&t.plugins&&(i.plugins=t.plugins),E.each(i.plugins,function(e,t){"core"!==e&&(r=r.plugin(t,i[t]))}),E(e).data("jstree",r),r.init(e,i),r},E.jstree.destroy=function(){E(".jstree:jstree").jstree("destroy"),E(b).off(".jstree")},E.jstree.core=function(e){this._id=e,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1,ellipsis:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},E.jstree.reference=function(t){var i=null,e=null;if(!t||!t.id||t.tagName&&t.nodeType||(t=t.id),!e||!e.length)try{e=E(t)}catch(e){}if(!e||!e.length)try{e=E("#"+t.replace(E.jstree.idregex,"\\$&"))}catch(e){}return e&&e.length&&(e=e.closest(".jstree")).length&&(e=e.data("jstree"))?i=e:E(".jstree").each(function(){var e=E(this).data("jstree");if(e&&e._model.data[t])return i=e,!1}),i},E.fn.jstree=function(i){var r="string"==typeof i,s=Array.prototype.slice.call(arguments,1),a=null;return!(!0===i&&!this.length)&&(this.each(function(){var e=E.jstree.reference(this),t=r&&e?e[i]:null;if(a=r&&t?t.apply(e,s):null,e||r||i!==P&&!E.isPlainObject(i)||E.jstree.create(this,i),null!==(a=e&&!r||!0===i?e||!1:a)&&a!==P)return!1}),null!==a&&a!==P?a:this)},E.expr.pseudos.jstree=E.expr.createPseudo(function(e){return function(e){return E(e).hasClass("jstree")&&E(e).data("jstree")!==P}}),E.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:E.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,ellipsis:!1,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0,loaded_state:!1,restore_focus:!0,compute_elements_positions:!1,keyboard:{"ctrl-space":function(e){e.type="click",E(e.currentTarget).trigger(e)},enter:function(e){e.type="click",E(e.currentTarget).trigger(e)},left:function(e){var e;e.preventDefault(),this.is_open(e.currentTarget)?this.close_node(e.currentTarget):(e=this.get_parent(e.currentTarget))&&e.id!==E.jstree.root&&this.get_node(e,!0).children(".jstree-anchor").trigger("focus")},up:function(e){e.preventDefault();var e=this.get_prev_dom(e.currentTarget);e&&e.length&&e.children(".jstree-anchor").trigger("focus")},right:function(e){var e;e.preventDefault(),this.is_closed(e.currentTarget)?this.open_node(e.currentTarget,function(e){this.get_node(e,!0).children(".jstree-anchor").trigger("focus")}):!this.is_open(e.currentTarget)||(e=this.get_node(e.currentTarget,!0).children(".jstree-children")[0])&&E(this._firstChild(e)).children(".jstree-anchor").trigger("focus")},down:function(e){e.preventDefault();var e=this.get_next_dom(e.currentTarget);e&&e.length&&e.children(".jstree-anchor").trigger("focus")},"*":function(e){this.open_all()},home:function(e){e.preventDefault();var e=this._firstChild(this.get_container_ul()[0]);e&&E(e).children(".jstree-anchor").filter(":visible").trigger("focus")},end:function(e){e.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().trigger("focus")},f2:function(e){e.preventDefault(),this.edit(e.currentTarget)}}},E.jstree.core.prototype={plugin:function(e,t){var i=E.jstree.plugins[e];return i?(this._data[e]={},i.prototype=this,new i(t,this)):this},init:function(e,t){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[E.jstree.root]={id:E.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=E(e).addClass("jstree jstree-"+this._id),this.settings=t,this._data.core.ready=!1,this._data.core.loaded=!1,this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html("<ul class='jstree-container-ul jstree-children' role='group'><li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='none'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' role='treeitem' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().outerHeight()||24,this._data.core.node=this._create_prototype_node(),this.trigger("loading"),this.load_node(E.jstree.root)},destroy:function(e){if(this.trigger("destroy"),this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(e){}e||this.element.empty(),this.teardown()},_create_prototype_node:function(){var e=b.createElement("LI"),t,i;return e.setAttribute("role","none"),(t=b.createElement("I")).className="jstree-icon jstree-ocl",t.setAttribute("role","presentation"),e.appendChild(t),(t=b.createElement("A")).className="jstree-anchor",t.setAttribute("href","#"),t.setAttribute("tabindex","-1"),t.setAttribute("role","treeitem"),(i=b.createElement("I")).className="jstree-icon jstree-themeicon",i.setAttribute("role","presentation"),t.appendChild(i),e.appendChild(t),t=i=null,e},_kbevent_to_func:function(e){var t={8:"Backspace",9:"Tab",13:"Enter",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock",16:"Shift",17:"Ctrl",18:"Alt",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*",173:"-"},i=[];if(e.ctrlKey&&i.push("ctrl"),e.altKey&&i.push("alt"),e.shiftKey&&i.push("shift"),i.push(t[e.which]||e.which),"shift-shift"===(i=i.sort().join("-").toLowerCase())||"ctrl-ctrl"===i||"alt-alt"===i)return null;var r=this.settings.core.keyboard,s,a;for(s in r)if(r.hasOwnProperty(s)&&(a="-"!==(a=s)&&"+"!==a?(a=a.replace("--","-MINUS").replace("+-","-MINUS").replace("++","-PLUS").replace("-+","-PLUS")).split(/-|\+/).sort().join("-").replace("MINUS","-").replace("PLUS","+").toLowerCase():a)===i)return r[s];return null},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var s="",a=null,t=0;this.element.on("dblclick.jstree",function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0;if(b.selection&&b.selection.empty)b.selection.empty();else if(window.getSelection){var e=window.getSelection();try{e.removeAllRanges(),e.collapse()}catch(e){}}}).on("mousedown.jstree",function(e){e.target===this.element[0]&&(e.preventDefault(),t=+new Date)}.bind(this)).on("mousedown.jstree",".jstree-ocl",function(e){e.preventDefault()}).on("click.jstree",".jstree-ocl",function(e){this.toggle_node(e.target)}.bind(this)).on("dblclick.jstree",".jstree-anchor",function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0;this.settings.core.dblclick_toggle&&this.toggle_node(e.target)}.bind(this)).on("click.jstree",".jstree-anchor",function(e){e.preventDefault(),e.currentTarget!==b.activeElement&&E(e.currentTarget).trigger("focus"),this.activate_node(e.currentTarget,e)}.bind(this)).on("keydown.jstree",".jstree-anchor",function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0;this._data.core.rtl&&(37===e.which?e.which=39:39===e.which&&(e.which=37));var t=this._kbevent_to_func(e);if(t){var e=t.call(this,e);if(!1===e||!0===e)return e}}.bind(this)).on("load_node.jstree",function(e,t){t.status&&(t.node.id!==E.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){for(var e=[],t,i,t=0,i=this._data.core.selected.length;t<i;t++)e=e.concat(this._model.data[this._data.core.selected[t]].parents);for(t=0,i=(e=E.vakata.array_unique(e)).length;t<i;t++)this.open_node(e[t],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}}.bind(this),0))}.bind(this)).on("keypress.jstree",function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0;a&&clearTimeout(a),a=setTimeout(function(){s=""},500);var i=String.fromCharCode(e.which).toLowerCase(),t=this.element.find(".jstree-anchor").filter(":visible"),e=t.index(b.activeElement)||0,r=!1;if(1<(s+=i).length){if(t.slice(e).each(function(e,t){if(0===E(t).text().toLowerCase().indexOf(s))return E(t).trigger("focus"),!(r=!0)}.bind(this)),r)return;if(t.slice(0,e).each(function(e,t){if(0===E(t).text().toLowerCase().indexOf(s))return E(t).trigger("focus"),!(r=!0)}.bind(this)),r)return}new RegExp("^"+i.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(s)&&(t.slice(e+1).each(function(e,t){if(E(t).text().toLowerCase().charAt(0)===i)return E(t).trigger("focus"),!(r=!0)}.bind(this)),r||t.slice(0,e+1).each(function(e,t){if(E(t).text().toLowerCase().charAt(0)===i)return E(t).trigger("focus"),!(r=!0)}.bind(this)))}.bind(this)).on("init.jstree",function(){var e=this.settings.core.themes;this._data.core.themes.dots=e.dots,this._data.core.themes.stripes=e.stripes,this._data.core.themes.icons=e.icons,this._data.core.themes.ellipsis=e.ellipsis,this.set_theme(e.name||"default",e.url),this.set_theme_variant(e.variant)}.bind(this)).on("loading.jstree",function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"](),this[this._data.core.themes.ellipsis?"show_ellipsis":"hide_ellipsis"]()}.bind(this)).on("blur.jstree",".jstree-anchor",function(e){this._data.core.focused=null,E(e.currentTarget).filter(".jstree-hovered").trigger("mouseleave"),this.element.attr("tabindex","0")}.bind(this)).on("focus.jstree",".jstree-anchor",function(e){var t=this.get_node(e.currentTarget);t&&t.id&&(this._data.core.focused=t.id),this.element.find(".jstree-hovered").not(e.currentTarget).trigger("mouseleave"),E(e.currentTarget).trigger("mouseenter"),this.element.attr("tabindex","-1")}.bind(this)).on("focus.jstree",function(){var e;500<+new Date-t&&!this._data.core.focused&&this.settings.core.restore_focus&&(t=0,(e=this.get_node(this.element.attr("aria-activedescendant"),!0))&&e.find("> .jstree-anchor").trigger("focus"))}.bind(this)).on("mouseenter.jstree",".jstree-anchor",function(e){this.hover_node(e.currentTarget)}.bind(this)).on("mouseleave.jstree",".jstree-anchor",function(e){this.dehover_node(e.currentTarget)}.bind(this))},unbind:function(){this.element.off(".jstree"),E(b).off(".jstree-"+this._id)},trigger:function(e,t){((t=t||{}).instance=this).element.triggerHandler(e.replace(".jstree","")+".jstree",t)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(e){var t=this.settings.core.strings;return E.vakata.is_function(t)?t.call(this,e):t&&t[e]?t[e]:e},_firstChild:function(e){e=e?e.firstChild:null;while(null!==e&&1!==e.nodeType)e=e.nextSibling;return e},_nextSibling:function(e){e=e?e.nextSibling:null;while(null!==e&&1!==e.nodeType)e=e.nextSibling;return e},_previousSibling:function(e){e=e?e.previousSibling:null;while(null!==e&&1!==e.nodeType)e=e.previousSibling;return e},get_node:function(e,t){var i;(e=e&&e.id?e.id:e)instanceof E&&e.length&&e[0].id&&(e=e[0].id);try{if(this._model.data[e])e=this._model.data[e];else if("string"==typeof e&&this._model.data[e.replace(/^#/,"")])e=this._model.data[e.replace(/^#/,"")];else if("string"==typeof e&&(i=E("#"+e.replace(E.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[i.closest(".jstree-node").attr("id")])e=this._model.data[i.closest(".jstree-node").attr("id")];else if((i=this.element.find(e)).length&&this._model.data[i.closest(".jstree-node").attr("id")])e=this._model.data[i.closest(".jstree-node").attr("id")];else{if(!(i=this.element.find(e)).length||!i.hasClass("jstree"))return!1;e=this._model.data[E.jstree.root]}return e=t?e.id===E.jstree.root?this.element:E("#"+e.id.replace(E.jstree.idregex,"\\$&"),this.element):e}catch(e){return!1}},get_path:function(e,t,i){if(!(e=e.parents?e:this.get_node(e))||e.id===E.jstree.root||!e.parents)return!1;var r,s,a=[];for(a.push(i?e.id:e.text),r=0,s=e.parents.length;r<s;r++)a.push(i?e.parents[r]:this.get_text(e.parents[r]));return a=a.reverse().slice(1),t?a.join(t):a},get_next_dom:function(e,t){var i;if((e=this.get_node(e,!0))[0]===this.element[0]){i=this._firstChild(this.get_container_ul()[0]);while(i&&0===i.offsetHeight)i=this._nextSibling(i);return!!i&&E(i)}if(!e||!e.length)return!1;if(t){i=e[0];do{i=this._nextSibling(i)}while(i&&0===i.offsetHeight);return!!i&&E(i)}if(e.hasClass("jstree-open")){i=this._firstChild(e.children(".jstree-children")[0]);while(i&&0===i.offsetHeight)i=this._nextSibling(i);if(null!==i)return E(i)}i=e[0];do{i=this._nextSibling(i)}while(i&&0===i.offsetHeight);return null!==i?E(i):e.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(e,t){var i;if((e=this.get_node(e,!0))[0]===this.element[0]){i=this.get_container_ul()[0].lastChild;while(i&&0===i.offsetHeight)i=this._previousSibling(i);return!!i&&E(i)}if(!e||!e.length)return!1;if(t){i=e[0];do{i=this._previousSibling(i)}while(i&&0===i.offsetHeight);return!!i&&E(i)}i=e[0];do{i=this._previousSibling(i)}while(i&&0===i.offsetHeight);if(null===i)return!(!(i=e[0].parentNode.parentNode)||!i.className||-1===i.className.indexOf("jstree-node"))&&E(i);e=E(i);while(e.hasClass("jstree-open"))e=e.children(".jstree-children").first().children(".jstree-node:visible:last");return e},get_parent:function(e){return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&e.parent},get_children_dom:function(e){return(e=this.get_node(e,!0))[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):!(!e||!e.length)&&e.children(".jstree-children").children(".jstree-node")},is_parent:function(e){return(e=this.get_node(e))&&(!1===e.state.loaded||0<e.children.length)},is_loaded:function(e){return(e=this.get_node(e))&&e.state.loaded},is_loading:function(e){return(e=this.get_node(e))&&e.state&&e.state.loading},is_open:function(e){return(e=this.get_node(e))&&e.state.opened},is_closed:function(e){return(e=this.get_node(e))&&this.is_parent(e)&&!e.state.opened},is_leaf:function(e){return!this.is_parent(e)},load_node:function(n,o){var e,t,i,r,s;if(E.vakata.is_array(n))return this._load_nodes(n.slice(),o),!0;if(!(n=this.get_node(n)))return o&&o.call(this,n,!1),!1;if(n.state.loaded){for(n.state.loaded=!1,i=0,r=n.parents.length;i<r;i++)this._model.data[n.parents[i]].children_d=E.vakata.array_filter(this._model.data[n.parents[i]].children_d,function(e){return-1===E.inArray(e,n.children_d)});for(e=0,t=n.children_d.length;e<t;e++)this._model.data[n.children_d[e]].state.selected&&(s=!0),delete this._model.data[n.children_d[e]];s&&(this._data.core.selected=E.vakata.array_filter(this._data.core.selected,function(e){return-1===E.inArray(e,n.children_d)})),n.children=[],n.children_d=[],s&&this.trigger("changed",{action:"load_node",node:n,selected:this._data.core.selected})}return n.state.failed=!1,n.state.loading=!0,this.get_node(n,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(n,function(e){(n=this._model.data[n.id]).state.loading=!1,n.state.loaded=e,n.state.failed=!n.state.loaded;for(var t=this.get_node(n,!0),i=0,r=0,s=this._model.data,a=!1,i=0,r=n.children.length;i<r;i++)if(s[n.children[i]]&&!s[n.children[i]].state.hidden){a=!0;break}n.state.loaded&&t&&t.length&&(t.removeClass("jstree-closed jstree-open jstree-leaf"),a?"#"!==n.id&&t.addClass(n.state.opened?"jstree-open":"jstree-closed"):t.addClass("jstree-leaf")),t.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:n,status:e}),o&&o.call(this,n,e)}.bind(this)),!0},_load_nodes:function(e,t,i,r){for(var s=!0,a=function(){this._load_nodes(e,t,!0)},n=this._model.data,o,d,c=[],o=0,d=e.length;o<d;o++)n[e[o]]&&(!n[e[o]].state.loaded&&!n[e[o]].state.failed||!i&&r)&&(this.is_loading(e[o])||this.load_node(e[o],a),s=!1);if(s){for(o=0,d=e.length;o<d;o++)n[e[o]]&&n[e[o]].state.loaded&&c.push(e[o]);t&&!t.done&&(t.call(this,c),t.done=!0)}},load_all:function(e,t){if(e=e||E.jstree.root,!(e=this.get_node(e)))return!1;var i=[],r=this._model.data,s=r[e.id].children_d,a,n;for(e.state&&!e.state.loaded&&i.push(e.id),a=0,n=s.length;a<n;a++)r[s[a]]&&r[s[a]].state&&!r[s[a]].state.loaded&&i.push(s[a]);i.length?this._load_nodes(i,function(){this.load_all(e,t)}):(t&&t.call(this,e),this.trigger("load_all",{node:e}))},_load_node:function(s,a){var e=this.settings.core.data,t,n=function e(){return 3!==this.nodeType&&8!==this.nodeType};return e?E.vakata.is_function(e)?e.call(this,s,function(e){!1===e?a.call(this,!1):this["string"==typeof e?"_append_html_data":"_append_json_data"](s,"string"==typeof e?E(E.parseHTML(e)).filter(n):e,function(e){a.call(this,e)})}.bind(this)):"object"==typeof e?e.url?(e=E.extend(!0,{},e),E.vakata.is_function(e.url)&&(e.url=e.url.call(this,s)),E.vakata.is_function(e.data)&&(e.data=e.data.call(this,s)),E.ajax(e).done(function(e,t,i){var r=i.getResponseHeader("Content-Type");return r&&-1!==r.indexOf("json")||"object"==typeof e?this._append_json_data(s,e,function(e){a.call(this,e)}):r&&-1!==r.indexOf("html")||"string"==typeof e?this._append_html_data(s,E(E.parseHTML(e)).filter(n),function(e){a.call(this,e)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:s.id,xhr:i})},this.settings.core.error.call(this,this._data.core.last_error),a.call(this,!1))}.bind(this)).fail(function(e){this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:s.id,xhr:e})},a.call(this,!1),this.settings.core.error.call(this,this._data.core.last_error)}.bind(this))):(t=E.vakata.is_array(e)?E.extend(!0,[],e):E.isPlainObject(e)?E.extend(!0,{},e):e,s.id===E.jstree.root?this._append_json_data(s,t,function(e){a.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:s.id})},this.settings.core.error.call(this,this._data.core.last_error),a.call(this,!1))):"string"==typeof e?s.id===E.jstree.root?this._append_html_data(s,E(E.parseHTML(e)).filter(n),function(e){a.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:s.id})},this.settings.core.error.call(this,this._data.core.last_error),a.call(this,!1)):a.call(this,!1):s.id===E.jstree.root?this._append_html_data(s,this._data.core.original_container_html.clone(!0),function(e){a.call(this,e)}):a.call(this,!1)},_node_changed:function(e){(e=this.get_node(e))&&-1===E.inArray(e.id,this._model.changed)&&this._model.changed.push(e.id)},_append_html_data:function(e,t,i){(e=this.get_node(e)).children=[],e.children_d=[];var t=t.is("ul")?t.children():t,r=e.id,s=[],a=[],n=this._model.data,o=n[r],e=this._data.core.selected.length,d,c,l;for(t.each(function(e,t){(d=this._parse_model_from_html(E(t),r,o.parents.concat()))&&(s.push(d),a.push(d),n[d].children_d.length&&(a=a.concat(n[d].children_d)))}.bind(this)),o.children=s,o.children_d=a,c=0,l=o.parents.length;c<l;c++)n[o.parents[c]].children_d=n[o.parents[c]].children_d.concat(a);this.trigger("model",{nodes:a,parent:r}),r!==E.jstree.root?(this._node_changed(r),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==e&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),i.call(this,!0)},_append_json_data:function(e,t,d,i){if(null!==this.element){(e=this.get_node(e)).children=[],e.children_d=[],t.d&&"string"==typeof(t=t.d)&&(t=JSON.parse(t)),E.vakata.is_array(t)||(t=[t]);var r=null,s={df:this._model.default_state,dat:t,par:e.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},v=this,a=function(e,c){var t=(e=e.data?e.data:e).dat,i=e.par,r=[],s=[],l=[],h=e.df,_=e.t_id,g=e.t_cnt,u=e.m,a=u[i],e=e.sel,n,o,d,f,p=function(e,t,i){i=i?i.concat():[],t&&i.unshift(t);var r=e.id.toString(),s,a,n,o,d={id:r,text:e.text||"",icon:e.icon===c||e.icon,parent:t,parents:i,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(s in h)h.hasOwnProperty(s)&&(d.state[s]=h[s]);if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(d.icon=e.data.jstree.icon),d.icon!==c&&null!==d.icon&&""!==d.icon||(d.icon=!0),e&&e.data&&(d.data=e.data,e.data.jstree))for(s in e.data.jstree)e.data.jstree.hasOwnProperty(s)&&(d.state[s]=e.data.jstree[s]);if(e&&"object"==typeof e.state)for(s in e.state)e.state.hasOwnProperty(s)&&(d.state[s]=e.state[s]);if(e&&"object"==typeof e.li_attr)for(s in e.li_attr)e.li_attr.hasOwnProperty(s)&&(d.li_attr[s]=e.li_attr[s]);if(d.li_attr.id||(d.li_attr.id=r),e&&"object"==typeof e.a_attr)for(s in e.a_attr)e.a_attr.hasOwnProperty(s)&&(d.a_attr[s]=e.a_attr[s]);for(e&&e.children&&!0===e.children&&(d.state.loaded=!1,d.children=[],d.children_d=[]),s=0,a=(u[d.id]=d).children.length;s<a;s++)n=p(u[d.children[s]],d.id,i),o=u[n],d.children_d.push(n),o.children_d.length&&(d.children_d=d.children_d.concat(o.children_d));return delete e.data,delete e.children,u[d.id].original=e,d.state.selected&&l.push(d.id),d.id},m=function(e,t,i){i=i?i.concat():[],t&&i.unshift(t);var r=!1,s,a,n,o,d;do{r="j"+_+"_"+ ++g}while(u[r]);for(s in d={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===c||e.icon,parent:t,parents:i,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1},h)h.hasOwnProperty(s)&&(d.state[s]=h[s]);if(e&&e.id&&(d.id=e.id.toString()),e&&e.text&&(d.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(d.icon=e.data.jstree.icon),d.icon!==c&&null!==d.icon&&""!==d.icon||(d.icon=!0),e&&e.data&&(d.data=e.data,e.data.jstree))for(s in e.data.jstree)e.data.jstree.hasOwnProperty(s)&&(d.state[s]=e.data.jstree[s]);if(e&&"object"==typeof e.state)for(s in e.state)e.state.hasOwnProperty(s)&&(d.state[s]=e.state[s]);if(e&&"object"==typeof e.li_attr)for(s in e.li_attr)e.li_attr.hasOwnProperty(s)&&(d.li_attr[s]=e.li_attr[s]);if(d.li_attr.id&&!d.id&&(d.id=d.li_attr.id.toString()),d.id||(d.id=r),d.li_attr.id||(d.li_attr.id=d.id),e&&"object"==typeof e.a_attr)for(s in e.a_attr)e.a_attr.hasOwnProperty(s)&&(d.a_attr[s]=e.a_attr[s]);if(e&&e.children&&e.children.length){for(s=0,a=e.children.length;s<a;s++)n=m(e.children[s],d.id,i),o=u[n],d.children.push(n),o.children_d.length&&(d.children_d=d.children_d.concat(o.children_d));d.children_d=d.children_d.concat(d.children)}return e&&e.children&&!0===e.children&&(d.state.loaded=!1,d.children=[],d.children_d=[]),delete e.data,delete e.children,d.original=e,(u[d.id]=d).state.selected&&l.push(d.id),d.id};if(t.length&&t[0].id!==c&&t[0].parent!==c){for(o=0,d=t.length;o<d;o++)t[o].children||(t[o].children=[]),t[o].state||(t[o].state={}),u[t[o].id.toString()]=t[o];for(o=0,d=t.length;o<d;o++)u[t[o].parent.toString()]?(u[t[o].parent.toString()].children.push(t[o].id.toString()),a.children_d.push(t[o].id.toString())):void 0!==v&&(v._data.core.last_error={error:"parse",plugin:"core",id:"core_07",reason:"Node with invalid parent",data:JSON.stringify({id:t[o].id.toString(),parent:t[o].parent.toString()})},v.settings.core.error.call(v,v._data.core.last_error));for(o=0,d=a.children.length;o<d;o++)n=p(u[a.children[o]],i,a.parents.concat()),s.push(n),u[n].children_d.length&&(s=s.concat(u[n].children_d));for(o=0,d=a.parents.length;o<d;o++)u[a.parents[o]].children_d=u[a.parents[o]].children_d.concat(s);f={cnt:g,mod:u,sel:e,par:i,dpc:s,add:l}}else{for(o=0,d=t.length;o<d;o++)(n=m(t[o],i,a.parents.concat()))&&(r.push(n),s.push(n),u[n].children_d.length&&(s=s.concat(u[n].children_d)));for(a.children=r,a.children_d=s,o=0,d=a.parents.length;o<d;o++)u[a.parents[o]].children_d=u[a.parents[o]].children_d.concat(s);f={cnt:g,mod:u,sel:e,par:i,dpc:s,add:l}}if("undefined"!=typeof window&&void 0!==window.document)return f;postMessage(f)},n=function(e,t){if(null!==this.element){var i,r;for(i in this._cnt=e.cnt,r=this._model.data)r.hasOwnProperty(i)&&r[i].state&&r[i].state.loading&&e.mod[i]&&(e.mod[i].state.loading=!0);if(this._model.data=e.mod,t){var s,a=e.add,n=e.sel,o=this._data.core.selected.slice(),r=this._model.data;if(n.length!==o.length||E.vakata.array_unique(n.concat(o)).length!==n.length){for(i=0,s=n.length;i<s;i++)-1===E.inArray(n[i],a)&&-1===E.inArray(n[i],o)&&(r[n[i]].state.selected=!1);for(i=0,s=o.length;i<s;i++)-1===E.inArray(o[i],n)&&(r[o[i]].state.selected=!0)}}e.add.length&&(this._data.core.selected=this._data.core.selected.concat(e.add)),this.trigger("model",{nodes:e.dpc,parent:e.par}),e.par!==E.jstree.root?(this._node_changed(e.par),this.redraw()):this.redraw(!0),e.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),!t&&c?c(function(){d.call(v,!0)}):d.call(v,!0)}};if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+a.toString()],{type:"text/javascript"}))),!this._data.core.working||i?(this._data.core.working=!0,(r=new window.Worker(this._wrk)).onmessage=function(e){n.call(this,e.data,!0);try{r.terminate(),r=null}catch(e){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}.bind(this),r.onerror=function(e){n.call(this,a(s),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}.bind(this),s.par?r.postMessage(s):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([e,t,d,!0])}catch(e){n.call(this,a(s),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else n.call(this,a(s),!1)}},_parse_model_from_html:function(e,t,i){i=i?[].concat(i):[],t&&i.unshift(t);var r,s,a=this._model.data,n={id:!1,text:!1,icon:!0,parent:t,parents:i,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1},o,t,d;for(o in this._model.default_state)this._model.default_state.hasOwnProperty(o)&&(n.state[o]=this._model.default_state[o]);if(t=E.vakata.attributes(e,!0),E.each(t,function(e,t){return!(t=E.vakata.trim(t)).length||(n.li_attr[e]=t,void("id"===e&&(n.id=t.toString())))}),(t=e.children("a").first()).length&&(t=E.vakata.attributes(t,!0),E.each(t,function(e,t){(t=E.vakata.trim(t)).length&&(n.a_attr[e]=t)})),(t=(e.children("a").first().length?e.children("a").first():e).clone()).children("ins, i, ul").remove(),t=t.html(),t=E("<div></div>").html(t),n.text=this.settings.core.force_text?t.text():t.html(),t=e.data(),n.data=t?E.extend(!0,{},t):null,n.state.opened=e.hasClass("jstree-open"),n.state.selected=e.children("a").hasClass("jstree-clicked"),n.state.disabled=e.children("a").hasClass("jstree-disabled"),n.data&&n.data.jstree)for(o in n.data.jstree)n.data.jstree.hasOwnProperty(o)&&(n.state[o]=n.data.jstree[o]);(t=e.children("a").children(".jstree-themeicon")).length&&(n.icon=!t.hasClass("jstree-themeicon-hidden")&&t.attr("rel")),n.state.icon!==P&&(n.icon=n.state.icon),n.icon!==P&&null!==n.icon&&""!==n.icon||(n.icon=!0),t=e.children("ul").children("li");do{d="j"+this._id+"_"+ ++this._cnt}while(a[d]);return n.id=n.li_attr.id?n.li_attr.id.toString():d,t.length?(t.each(function(e,t){r=this._parse_model_from_html(E(t),n.id,i),s=this._model.data[r],n.children.push(r),s.children_d.length&&(n.children_d=n.children_d.concat(s.children_d))}.bind(this)),n.children_d=n.children_d.concat(n.children)):e.hasClass("jstree-closed")&&(n.state.loaded=!1),n.li_attr.class&&(n.li_attr.class=n.li_attr.class.replace("jstree-closed","").replace("jstree-open","")),n.a_attr.class&&(n.a_attr.class=n.a_attr.class.replace("jstree-clicked","").replace("jstree-disabled","")),(a[n.id]=n).state.selected&&this._data.core.selected.push(n.id),n.id},_parse_model_from_flat_json:function(e,t,i){i=i?i.concat():[],t&&i.unshift(t);var r=e.id.toString(),s=this._model.data,a=this._model.default_state,n,o,d,c,l={id:r,text:e.text||"",icon:e.icon===P||e.icon,parent:t,parents:i,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(n in a)a.hasOwnProperty(n)&&(l.state[n]=a[n]);if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(l.icon=e.data.jstree.icon),l.icon!==P&&null!==l.icon&&""!==l.icon||(l.icon=!0),e&&e.data&&(l.data=e.data,e.data.jstree))for(n in e.data.jstree)e.data.jstree.hasOwnProperty(n)&&(l.state[n]=e.data.jstree[n]);if(e&&"object"==typeof e.state)for(n in e.state)e.state.hasOwnProperty(n)&&(l.state[n]=e.state[n]);if(e&&"object"==typeof e.li_attr)for(n in e.li_attr)e.li_attr.hasOwnProperty(n)&&(l.li_attr[n]=e.li_attr[n]);if(l.li_attr.id||(l.li_attr.id=r),e&&"object"==typeof e.a_attr)for(n in e.a_attr)e.a_attr.hasOwnProperty(n)&&(l.a_attr[n]=e.a_attr[n]);for(e&&e.children&&!0===e.children&&(l.state.loaded=!1,l.children=[],l.children_d=[]),n=0,o=(s[l.id]=l).children.length;n<o;n++)c=s[d=this._parse_model_from_flat_json(s[l.children[n]],l.id,i)],l.children_d.push(d),c.children_d.length&&(l.children_d=l.children_d.concat(c.children_d));return delete e.data,delete e.children,s[l.id].original=e,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_json:function(e,t,i){i=i?i.concat():[],t&&i.unshift(t);var r=!1,s,a,n,o,d=this._model.data,c=this._model.default_state,l;do{r="j"+this._id+"_"+ ++this._cnt}while(d[r]);for(s in l={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===P||e.icon,parent:t,parents:i,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1},c)c.hasOwnProperty(s)&&(l.state[s]=c[s]);if(e&&e.id&&(l.id=e.id.toString()),e&&e.text&&(l.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(l.icon=e.data.jstree.icon),l.icon!==P&&null!==l.icon&&""!==l.icon||(l.icon=!0),e&&e.data&&(l.data=e.data,e.data.jstree))for(s in e.data.jstree)e.data.jstree.hasOwnProperty(s)&&(l.state[s]=e.data.jstree[s]);if(e&&"object"==typeof e.state)for(s in e.state)e.state.hasOwnProperty(s)&&(l.state[s]=e.state[s]);if(e&&"object"==typeof e.li_attr)for(s in e.li_attr)e.li_attr.hasOwnProperty(s)&&(l.li_attr[s]=e.li_attr[s]);if(l.li_attr.id&&!l.id&&(l.id=l.li_attr.id.toString()),l.id||(l.id=r),l.li_attr.id||(l.li_attr.id=l.id),e&&"object"==typeof e.a_attr)for(s in e.a_attr)e.a_attr.hasOwnProperty(s)&&(l.a_attr[s]=e.a_attr[s]);if(e&&e.children&&e.children.length){for(s=0,a=e.children.length;s<a;s++)o=d[n=this._parse_model_from_json(e.children[s],l.id,i)],l.children.push(n),o.children_d.length&&(l.children_d=l.children_d.concat(o.children_d));l.children_d=l.children.concat(l.children_d)}return e&&e.children&&!0===e.children&&(l.state.loaded=!1,l.children=[],l.children_d=[]),delete e.data,delete e.children,l.original=e,(d[l.id]=l).state.selected&&this._data.core.selected.push(l.id),l.id},_redraw:function(){for(var e=(this._model.force_full_redraw?this._model.data[E.jstree.root].children:this._model.changed).concat([]),t=b.createElement("UL"),i,r,s,a=this._data.core.focused,r=0,s=e.length;r<s;r++)(i=this.redraw_node(e[r],!0,this._model.force_full_redraw))&&this._model.force_full_redraw&&t.appendChild(i);this._model.force_full_redraw&&(t.className=this.get_container_ul()[0].className,t.setAttribute("role","group"),this.element.empty().append(t)),null!==a&&this.settings.core.restore_focus&&((i=this.get_node(a,!0))&&i.length&&i.children(".jstree-anchor")[0]!==b.activeElement?i.children(".jstree-anchor").trigger("focus"):this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:e})},redraw:function(e){e&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(e){var t=this.get_node(e),i=!1,r=!1,s=!1,a=b;if(!t)return!1;if(t.id===E.jstree.root)return this.redraw(!0);if(!(e=this.get_node(e,!0))||!e.length)return!1;if(e.children(".jstree-children").remove(),e=e[0],t.children.length&&t.state.loaded){for((s=a.createElement("UL")).setAttribute("role","group"),s.className="jstree-children",i=0,r=t.children.length;i<r;i++)s.appendChild(this.redraw_node(t.children[i],!0,!0));e.appendChild(s)}},redraw_node:function(e,t,i,r){var s=this.get_node(e),a=!1,n=!1,o=!1,d=!1,c=!1,l=!1,h="",_=b,g=this._model.data,u=!1,f=!1,p=null,m=0,v=0,j=!1,k=!1;if(!s)return!1;if(s.id===E.jstree.root)return this.redraw(!0);if(t=t||0===s.children.length,e=b.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(s.id[0])?"\\3"+s.id[0]+" "+s.id.substr(1).replace(E.jstree.idregex,"\\$&"):s.id.replace(E.jstree.idregex,"\\$&"))):b.getElementById(s.id))e=E(e),i||((a=e.parent().parent()[0])===this.element[0]&&(a=null),n=e.index()),(t=!t&&s.children.length&&!e.children(".jstree-children").length?!0:t)||(o=e.children(".jstree-children")[0]),u=e.children(".jstree-anchor")[0]===b.activeElement,e.remove();else if(t=!0,!i){if(!(null===(a=s.parent!==E.jstree.root?E("#"+s.parent.replace(E.jstree.idregex,"\\$&"),this.element)[0]:null)||a&&g[s.parent].state.opened))return!1;n=E.inArray(s.id,(null===a?g[E.jstree.root]:g[s.parent]).children)}for(d in e=this._data.core.node.cloneNode(!0),h="jstree-node ",s.li_attr)s.li_attr.hasOwnProperty(d)&&"id"!==d&&("class"!==d?e.setAttribute(d,s.li_attr[d]):h+=s.li_attr[d]);for(s.a_attr.id||(s.a_attr.id=s.id+"_anchor"),e.childNodes[1].setAttribute("aria-selected",!!s.state.selected),e.childNodes[1].setAttribute("aria-level",s.parents.length),this.settings.core.compute_elements_positions&&(e.childNodes[1].setAttribute("aria-setsize",g[s.parent].children.length),e.childNodes[1].setAttribute("aria-posinset",g[s.parent].children.indexOf(s.id)+1)),s.state.disabled&&e.childNodes[1].setAttribute("aria-disabled",!0),d=0,c=s.children.length;d<c;d++)if(!g[s.children[d]].state.hidden){j=!0;break}if(null!==s.parent&&g[s.parent]&&!s.state.hidden&&(d=E.inArray(s.id,g[s.parent].children),k=s.id,-1!==d))for(d++,c=g[s.parent].children.length;d<c;d++)if((k=!g[g[s.parent].children[d]].state.hidden?g[s.parent].children[d]:k)!==s.id)break;for(c in s.state.hidden&&(h+=" jstree-hidden"),s.state.loading&&(h+=" jstree-loading"),s.state.loaded&&!j?h+=" jstree-leaf":(h+=s.state.opened&&s.state.loaded?" jstree-open":" jstree-closed",e.childNodes[1].setAttribute("aria-expanded",s.state.opened&&s.state.loaded)),k===s.id&&(h+=" jstree-last"),e.id=s.id,e.className=h,h=(s.state.selected?" jstree-clicked":"")+(s.state.disabled?" jstree-disabled":""),s.a_attr)s.a_attr.hasOwnProperty(c)&&("href"===c&&"#"===s.a_attr[c]||("class"!==c?e.childNodes[1].setAttribute(c,s.a_attr[c]):h+=" "+s.a_attr[c]));if(h.length&&(e.childNodes[1].className="jstree-anchor "+h),(s.icon&&!0!==s.icon||!1===s.icon)&&(!1===s.icon?e.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===s.icon.indexOf("/")&&-1===s.icon.indexOf(".")?e.childNodes[1].childNodes[0].className+=" "+s.icon+" jstree-themeicon-custom":(e.childNodes[1].childNodes[0].style.backgroundImage='url("'+s.icon+'")',e.childNodes[1].childNodes[0].style.backgroundPosition="center center",e.childNodes[1].childNodes[0].style.backgroundSize="auto",e.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?e.childNodes[1].appendChild(_.createTextNode(s.text)):e.childNodes[1].innerHTML+=s.text,t&&s.children.length&&(s.state.opened||r)&&s.state.loaded){for((l=_.createElement("UL")).setAttribute("role","group"),l.className="jstree-children",d=0,c=s.children.length;d<c;d++)l.appendChild(this.redraw_node(s.children[d],t,!0));e.appendChild(l)}if(o&&e.appendChild(o),!i){for(d=0,c=(a=a||this.element[0]).childNodes.length;d<c;d++)if(a.childNodes[d]&&a.childNodes[d].className&&-1!==a.childNodes[d].className.indexOf("jstree-children")){p=a.childNodes[d];break}p||((p=_.createElement("UL")).setAttribute("role","group"),p.className="jstree-children",a.appendChild(p)),n<(a=p).childNodes.length?a.insertBefore(e,a.childNodes[n]):a.appendChild(e),u&&(m=this.element[0].scrollTop,v=this.element[0].scrollLeft,e.childNodes[1].focus(),this.element[0].scrollTop=m,this.element[0].scrollLeft=v)}return s.state.opened&&!s.state.loaded&&(s.state.opened=!1,setTimeout(function(){this.open_node(s.id,!1,0)}.bind(this),0)),e},open_node:function(e,i,r){var t,s,a,n;if(E.vakata.is_array(e)){for(t=0,s=(e=e.slice()).length;t<s;t++)this.open_node(e[t],i,r);return!0}return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&(r=r===P?this.settings.core.animation:r,this.is_closed(e)?this.is_loaded(e)?(a=this.get_node(e,!0),n=this,a.length&&(r&&a.children(".jstree-children").length&&a.children(".jstree-children").stop(!0,!0),e.children.length&&!this._firstChild(a.children(".jstree-children")[0])&&this.draw_children(e),r?(this.trigger("before_open",{node:e}),a.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").children(".jstree-anchor").attr("aria-expanded",!0).end().children(".jstree-children").stop(!0,!0).slideDown(r,function(){this.style.display="",n.element&&n.trigger("after_open",{node:e})})):(this.trigger("before_open",{node:e}),a[0].className=a[0].className.replace("jstree-closed","jstree-open"),a[0].childNodes[1].setAttribute("aria-expanded",!0))),e.state.opened=!0,i&&i.call(this,e,!0),a.length||this.trigger("before_open",{node:e}),this.trigger("open_node",{node:e}),r&&a.length||this.trigger("after_open",{node:e}),!0):this.is_loading(e)?setTimeout(function(){this.open_node(e,i,r)}.bind(this),500):void this.load_node(e,function(e,t){return t?this.open_node(e,i,r):!!i&&i.call(this,e,!1)}):(i&&i.call(this,e,!1),!1))},_open_to:function(e){if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;for(var t,i,r=e.parents,t=0,i=r.length;t<i;t+=1)t!==E.jstree.root&&this.open_node(r[t],!1,0);return E("#"+e.id.replace(E.jstree.idregex,"\\$&"),this.element)},close_node:function(e,t){var i,r,s,a;if(E.vakata.is_array(e)){for(i=0,r=(e=e.slice()).length;i<r;i++)this.close_node(e[i],t);return!0}return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&(!this.is_closed(e)&&(t=t===P?this.settings.core.animation:t,a=(s=this).get_node(e,!0),e.state.opened=!1,this.trigger("close_node",{node:e}),void(a.length?t?a.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").children(".jstree-anchor").attr("aria-expanded",!1).end().children(".jstree-children").stop(!0,!0).slideUp(t,function(){this.style.display="",a.children(".jstree-children").remove(),s.element&&s.trigger("after_close",{node:e})}):(a[0].className=a[0].className.replace("jstree-open","jstree-closed"),a.children(".jstree-anchor").attr("aria-expanded",!1),a.children(".jstree-children").remove(),this.trigger("after_close",{node:e})):this.trigger("after_close",{node:e}))))},toggle_node:function(e){var t,i;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.toggle_node(e[t]);return!0}return this.is_closed(e)?this.open_node(e):this.is_open(e)?this.close_node(e):void 0},open_all:function(e,i,r){if(e=e||E.jstree.root,!(e=this.get_node(e)))return!1;var t=e.id===E.jstree.root?this.get_container_ul():this.get_node(e,!0),s,a,n;if(!t.length){for(s=0,a=e.children_d.length;s<a;s++)this.is_closed(this._model.data[e.children_d[s]])&&(this._model.data[e.children_d[s]].state.opened=!0);return this.trigger("open_all",{node:e})}r=r||t,(t=(n=this).is_closed(e)?t.find(".jstree-closed").addBack():t.find(".jstree-closed")).each(function(){n.open_node(this,function(e,t){t&&this.is_parent(e)&&this.open_all(e,i,r)},i||0)}),0===r.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(r)})},close_all:function(e,t){if(e=e||E.jstree.root,!(e=this.get_node(e)))return!1;var i=e.id===E.jstree.root?this.get_container_ul():this.get_node(e,!0),r=this,s,a;for(i.length&&(i=this.is_open(e)?i.find(".jstree-open").addBack():i.find(".jstree-open"),E(i.get().reverse()).each(function(){r.close_node(this,t||0)})),s=0,a=e.children_d.length;s<a;s++)this._model.data[e.children_d[s]].state.opened=!1;this.trigger("close_all",{node:e})},is_disabled:function(e){return(e=this.get_node(e))&&e.state&&e.state.disabled},enable_node:function(e){var t,i;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.enable_node(e[t]);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;e.state.disabled=!1,this.get_node(e,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),this.trigger("enable_node",{node:e})},disable_node:function(e){var t,i;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.disable_node(e[t]);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;e.state.disabled=!0,this.get_node(e,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),this.trigger("disable_node",{node:e})},is_hidden:function(e){return!0===(e=this.get_node(e)).state.hidden},hide_node:function(e,t){var i,r;if(E.vakata.is_array(e)){for(i=0,r=(e=e.slice()).length;i<r;i++)this.hide_node(e[i],!0);return t||this.redraw(),!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;e.state.hidden||(e.state.hidden=!0,this._node_changed(e.parent),t||this.redraw(),this.trigger("hide_node",{node:e}))},show_node:function(e,t){var i,r;if(E.vakata.is_array(e)){for(i=0,r=(e=e.slice()).length;i<r;i++)this.show_node(e[i],!0);return t||this.redraw(),!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;e.state.hidden&&(e.state.hidden=!1,this._node_changed(e.parent),t||this.redraw(),this.trigger("show_node",{node:e}))},hide_all:function(e){var t,i=this._model.data,r=[];for(t in i)i.hasOwnProperty(t)&&t!==E.jstree.root&&!i[t].state.hidden&&(i[t].state.hidden=!0,r.push(t));return this._model.force_full_redraw=!0,e||this.redraw(),this.trigger("hide_all",{nodes:r}),r},show_all:function(e){var t,i=this._model.data,r=[];for(t in i)i.hasOwnProperty(t)&&t!==E.jstree.root&&i[t].state.hidden&&(i[t].state.hidden=!1,r.push(t));return this._model.force_full_redraw=!0,e||this.redraw(),this.trigger("show_all",{nodes:r}),r},activate_node:function(e,t){if(this.is_disabled(e))return!1;if(t&&"object"==typeof t||(t={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==P?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(t.metaKey||t.ctrlKey||t.shiftKey)&&(!t.shiftKey||this._data.core.last_clicked&&this.get_parent(e)&&this.get_parent(e)===this._data.core.last_clicked.parent))if(t.shiftKey){for(var i=this.get_node(e).id,r=this._data.core.last_clicked.id,s=this.get_node(this._data.core.last_clicked.parent).children,a=!1,n,o,n=0,o=s.length;n<o;n+=1)s[n]===i&&(a=!a),s[n]===r&&(a=!a),this.is_disabled(s[n])||!a&&s[n]!==i&&s[n]!==r?this.deselect_node(s[n],!0,t):this.is_hidden(s[n])||this.select_node(s[n],!0,!1,t);this.trigger("changed",{action:"select_node",node:this.get_node(e),selected:this._data.core.selected,event:t})}else this.is_selected(e)?this.deselect_node(e,!1,t):this.select_node(e,!1,!1,t);else!this.settings.core.multiple&&(t.metaKey||t.ctrlKey||t.shiftKey)&&this.is_selected(e)?this.deselect_node(e,!1,t):(this.deselect_all(!0),this.select_node(e,!1,!1,t),this._data.core.last_clicked=this.get_node(e));this.trigger("activate_node",{node:this.get_node(e),event:t})},hover_node:function(e){if(!(e=this.get_node(e,!0))||!e.length||e.children(".jstree-hovered").length)return!1;var t=this.element.find(".jstree-hovered"),i=this.element;t&&t.length&&this.dehover_node(t),e.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(e)}),setTimeout(function(){i.attr("aria-activedescendant",e[0].id)},0)},dehover_node:function(e){if(!(e=this.get_node(e,!0))||!e.length||!e.children(".jstree-hovered").length)return!1;e.children(".jstree-anchor").removeClass("jstree-hovered"),this.trigger("dehover_node",{node:this.get_node(e)})},select_node:function(e,t,i,r){var s,a,n,o;if(E.vakata.is_array(e)){for(a=0,n=(e=e.slice()).length;a<n;a++)this.select_node(e[a],t,i,r);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;s=this.get_node(e,!0),e.state.selected||(e.state.selected=!0,this._data.core.selected.push(e.id),(s=!i?this._open_to(e):s)&&s.length&&s.children(".jstree-anchor").addClass("jstree-clicked").attr("aria-selected",!0),this.trigger("select_node",{node:e,selected:this._data.core.selected,event:r}),t||this.trigger("changed",{action:"select_node",node:e,selected:this._data.core.selected,event:r}))},deselect_node:function(e,t,i){var r,s,a;if(E.vakata.is_array(e)){for(r=0,s=(e=e.slice()).length;r<s;r++)this.deselect_node(e[r],t,i);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;a=this.get_node(e,!0),e.state.selected&&(e.state.selected=!1,this._data.core.selected=E.vakata.array_remove_item(this._data.core.selected,e.id),a.length&&a.children(".jstree-anchor").removeClass("jstree-clicked").attr("aria-selected",!1),this.trigger("deselect_node",{node:e,selected:this._data.core.selected,event:i}),t||this.trigger("changed",{action:"deselect_node",node:e,selected:this._data.core.selected,event:i}))},select_all:function(e){var t=this._data.core.selected.concat([]),i,r;for(this._data.core.selected=this._model.data[E.jstree.root].children_d.concat(),i=0,r=this._data.core.selected.length;i<r;i++)this._model.data[this._data.core.selected[i]]&&(this._model.data[this._data.core.selected[i]].state.selected=!0);this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),e||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:t})},deselect_all:function(e){for(var t=this._data.core.selected.concat([]),i,r,i=0,r=this._data.core.selected.length;i<r;i++)this._model.data[this._data.core.selected[i]]&&(this._model.data[this._data.core.selected[i]].state.selected=!1);this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:t}),e||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:t})},is_selected:function(e){return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&e.state.selected},get_selected:function(e){return e?E.map(this._data.core.selected,function(e){return this.get_node(e)}.bind(this)):this._data.core.selected.slice()},get_top_selected:function(e){for(var t=this.get_selected(!0),i={},r,s,a,n,r=0,s=t.length;r<s;r++)i[t[r].id]=t[r];for(r=0,s=t.length;r<s;r++)for(a=0,n=t[r].children_d.length;a<n;a++)i[t[r].children_d[a]]&&delete i[t[r].children_d[a]];for(r in t=[],i)i.hasOwnProperty(r)&&t.push(r);return e?E.map(t,function(e){return this.get_node(e)}.bind(this)):t},get_bottom_selected:function(e){for(var t=this.get_selected(!0),i=[],r,s,r=0,s=t.length;r<s;r++)t[r].children.length||i.push(t[r].id);return e?E.map(i,function(e){return this.get_node(e)}.bind(this)):i},get_state:function(){var e={core:{open:[],loaded:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}},t;for(t in this._model.data)this._model.data.hasOwnProperty(t)&&t!==E.jstree.root&&(this._model.data[t].state.loaded&&this.settings.core.loaded_state&&e.core.loaded.push(t),this._model.data[t].state.opened&&e.core.open.push(t),this._model.data[t].state.selected&&e.core.selected.push(t));return e},set_state:function(t,i){if(t){if(t.core&&t.core.selected&&t.core.initial_selection===P&&(t.core.initial_selection=this._data.core.selected.concat([]).sort().join(",")),t.core){var e,r,s,a,n;if(t.core.loaded)return this.settings.core.loaded_state&&E.vakata.is_array(t.core.loaded)&&t.core.loaded.length?this._load_nodes(t.core.loaded,function(e){delete t.core.loaded,this.set_state(t,i)}):(delete t.core.loaded,this.set_state(t,i)),!1;if(t.core.open)return E.vakata.is_array(t.core.open)&&t.core.open.length?this._load_nodes(t.core.open,function(e){this.open_node(e,!1,0),delete t.core.open,this.set_state(t,i)}):(delete t.core.open,this.set_state(t,i)),!1;if(t.core.scroll)return t.core.scroll&&t.core.scroll.left!==P&&this.element.scrollLeft(t.core.scroll.left),t.core.scroll&&t.core.scroll.top!==P&&this.element.scrollTop(t.core.scroll.top),delete t.core.scroll,this.set_state(t,i),!1;if(t.core.selected)return a=this,t.core.initial_selection!==P&&t.core.initial_selection!==this._data.core.selected.concat([]).sort().join(",")||(this.deselect_all(),E.each(t.core.selected,function(e,t){a.select_node(t,!1,!0)})),delete t.core.initial_selection,delete t.core.selected,this.set_state(t,i),!1;for(n in t)t.hasOwnProperty(n)&&"core"!==n&&-1===E.inArray(n,this.settings.plugins)&&delete t[n];if(E.isEmptyObject(t.core))return delete t.core,this.set_state(t,i),!1}return E.isEmptyObject(t)?(t=null,i&&i.call(this),this.trigger("set_state"),!1):!0}return!1},refresh:function(e,t){this._data.core.state=!0===t?{}:this.get_state(),t&&E.vakata.is_function(t)&&(this._data.core.state=t.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[E.jstree.root]={id:E.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null;var i=this.get_container_ul()[0].className;e||(this.element.html("<ul class='"+i+"' role='group'><li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='none' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' role='treeitem' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(E.jstree.root,function(e,t){t&&(this.get_container_ul()[0].className=i,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(E.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(t){if(!(t=this.get_node(t))||t.id===E.jstree.root)return!1;var i=[],e=[],r=this._data.core.selected.concat([]);e.push(t.id),!0===t.state.opened&&i.push(t.id),this.get_node(t,!0).find(".jstree-open").each(function(){e.push(this.id),i.push(this.id)}),this._load_nodes(e,function(e){this.open_node(i,!1,0),this.select_node(r),this.trigger("refresh_node",{node:t,nodes:e})}.bind(this),!1,!0)},set_id:function(e,t){if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;var i,r,s=this._model.data,a=e.id;for(t=t.toString(),s[e.parent].children[E.inArray(e.id,s[e.parent].children)]=t,i=0,r=e.parents.length;i<r;i++)s[e.parents[i]].children_d[E.inArray(e.id,s[e.parents[i]].children_d)]=t;for(i=0,r=e.children.length;i<r;i++)s[e.children[i]].parent=t;for(i=0,r=e.children_d.length;i<r;i++)s[e.children_d[i]].parents[E.inArray(e.id,s[e.children_d[i]].parents)]=t;return-1!==(i=E.inArray(e.id,this._data.core.selected))&&(this._data.core.selected[i]=t),(i=this.get_node(e.id,!0))&&(i.attr("id",t),this.element.attr("aria-activedescendant")===e.id&&this.element.attr("aria-activedescendant",t)),delete s[e.id],e.id=t,s[e.li_attr.id=t]=e,this.trigger("set_id",{node:e,new:e.id,old:a}),!0},get_text:function(e){return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&e.text},set_text:function(e,t){var i,r;if(E.vakata.is_array(e)){for(i=0,r=(e=e.slice()).length;i<r;i++)this.set_text(e[i],t);return!0}return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&(e.text=t,this.get_node(e,!0).length&&this.redraw_node(e.id),this.trigger("set_text",{obj:e,text:t}),!0)},get_json:function(e,t,i){if(!(e=this.get_node(e||E.jstree.root)))return!1;t&&t.flat&&!i&&(i=[]);var r={id:e.id,text:e.text,icon:this.get_icon(e),li_attr:E.extend(!0,{},e.li_attr),a_attr:E.extend(!0,{},e.a_attr),state:{},data:(!t||!t.no_data)&&E.extend(!0,E.vakata.is_array(e.data)?[]:{},e.data)},s,a;if(t&&t.flat?r.parent=e.parent:r.children=[],t&&t.no_state)delete r.state;else for(s in e.state)e.state.hasOwnProperty(s)&&(r.state[s]=e.state[s]);if(t&&t.no_li_attr&&delete r.li_attr,t&&t.no_a_attr&&delete r.a_attr,t&&t.no_id&&(delete r.id,r.li_attr&&r.li_attr.id&&delete r.li_attr.id,r.a_attr&&r.a_attr.id&&delete r.a_attr.id),t&&t.flat&&e.id!==E.jstree.root&&i.push(r),!t||!t.no_children)for(s=0,a=e.children.length;s<a;s++)t&&t.flat?this.get_json(e.children[s],t,i):r.children.push(this.get_json(e.children[s],t));return t&&t.flat?i:e.id===E.jstree.root?r.children:r},create_node:function(e,t,i,r,s){if(null===e&&(e=E.jstree.root),!(e=this.get_node(e)))return!1;if(!(i=i===P?"last":i).toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(e))return this.load_node(e,function(){this.create_node(e,t,i,r,!0)});var a,n,o,d;switch((t="string"==typeof(t=t||{text:this.get_string("New node")})?{text:t}:E.extend(!0,{},t)).text===P&&(t.text=this.get_string("New node")),i=e.id===E.jstree.root&&"after"===(i="before"===i?"first":i)?"last":i){case"before":a=this.get_node(e.parent),i=E.inArray(e.id,a.children),e=a;break;case"after":a=this.get_node(e.parent),i=E.inArray(e.id,a.children)+1,e=a;break;case"inside":case"first":i=0;break;case"last":i=e.children.length;break;default:i=i||0}if(i>e.children.length&&(i=e.children.length),t.id||(t.id=!0),!this.check("create_node",t,e,i))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(!0===t.id&&delete t.id,!(t=this._parse_model_from_json(t,e.id,e.parents.concat())))return!1;for(a=this.get_node(t),(n=[]).push(t),n=n.concat(a.children_d),this.trigger("model",{nodes:n,parent:e.id}),e.children_d=e.children_d.concat(n),o=0,d=e.parents.length;o<d;o++)this._model.data[e.parents[o]].children_d=this._model.data[e.parents[o]].children_d.concat(n);for(t=a,a=[],o=0,d=e.children.length;o<d;o++)a[i<=o?o+1:o]=e.children[o];return a[i]=t.id,e.children=a,this.redraw_node(e,!0),this.trigger("create_node",{node:this.get_node(t),parent:e.id,position:i}),r&&r.call(this,this.get_node(t)),t.id},rename_node:function(e,t){var i,r,s;if(E.vakata.is_array(e)){for(i=0,r=(e=e.slice()).length;i<r;i++)this.rename_node(e[i],t);return!0}return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&(s=e.text,this.check("rename_node",e,this.get_parent(e),t)?(this.set_text(e,t),this.trigger("rename_node",{node:e,text:t,old:s}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1))},delete_node:function(e){var t,i,r,s,a,n,o,d,c,l,h,s;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.delete_node(e[t]);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;if(r=this.get_node(e.parent),s=E.inArray(e.id,r.children),l=!1,!this.check("delete_node",e,r,s))return this.settings.core.error.call(this,this._data.core.last_error),!1;for(-1!==s&&(r.children=E.vakata.array_remove(r.children,s)),(a=e.children_d.concat([])).push(e.id),n=0,o=e.parents.length;n<o;n++)this._model.data[e.parents[n]].children_d=E.vakata.array_filter(this._model.data[e.parents[n]].children_d,function(e){return-1===E.inArray(e,a)});for(d=0,c=a.length;d<c;d++)if(this._model.data[a[d]].state.selected){l=!0;break}for(l&&(this._data.core.selected=E.vakata.array_filter(this._data.core.selected,function(e){return-1===E.inArray(e,a)})),this.trigger("delete_node",{node:e,parent:r.id}),l&&this.trigger("changed",{action:"delete_node",node:e,selected:this._data.core.selected,parent:r.id}),d=0,c=a.length;d<c;d++)delete this._model.data[a[d]];return-1!==E.inArray(this._data.core.focused,a)&&(this._data.core.focused=null,h=this.element[0].scrollTop,s=this.element[0].scrollLeft,r.id===E.jstree.root?this._model.data[E.jstree.root].children[0]&&this.get_node(this._model.data[E.jstree.root].children[0],!0).children(".jstree-anchor").trigger("focus"):this.get_node(r,!0).children(".jstree-anchor").trigger("focus"),this.element[0].scrollTop=h,this.element[0].scrollLeft=s),this.redraw_node(r,!0),!0},check:function(e,t,i,r,s){t=t&&t.id?t:this.get_node(t),i=i&&i.id?i:this.get_node(i);var a=e.match(/^move_node|copy_node|create_node$/i)?i:t,n=this.settings.core.check_callback;if("move_node"===e||"copy_node"===e){if(!(s&&s.is_multi||"move_node"!==e||E.inArray(t.id,i.children)!==r))return!(this._data.core.last_error={error:"check",plugin:"core",id:"core_08",reason:"Moving node to its current position",data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})});if(!(s&&s.is_multi||t.id!==i.id&&("move_node"!==e||E.inArray(t.id,i.children)!==r)&&-1===E.inArray(i.id,t.children_d)))return!(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})})}return(a=a&&a.data?a.data:a)&&a.functions&&(!1===a.functions[e]||!0===a.functions[e])?(!1===a.functions[e]&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})}),a.functions[e]):!(!1===n||E.vakata.is_function(n)&&!1===n.call(this,e,t,i,r,s)||n&&!1===n[e])||!(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})})},last_error:function(){return this._data.core.last_error},move_node:function(e,t,i,r,s,a,n){var o,d,c,l,h,_,g,u,f,p,m,v,j,k;if(t=this.get_node(t),i=i===P?0:i,!t)return!1;if(!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(t))return this.load_node(t,function(){this.move_node(e,t,i,r,!0,!1,n)});if(E.vakata.is_array(e)){if(1!==e.length){for(o=0,d=e.length;o<d;o++)(f=this.move_node(e[o],t,i,r,s,!1,n))&&(t=f,i="after");return this.redraw(),!0}e=e[0]}if(!(e=e&&e.id?e:this.get_node(e))||e.id===E.jstree.root)return!1;if(c=(e.parent||E.jstree.root).toString(),h=i.toString().match(/^(before|after)$/)&&t.id!==E.jstree.root?this.get_node(t.parent):t,g=!(_=n||(this._model.data[e.id]?this:E.jstree.reference(e.id)))||!_._id||this._id!==_._id,l=_&&_._id&&c&&_._model.data[c]&&_._model.data[c].children?E.inArray(e.id,_._model.data[c].children):-1,_&&_._id&&(e=_._model.data[e.id]),g)return!!(f=this.copy_node(e,t,i,r,s,!1,n))&&(_&&_.delete_node(e),f);switch(i=t.id===E.jstree.root&&"after"===(i="before"===i?"first":i)?"last":i){case"before":i=E.inArray(t.id,h.children);break;case"after":i=E.inArray(t.id,h.children)+1;break;case"inside":case"first":i=0;break;case"last":i=h.children.length;break;default:i=i||0}if(i>h.children.length&&(i=h.children.length),!this.check("move_node",e,h,i,{core:!0,origin:n,is_multi:_&&_._id&&_._id!==this._id,is_foreign:!_||!_._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(e.parent===h.id){for(u=h.children.concat(),-1!==(f=E.inArray(e.id,u))&&(u=E.vakata.array_remove(u,f),f<i&&i--),f=[],p=0,m=u.length;p<m;p++)f[i<=p?p+1:p]=u[p];f[i]=e.id,h.children=f,this._node_changed(h.id),this.redraw(h.id===E.jstree.root)}else{for((f=e.children_d.concat()).push(e.id),p=0,m=e.parents.length;p<m;p++){for(u=[],v=0,j=(k=_._model.data[e.parents[p]].children_d).length;v<j;v++)-1===E.inArray(k[v],f)&&u.push(k[v]);_._model.data[e.parents[p]].children_d=u}for(_._model.data[c].children=E.vakata.array_remove_item(_._model.data[c].children,e.id),p=0,m=h.parents.length;p<m;p++)this._model.data[h.parents[p]].children_d=this._model.data[h.parents[p]].children_d.concat(f);for(u=[],p=0,m=h.children.length;p<m;p++)u[i<=p?p+1:p]=h.children[p];for(u[i]=e.id,h.children=u,h.children_d.push(e.id),h.children_d=h.children_d.concat(e.children_d),e.parent=h.id,(f=h.parents.concat()).unshift(h.id),k=e.parents.length,f=(e.parents=f).concat(),p=0,m=e.children_d.length;p<m;p++)this._model.data[e.children_d[p]].parents=this._model.data[e.children_d[p]].parents.slice(0,-1*k),Array.prototype.push.apply(this._model.data[e.children_d[p]].parents,f);c!==E.jstree.root&&h.id!==E.jstree.root||(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(c),this._node_changed(h.id)),a||this.redraw()}return r&&r.call(this,e,h,i),this.trigger("move_node",{node:e,parent:h.id,position:i,old_parent:c,old_position:l,is_multi:_&&_._id&&_._id!==this._id,is_foreign:!_||!_._id,old_instance:_,new_instance:this}),e.id},copy_node:function(e,t,i,r,s,a,n){var o,d,c,l,h,_,g,u,f,p,m;if(t=this.get_node(t),i=i===P?0:i,!t)return!1;if(!i.toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(t))return this.load_node(t,function(){this.copy_node(e,t,i,r,!0,!1,n)});if(E.vakata.is_array(e)){if(1!==e.length){for(o=0,d=e.length;o<d;o++)(l=this.copy_node(e[o],t,i,r,s,!0,n))&&(t=l,i="after");return this.redraw(),!0}e=e[0]}if(!(e=e&&e.id?e:this.get_node(e))||e.id===E.jstree.root)return!1;switch(u=(e.parent||E.jstree.root).toString(),f=i.toString().match(/^(before|after)$/)&&t.id!==E.jstree.root?this.get_node(t.parent):t,m=!(p=n||(this._model.data[e.id]?this:E.jstree.reference(e.id)))||!p._id||this._id!==p._id,p&&p._id&&(e=p._model.data[e.id]),i=t.id===E.jstree.root&&"after"===(i="before"===i?"first":i)?"last":i){case"before":i=E.inArray(t.id,f.children);break;case"after":i=E.inArray(t.id,f.children)+1;break;case"inside":case"first":i=0;break;case"last":i=f.children.length;break;default:i=i||0}if(i>f.children.length&&(i=f.children.length),!this.check("copy_node",e,f,i,{core:!0,origin:n,is_multi:p&&p._id&&p._id!==this._id,is_foreign:!p||!p._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(!(g=p?p.get_json(e,{no_id:!0,no_data:!0,no_state:!0}):e))return!1;if(!0===g.id&&delete g.id,!(g=this._parse_model_from_json(g,f.id,f.parents.concat())))return!1;for(l=this.get_node(g),e&&e.state&&!1===e.state.loaded&&(l.state.loaded=!1),(c=[]).push(g),c=c.concat(l.children_d),this.trigger("model",{nodes:c,parent:f.id}),h=0,_=f.parents.length;h<_;h++)this._model.data[f.parents[h]].children_d=this._model.data[f.parents[h]].children_d.concat(c);for(c=[],h=0,_=f.children.length;h<_;h++)c[i<=h?h+1:h]=f.children[h];return c[i]=l.id,f.children=c,f.children_d.push(l.id),f.children_d=f.children_d.concat(l.children_d),f.id===E.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(f.id),a||this.redraw(f.id===E.jstree.root),r&&r.call(this,l,f,i),this.trigger("copy_node",{node:l,original:e,parent:f.id,position:i,old_parent:u,old_position:p&&p._id&&u&&p._model.data[u]&&p._model.data[u].children?E.inArray(e.id,p._model.data[u].children):-1,is_multi:p&&p._id&&p._id!==this._id,is_foreign:!p||!p._id,old_instance:p,new_instance:this}),l.id},cut:function(e){if(e=e||this._data.core.selected.concat(),!(e=!E.vakata.is_array(e)?[e]:e).length)return!1;for(var t=[],i,r,s,r=0,s=e.length;r<s;r++)(i=this.get_node(e[r]))&&i.id&&i.id!==E.jstree.root&&t.push(i);if(!t.length)return!1;a=t,n="move_node",(o=this).trigger("cut",{node:e})},copy:function(e){if(e=e||this._data.core.selected.concat(),!(e=!E.vakata.is_array(e)?[e]:e).length)return!1;for(var t=[],i,r,s,r=0,s=e.length;r<s;r++)(i=this.get_node(e[r]))&&i.id&&i.id!==E.jstree.root&&t.push(i);if(!t.length)return!1;a=t,n="copy_node",(o=this).trigger("copy",{node:e})},get_buffer:function(){return{mode:n,node:a,inst:o}},can_paste:function(){return!1!==n&&!1!==a},paste:function(e,t){if(!((e=this.get_node(e))&&n&&n.match(/^(copy_node|move_node)$/)&&a))return!1;this[n](a,e,t,!1,!1,!1,o)&&this.trigger("paste",{parent:e.id,node:a,mode:n}),o=n=a=!1},clear_buffer:function(){o=n=a=!1,this.trigger("clear_buffer")},edit:function(r,e,s){var t,i,a,n,o,d,c,t,l,h=!1;return!!(r=this.get_node(r))&&(this.check("edit",r,this.get_parent(r))?(l=r,e="string"==typeof e?e:r.text,this.set_text(r,""),r=this._open_to(r),l.text=e,t=this._data.core.rtl,i=this.element.width(),this._data.core.focused=l.id,a=r.children(".jstree-anchor").trigger("focus"),n=E("<span></span>"),o=e,d=E("<div></div>",{css:{position:"absolute",top:"-200px",left:t?"0px":"-1000px",visibility:"hidden"}}).appendTo(b.body),c=E("<input />",{value:o,class:"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:function(e){e.stopImmediatePropagation(),e.preventDefault();var t,i=n.children(".jstree-rename-input").val(),e=this.settings.core.force_text,e;""===i&&(i=o),d.remove(),n.replaceWith(a),n.remove(),o=e?o:E("<div></div>").append(E.parseHTML(o)).html(),r=this.get_node(r),this.set_text(r,o),(e=!!this.rename_node(r,e?E("<div></div>").text(i).text():E("<div></div>").append(E.parseHTML(i)).html()))||this.set_text(r,o),this._data.core.focused=l.id,setTimeout(function(){var e=this.get_node(l.id,!0);e.length&&(this._data.core.focused=l.id,e.children(".jstree-anchor").trigger("focus"))}.bind(this),0),s&&s.call(this,l,e,h,i),c=null}.bind(this),keydown:function(e){var t=e.which;27===t&&(h=!0,this.value=o),27!==t&&13!==t&&37!==t&&38!==t&&39!==t&&40!==t&&32!==t||e.stopImmediatePropagation(),27!==t&&13!==t||(e.preventDefault(),this.blur())},click:function(e){e.stopImmediatePropagation()},mousedown:function(e){e.stopImmediatePropagation()},keyup:function(e){c.width(Math.min(d.text("pW"+this.value).width(),i))},keypress:function(e){if(13===e.which)return!1}}),t={fontFamily:a.css("fontFamily")||"",fontSize:a.css("fontSize")||"",fontWeight:a.css("fontWeight")||"",fontStyle:a.css("fontStyle")||"",fontStretch:a.css("fontStretch")||"",fontVariant:a.css("fontVariant")||"",letterSpacing:a.css("letterSpacing")||"",wordSpacing:a.css("wordSpacing")||""},n.attr("class",a.attr("class")).append(a.contents().clone()).append(c),a.replaceWith(n),d.css(t),c.css(t).width(Math.min(d.text("pW"+c[0].value).width(),i))[0].select(),void E(b).one("mousedown.jstree touchstart.jstree dnd_start.vakata",function(e){c&&e.target!==c&&E(c).trigger("blur")})):(this.settings.core.error.call(this,this._data.core.last_error),!1))},set_theme:function(e,t){if(!e)return!1;var i,i;(t=!0===t?(i=(i=this.settings.core.themes.dir)||E.jstree.path+"/themes")+"/"+e+"/style.css":t)&&-1===E.inArray(t,r)&&(E("head").append('<link rel="stylesheet" href="'+t+'" type="text/css" />'),r.push(t)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=e,this.element.addClass("jstree-"+e),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+e+"-responsive"),this.trigger("set_theme",{theme:e})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(e){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),(this._data.core.themes.variant=e)&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped"),this.trigger("show_stripes")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped"),this.trigger("hide_stripes")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots"),this.trigger("show_dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots"),this.trigger("hide_dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons"),this.trigger("show_icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons"),this.trigger("hide_icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},show_ellipsis:function(){this._data.core.themes.ellipsis=!0,this.get_container_ul().addClass("jstree-ellipsis"),this.trigger("show_ellipsis")},hide_ellipsis:function(){this._data.core.themes.ellipsis=!1,this.get_container_ul().removeClass("jstree-ellipsis"),this.trigger("hide_ellipsis")},toggle_ellipsis:function(){this._data.core.themes.ellipsis?this.hide_ellipsis():this.show_ellipsis()},set_icon:function(e,t){var i,r,s,a;if(E.vakata.is_array(e)){for(i=0,r=(e=e.slice()).length;i<r;i++)this.set_icon(e[i],t);return!0}return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&(a=e.icon,e.icon=!0===t||null===t||t===P||""===t||t,s=this.get_node(e,!0).children(".jstree-anchor").children(".jstree-themeicon"),!1===t?(s.removeClass("jstree-themeicon-custom "+a).css("background","").removeAttr("rel"),this.hide_icon(e)):(!0===t||null===t||t===P||""===t?s.removeClass("jstree-themeicon-custom "+a).css("background","").removeAttr("rel"):-1===t.indexOf("/")&&-1===t.indexOf(".")?(s.removeClass(a).css("background",""),s.addClass(t+" jstree-themeicon-custom").attr("rel",t)):(s.removeClass(a).css("background",""),s.addClass("jstree-themeicon-custom").css("background","url('"+t+"') center center no-repeat").attr("rel",t)),!1===a&&this.show_icon(e)),!0)},get_icon:function(e){return!(!(e=this.get_node(e))||e.id===E.jstree.root)&&e.icon},hide_icon:function(e){var t,i;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.hide_icon(e[t]);return!0}return!(!(e=this.get_node(e))||e===E.jstree.root)&&(e.icon=!1,this.get_node(e,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0)},show_icon:function(e){var t,i,r;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.show_icon(e[t]);return!0}return!(!(e=this.get_node(e))||e===E.jstree.root)&&(r=this.get_node(e,!0),e.icon=!r.length||r.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"),e.icon||(e.icon=!0),r.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),!0)}},E.vakata={},E.vakata.attributes=function(e,i){e=E(e)[0];var r=i?{}:[];return e&&e.attributes&&E.each(e.attributes,function(e,t){-1===E.inArray(t.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==t.value&&""!==E.vakata.trim(t.value)&&(i?r[t.name]=t.value:r.push(t.name))}),r},E.vakata.array_unique=function(e){for(var t=[],i,r,s,a={},i=0,s=e.length;i<s;i++)a[e[i]]===P&&(t.push(e[i]),a[e[i]]=!0);return t},E.vakata.array_remove=function(e,t){return e.splice(t,1),e},E.vakata.array_remove_item=function(e,t){var t=E.inArray(t,e);return-1!==t?E.vakata.array_remove(e,t):e},E.vakata.array_filter=function(e,t,i,r,s){if(e.filter)return e.filter(t,i);for(s in r=[],e)~~s+""==s+""&&0<=s&&t.call(i,e[s],+s,e)&&r.push(e[s]);return r},E.vakata.trim=function(e){return String.prototype.trim?String.prototype.trim.call(e.toString()):e.toString().replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},E.vakata.is_function=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},E.vakata.is_array=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Function.prototype.bind||(Function.prototype.bind=function(){var t=this,i=arguments[0],r=Array.prototype.slice.call(arguments,1);if("function"!=typeof t)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");return function(){var e=r.concat(Array.prototype.slice.call(arguments));return t.apply(i,e)}}),E.jstree.plugins.changed=function(e,a){var n=[];this.trigger=function(e,t){var i,r;if(t=t||{},"changed"===e.replace(".jstree","")){t.changed={selected:[],deselected:[]};for(var s={},i=0,r=n.length;i<r;i++)s[n[i]]=1;for(i=0,r=t.selected.length;i<r;i++)s[t.selected[i]]?s[t.selected[i]]=2:t.changed.selected.push(t.selected[i]);for(i=0,r=n.length;i<r;i++)1===s[n[i]]&&t.changed.deselected.push(n[i]);n=t.selected.slice()}a.trigger.call(this,e,t)},this.refresh=function(e,t){return n=[],a.refresh.apply(this,arguments)}};var l=b.createElement("I"),h,_,g,d,u,f,p,w;l.className="jstree-icon jstree-checkbox",l.setAttribute("role","presentation"),E.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0,cascade_to_disabled:!0,cascade_to_hidden:!0},E.jstree.plugins.checkbox=function(e,d){this.bind=function(){d.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")}.bind(this)).on("loading.jstree",function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()}.bind(this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(this._undetermined.bind(this),50)}.bind(this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",function(e,t){for(var i=this._model.data,r=i[t.parent],s=t.nodes,a,n,a=0,n=s.length;a<n;a++)i[s[a]].state.checked=i[s[a]].state.checked||i[s[a]].original&&i[s[a]].original.state&&i[s[a]].original.state.checked,i[s[a]].state.checked&&this._data.checkbox.selected.push(s[a])}.bind(this)),-1===this.settings.checkbox.cascade.indexOf("up")&&-1===this.settings.checkbox.cascade.indexOf("down")||this.element.on("model.jstree",function(e,t){var i=this._model.data,r=i[t.parent],s=t.nodes,a=[],n,o,d,c,l,h,t=this.settings.checkbox.cascade,_=this.settings.checkbox.tie_selection;if(-1!==t.indexOf("down"))if(r.state[_?"selected":"checked"]){for(o=0,d=s.length;o<d;o++)i[s[o]].state[_?"selected":"checked"]=!0;this._data[_?"core":"checkbox"].selected=this._data[_?"core":"checkbox"].selected.concat(s)}else for(o=0,d=s.length;o<d;o++)if(i[s[o]].state[_?"selected":"checked"]){for(c=0,l=i[s[o]].children_d.length;c<l;c++)i[i[s[o]].children_d[c]].state[_?"selected":"checked"]=!0;this._data[_?"core":"checkbox"].selected=this._data[_?"core":"checkbox"].selected.concat(i[s[o]].children_d)}if(-1!==t.indexOf("up")){for(o=0,d=r.children_d.length;o<d;o++)i[r.children_d[o]].children.length||a.push(i[r.children_d[o]].parent);for(c=0,l=(a=E.vakata.array_unique(a)).length;c<l;c++){r=i[a[c]];while(r&&r.id!==E.jstree.root){for(o=n=0,d=r.children.length;o<d;o++)n+=i[r.children[o]].state[_?"selected":"checked"];if(n!==d)break;r.state[_?"selected":"checked"]=!0,this._data[_?"core":"checkbox"].selected.push(r.id),(h=this.get_node(r,!0))&&h.length&&h.attr("aria-selected",!0).children(".jstree-anchor").addClass(_?"jstree-clicked":"jstree-checked"),r=this.get_node(r.parent)}}}this._data[_?"core":"checkbox"].selected=E.vakata.array_unique(this._data[_?"core":"checkbox"].selected)}.bind(this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",function(e,t){var i=this,r=t.node,s=this._model.data,a=this.get_node(r.parent),n,o,d,c,t=this.settings.checkbox.cascade,l=this.settings.checkbox.tie_selection,h={},_=this._data[l?"core":"checkbox"].selected;for(n=0,o=_.length;n<o;n++)h[_[n]]=!0;if(-1!==t.indexOf("down"))for(var g=this._cascade_new_checked_state(r.id,!0),u=r.children_d.concat(r.id),n=0,o=u.length;n<o;n++)-1<g.indexOf(u[n])?h[u[n]]=!0:delete h[u[n]];if(-1!==t.indexOf("up"))while(a&&a.id!==E.jstree.root){for(n=d=0,o=a.children.length;n<o;n++)d+=s[a.children[n]].state[l?"selected":"checked"];if(d!==o)break;a.state[l?"selected":"checked"]=!0,h[a.id]=!0,(c=this.get_node(a,!0))&&c.length&&c.attr("aria-selected",!0).children(".jstree-anchor").addClass(l?"jstree-clicked":"jstree-checked"),a=this.get_node(a.parent)}for(n in _=[],h)h.hasOwnProperty(n)&&_.push(n);this._data[l?"core":"checkbox"].selected=_}.bind(this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",function(e,t){for(var i=this.get_node(E.jstree.root),r=this._model.data,s,a,n,s=0,a=i.children_d.length;s<a;s++)(n=r[i.children_d[s]])&&n.original&&n.original.state&&n.original.state.undetermined&&(n.original.state.undetermined=!1)}.bind(this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",function(e,t){var i=this,r=t.node,s=this.get_node(r,!0),a,n,o,d=this.settings.checkbox.cascade,c=this.settings.checkbox.tie_selection,t=this._data[c?"core":"checkbox"].selected,l={},h=[],_=r.children_d.concat(r.id),g,t;if(-1!==d.indexOf("down")&&(g=this._cascade_new_checked_state(r.id,!1),t=E.vakata.array_filter(t,function(e){return-1===_.indexOf(e)||-1<g.indexOf(e)})),-1!==d.indexOf("up")&&-1===t.indexOf(r.id)){for(a=0,n=r.parents.length;a<n;a++)(o=this._model.data[r.parents[a]]).state[c?"selected":"checked"]=!1,o&&o.original&&o.original.state&&o.original.state.undetermined&&(o.original.state.undetermined=!1),(o=this.get_node(r.parents[a],!0))&&o.length&&o.attr("aria-selected",!1).children(".jstree-anchor").removeClass(c?"jstree-clicked":"jstree-checked");t=E.vakata.array_filter(t,function(e){return-1===r.parents.indexOf(e)})}this._data[c?"core":"checkbox"].selected=t}.bind(this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",function(e,t){var i=this.get_node(t.parent),r=this._model.data,s,a,n,o,d=this.settings.checkbox.tie_selection;while(i&&i.id!==E.jstree.root&&!i.state[d?"selected":"checked"]){for(s=n=0,a=i.children.length;s<a;s++)n+=r[i.children[s]].state[d?"selected":"checked"];if(!(0<a&&n===a))break;i.state[d?"selected":"checked"]=!0,this._data[d?"core":"checkbox"].selected.push(i.id),(o=this.get_node(i,!0))&&o.length&&o.attr("aria-selected",!0).children(".jstree-anchor").addClass(d?"jstree-clicked":"jstree-checked"),i=this.get_node(i.parent)}}.bind(this)).on("move_node.jstree",function(e,t){var i=t.is_multi,r=t.old_parent,t=this.get_node(t.parent),s=this._model.data,a,n,o,d,c,l=this.settings.checkbox.tie_selection;if(!i){a=this.get_node(r);while(a&&a.id!==E.jstree.root&&!a.state[l?"selected":"checked"]){for(o=n=0,d=a.children.length;o<d;o++)n+=s[a.children[o]].state[l?"selected":"checked"];if(!(0<d&&n===d))break;a.state[l?"selected":"checked"]=!0,this._data[l?"core":"checkbox"].selected.push(a.id),(c=this.get_node(a,!0))&&c.length&&c.attr("aria-selected",!0).children(".jstree-anchor").addClass(l?"jstree-clicked":"jstree-checked"),a=this.get_node(a.parent)}}a=t;while(a&&a.id!==E.jstree.root){for(o=n=0,d=a.children.length;o<d;o++)n+=s[a.children[o]].state[l?"selected":"checked"];if(n===d)a.state[l?"selected":"checked"]||(a.state[l?"selected":"checked"]=!0,this._data[l?"core":"checkbox"].selected.push(a.id),(c=this.get_node(a,!0))&&c.length&&c.attr("aria-selected",!0).children(".jstree-anchor").addClass(l?"jstree-clicked":"jstree-checked"));else{if(!a.state[l?"selected":"checked"])break;a.state[l?"selected":"checked"]=!1,this._data[l?"core":"checkbox"].selected=E.vakata.array_remove_item(this._data[l?"core":"checkbox"].selected,a.id),(c=this.get_node(a,!0))&&c.length&&c.attr("aria-selected",!1).children(".jstree-anchor").removeClass(l?"jstree-clicked":"jstree-checked")}a=this.get_node(a.parent)}}.bind(this))},this.get_undetermined=function(e){if(-1===this.settings.checkbox.cascade.indexOf("undetermined"))return[];for(var i,r,s,a,n={},o=this._model.data,t=this.settings.checkbox.tie_selection,d=this._data[t?"core":"checkbox"].selected,c=[],l=this,h=[],i=0,r=d.length;i<r;i++)if(o[d[i]]&&o[d[i]].parents)for(s=0,a=o[d[i]].parents.length;s<a;s++){if(n[o[d[i]].parents[s]]!==P)break;o[d[i]].parents[s]!==E.jstree.root&&(n[o[d[i]].parents[s]]=!0,c.push(o[d[i]].parents[s]))}for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var e=l.get_node(this),t;if(e)if(e.state.loaded){for(i=0,r=e.children_d.length;i<r;i++)if(!(t=o[e.children_d[i]]).state.loaded&&t.original&&t.original.state&&t.original.state.undetermined&&!0===t.original.state.undetermined)for(n[t.id]===P&&t.id!==E.jstree.root&&(n[t.id]=!0,c.push(t.id)),s=0,a=t.parents.length;s<a;s++)n[t.parents[s]]===P&&t.parents[s]!==E.jstree.root&&(n[t.parents[s]]=!0,c.push(t.parents[s]))}else if(e.original&&e.original.state&&e.original.state.undetermined&&!0===e.original.state.undetermined)for(n[e.id]===P&&e.id!==E.jstree.root&&(n[e.id]=!0,c.push(e.id)),s=0,a=e.parents.length;s<a;s++)n[e.parents[s]]===P&&e.parents[s]!==E.jstree.root&&(n[e.parents[s]]=!0,c.push(e.parents[s]))}),i=0,r=c.length;i<r;i++)o[c[i]].state[t?"selected":"checked"]||h.push(e?o[c[i]]:c[i]);return h},this._undetermined=function(){if(null!==this.element){var e=this.get_undetermined(!1),t,i,r;for(this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),t=0,i=e.length;t<i;t++)(r=this.get_node(e[t],!0))&&r.length&&r.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined")}},this.redraw_node=function(e,t,i,r){if(e=d.redraw_node.apply(this,arguments)){for(var s,a,n=null,o=null,s=0,a=e.childNodes.length;s<a;s++)if(e.childNodes[s]&&e.childNodes[s].className&&-1!==e.childNodes[s].className.indexOf("jstree-anchor")){n=e.childNodes[s];break}n&&(!this.settings.checkbox.tie_selection&&this._model.data[e.id].state.checked&&(n.className+=" jstree-checked"),o=l.cloneNode(!1),this._model.data[e.id].state.checkbox_disabled&&(o.className+=" jstree-checkbox-disabled"),n.insertBefore(o,n.childNodes[0]))}return i||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(this._undetermined.bind(this),50)),e},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(e){e=this.get_node(e);var t=this.settings.checkbox.cascade,i,r,s=this.settings.checkbox.tie_selection,a=this._data[s?"core":"checkbox"].selected,n=this._model.data;if(!e||!0===e.state[s?"selected":"checked"]||-1===t.indexOf("undetermined")||-1===t.indexOf("down")&&-1===t.indexOf("up"))return!1;if(!e.state.loaded&&!0===e.original.state.undetermined)return!0;for(i=0,r=e.children_d.length;i<r;i++)if(-1!==E.inArray(e.children_d[i],a)||!n[e.children_d[i]].state.loaded&&n[e.children_d[i]].original.state.undetermined)return!0;return!1},this.disable_checkbox=function(e){var t,i,r;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.disable_checkbox(e[t]);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;r=this.get_node(e,!0),e.state.checkbox_disabled||(e.state.checkbox_disabled=!0,r&&r.length&&r.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:e}))},this.enable_checkbox=function(e){var t,i,r;if(E.vakata.is_array(e)){for(t=0,i=(e=e.slice()).length;t<i;t++)this.enable_checkbox(e[t]);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;r=this.get_node(e,!0),e.state.checkbox_disabled&&(e.state.checkbox_disabled=!1,r&&r.length&&r.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:e}))},this.activate_node=function(e,t){return!E(t.target).hasClass("jstree-checkbox-disabled")&&(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||E(t.target).hasClass("jstree-checkbox"))&&(t.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!E(t.target).hasClass("jstree-checkbox")?d.activate_node.call(this,e,t):!this.is_disabled(e)&&(this.is_checked(e)?this.uncheck_node(e,t):this.check_node(e,t),void this.trigger("activate_node",{node:this.get_node(e)})))},this._cascade_new_checked_state=function(e,t){var i=this,r=this.settings.checkbox.tie_selection,s=this._model.data[e],a=[],n=[],o,d,c;if(!this.settings.checkbox.cascade_to_disabled&&s.state.disabled||!this.settings.checkbox.cascade_to_hidden&&s.state.hidden)c=this.get_checked_descendants(e),s.state[r?"selected":"checked"]&&c.push(s.id),a=a.concat(c);else{if(s.children)for(o=0,d=s.children.length;o<d;o++){var l=s.children[o],c=i._cascade_new_checked_state(l,t),a=a.concat(c);-1<c.indexOf(l)&&n.push(l)}var h=i.get_node(s,!0),e=0<n.length&&n.length<s.children.length;s.original&&s.original.state&&s.original.state.undetermined&&(s.original.state.undetermined=e),!e&&t&&n.length===s.children.length?(s.state[r?"selected":"checked"]=t,a.push(s.id),h.attr("aria-selected",!0).children(".jstree-anchor").addClass(r?"jstree-clicked":"jstree-checked")):(s.state[r?"selected":"checked"]=!1,h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(r?"jstree-clicked":"jstree-checked"))}return a},this.get_checked_descendants=function(e){var t=this,i=t.settings.checkbox.tie_selection,e=t._model.data[e];return E.vakata.array_filter(e.children_d,function(e){return t._model.data[e].state[i?"selected":"checked"]})},this.check_node=function(e,t){if(this.settings.checkbox.tie_selection)return this.select_node(e,!1,!0,t);var i,r,s,a;if(E.vakata.is_array(e)){for(r=0,s=(e=e.slice()).length;r<s;r++)this.check_node(e[r],t);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;i=this.get_node(e,!0),e.state.checked||(e.state.checked=!0,this._data.checkbox.selected.push(e.id),i&&i.length&&i.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:e,selected:this._data.checkbox.selected,event:t}))},this.uncheck_node=function(e,t){if(this.settings.checkbox.tie_selection)return this.deselect_node(e,!1,t);var i,r,s;if(E.vakata.is_array(e)){for(i=0,r=(e=e.slice()).length;i<r;i++)this.uncheck_node(e[i],t);return!0}if(!(e=this.get_node(e))||e.id===E.jstree.root)return!1;s=this.get_node(e,!0),e.state.checked&&(e.state.checked=!1,this._data.checkbox.selected=E.vakata.array_remove_item(this._data.checkbox.selected,e.id),s.length&&s.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:e,selected:this._data.checkbox.selected,event:t}))},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all();var e=this._data.checkbox.selected.concat([]),t,i;for(this._data.checkbox.selected=this._model.data[E.jstree.root].children_d.concat(),t=0,i=this._data.checkbox.selected.length;t<i;t++)this._model.data[this._data.checkbox.selected[t]]&&(this._model.data[this._data.checkbox.selected[t]].state.checked=!0);this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all();for(var e=this._data.checkbox.selected.concat([]),t,i,t=0,i=this._data.checkbox.selected.length;t<i;t++)this._model.data[this._data.checkbox.selected[t]]&&(this._model.data[this._data.checkbox.selected[t]].state.checked=!1);this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:e})},this.is_checked=function(e){return this.settings.checkbox.tie_selection?this.is_selected(e):!(!(e=this.get_node(e))||e.id===E.jstree.root)&&e.state.checked},this.get_checked=function(e){return this.settings.checkbox.tie_selection?this.get_selected(e):e?E.map(this._data.checkbox.selected,function(e){return this.get_node(e)}.bind(this)):this._data.checkbox.selected.slice()},this.get_top_checked=function(e){if(this.settings.checkbox.tie_selection)return this.get_top_selected(e);for(var t=this.get_checked(!0),i={},r,s,a,n,r=0,s=t.length;r<s;r++)i[t[r].id]=t[r];for(r=0,s=t.length;r<s;r++)for(a=0,n=t[r].children_d.length;a<n;a++)i[t[r].children_d[a]]&&delete i[t[r].children_d[a]];for(r in t=[],i)i.hasOwnProperty(r)&&t.push(r);return e?E.map(t,function(e){return this.get_node(e)}.bind(this)):t},this.get_bottom_checked=function(e){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(e);for(var t=this.get_checked(!0),i=[],r,s,r=0,s=t.length;r<s;r++)t[r].children.length||i.push(t[r].id);return e?E.map(i,function(e){return this.get_node(e)}.bind(this)):i},this.load_node=function(e,t){var i,r,s,a,n,o;if(!E.vakata.is_array(e)&&!this.settings.checkbox.tie_selection&&(o=this.get_node(e))&&o.state.loaded)for(i=0,r=o.children_d.length;i<r;i++)this._model.data[o.children_d[i]].state.checked&&(this._data.checkbox.selected=E.vakata.array_remove_item(this._data.checkbox.selected,o.children_d[i]));return d.load_node.apply(this,arguments)},this.get_state=function(){var e=d.get_state.apply(this,arguments);return this.settings.checkbox.tie_selection||(e.checkbox=this._data.checkbox.selected.slice()),e},this.set_state=function(e,t){var i=d.set_state.apply(this,arguments),r;return i&&e.checkbox?(this.settings.checkbox.tie_selection||(this.uncheck_all(),r=this,E.each(e.checkbox,function(e,t){r.check_node(t)})),delete e.checkbox,this.set_state(e,t),!1):i},this.refresh=function(e,t){return this.settings.checkbox.tie_selection&&(this._data.checkbox.selected=[]),d.refresh.apply(this,arguments)}},E.jstree.defaults.conditionalselect=function(){return!0},E.jstree.plugins.conditionalselect=function(e,i){this.activate_node=function(e,t){if(this.settings.conditionalselect.call(this,this.get_node(e),t))return i.activate_node.call(this,e,t)}},E.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(e,t){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(e){var i=E.jstree.reference(e.reference),e=i.get_node(e.reference);i.create_node(e,{},"last",function(t){try{i.edit(t)}catch(e){setTimeout(function(){i.edit(t)},0)}})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(e){var t=E.jstree.reference(e.reference),e=t.get_node(e.reference);t.edit(e)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(e){var t=E.jstree.reference(e.reference),e=t.get_node(e.reference);t.is_selected(e)?t.delete_node(t.get_selected()):t.delete_node(e)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(e){var t=E.jstree.reference(e.reference),e=t.get_node(e.reference);t.is_selected(e)?t.cut(t.get_top_selected()):t.cut(e)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(e){var t=E.jstree.reference(e.reference),e=t.get_node(e.reference);t.is_selected(e)?t.copy(t.get_top_selected()):t.copy(e)}},paste:{separator_before:!1,icon:!1,_disabled:function(e){return!E.jstree.reference(e.reference).can_paste()},separator_after:!1,label:"Paste",action:function(e){var t=E.jstree.reference(e.reference),e=t.get_node(e.reference);t.paste(e)}}}}}}},E.jstree.plugins.contextmenu=function(e,a){this.bind=function(){a.bind.call(this);var i=0,r=null,t,s;this.element.on("init.jstree loading.jstree ready.jstree",function(){this.get_container_ul().addClass("jstree-contextmenu")}.bind(this)).on("contextmenu.jstree",".jstree-anchor",function(e,t){"input"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),i=e.ctrlKey?+new Date:0,(t||r)&&(i=+new Date+1e4),r&&clearTimeout(r),this.is_loading(e.currentTarget)||this.show_contextmenu(e.currentTarget,e.pageX,e.pageY,e))}.bind(this)).on("click.jstree",".jstree-anchor",function(e){this._data.contextmenu.visible&&(!i||250<+new Date-i)&&E.vakata.context.hide(),i=0}.bind(this)).on("touchstart.jstree",".jstree-anchor",function(e){e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches[0]&&(t=e.originalEvent.changedTouches[0].clientX,s=e.originalEvent.changedTouches[0].clientY,r=setTimeout(function(){E(e.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(e){r&&e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches[0]&&(10<Math.abs(t-e.originalEvent.changedTouches[0].clientX)||10<Math.abs(s-e.originalEvent.changedTouches[0].clientY))&&(clearTimeout(r),E.vakata.context.hide())}).on("touchend.vakata.jstree",function(e){r&&clearTimeout(r)}),E(b).on("context_hide.vakata.jstree",function(e,t){this._data.contextmenu.visible=!1,E(t.reference).removeClass("jstree-context")}.bind(this))},this.teardown=function(){this._data.contextmenu.visible&&E.vakata.context.hide(),E(b).off("context_hide.vakata.jstree"),a.teardown.call(this)},this.show_contextmenu=function(t,i,r,e){if(!(t=this.get_node(t))||t.id===E.jstree.root)return!1;var s=this.settings.contextmenu,a,n=this.get_node(t,!0).children(".jstree-anchor"),o=!1,d=!1;!s.show_at_node&&i!==P&&r!==P||(o=n.offset(),i=o.left,r=o.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(t)&&this.activate_node(t,e),d=s.items,E.vakata.is_function(d)&&(d=d.call(this,t,function(e){this._show_contextmenu(t,i,r,e)}.bind(this))),E.isPlainObject(d)&&this._show_contextmenu(t,i,r,d)},this._show_contextmenu=function(e,t,i,r){var s,a=this.get_node(e,!0).children(".jstree-anchor");E(b).one("context_show.vakata.jstree",function(e,t){var i="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu";E(t.element).addClass(i),a.addClass("jstree-context")}.bind(this)),this._data.contextmenu.visible=!0,E.vakata.context.show(a,{x:t,y:i},r),this.trigger("show_contextmenu",{node:e,x:t,y:i})}},g={element:_=!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1},(h=E).vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(e){h(b).triggerHandler("context_"+e+".vakata",{reference:g.reference,element:g.element,position:{x:g.position_x,y:g.position_y}})},_execute:function(e){return!(!(e=g.items[e])||e._disabled&&(!h.vakata.is_function(e._disabled)||e._disabled({item:e,reference:g.reference,element:g.element}))||!e.action)&&e.action.call(null,{item:e,reference:g.reference,element:g.element,position:{x:g.position_x,y:g.position_y}})},_parse:function(e,t){if(!e)return!1;t||(g.html="",g.items=[]);var i="",r=!1,s;return t&&(i+="<ul>"),h.each(e,function(e,t){return!t||(g.items.push(t),!r&&t.separator_before&&(i+="<li class='vakata-context-separator'><a href='#' "+(h.vakata.context.settings.icons?"":'class="vakata-context-no-icons"')+"> </a></li>"),r=!1,i+="<li class='"+(t._class||"")+(!0===t._disabled||h.vakata.is_function(t._disabled)&&t._disabled({item:t,reference:g.reference,element:g.element})?" vakata-contextmenu-disabled ":"")+"' "+(t.shortcut?" data-shortcut='"+t.shortcut+"' ":"")+">",i+="<a href='#' rel='"+(g.items.length-1)+"' "+(t.title?"title='"+t.title+"'":"")+">",h.vakata.context.settings.icons&&(i+="<i ",t.icon&&(-1!==t.icon.indexOf("/")||-1!==t.icon.indexOf(".")?i+=" style='background:url(\""+t.icon+"\") center center no-repeat' ":i+=" class='"+t.icon+"' "),i+="></i><span class='vakata-contextmenu-sep'> </span>"),i+=(h.vakata.is_function(t.label)?t.label({item:e,reference:g.reference,element:g.element}):t.label)+(t.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+t.shortcut+'">'+(t.shortcut_label||"")+"</span>":"")+"</a>",t.submenu&&(s=h.vakata.context._parse(t.submenu,!0))&&(i+=s),i+="</li>",void(t.separator_after&&(i+="<li class='vakata-context-separator'><a href='#' "+(h.vakata.context.settings.icons?"":'class="vakata-context-no-icons"')+"> </a></li>",r=!0)))}),i=i.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""),t&&(i+="</ul>"),t||(g.html=i,h.vakata.context._trigger("parse")),10<i.length&&i},_show_submenu:function(e){var t,i,r,s,a,n,o,d;(e=h(e)).length&&e.children("ul").length&&(t=e.children("ul"),r=(i=e.offset().left)+e.outerWidth(),s=e.offset().top,a=t.width(),n=t.height(),o=h(window).width()+h(window).scrollLeft(),d=h(window).height()+h(window).scrollTop(),_?e[r-(a+10+e.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):e[o<r+a&&o-r<i?"addClass":"removeClass"]("vakata-context-right"),d<s+n+10&&t.css("bottom","-1px"),e.hasClass("vakata-context-right")?i<a&&t.css("margin-right",i-a):o-r<a&&t.css("margin-left",o-r-a),t.show())},show:function(e,t,i){var r,s,a,n,o,d,c,i,l=!0;switch(g.element&&g.element.length&&g.element.width(""),!0){case!t&&!e:return!1;case!!t&&!!e:g.reference=e,g.position_x=t.x,g.position_y=t.y;break;case!t&&!!e:r=(g.reference=e).offset(),g.position_x=r.left+e.outerHeight(),g.position_y=r.top;break;case!!t&&!e:g.position_x=t.x,g.position_y=t.y}e&&!i&&h(e).data("vakata_contextmenu")&&(i=h(e).data("vakata_contextmenu")),h.vakata.context._parse(i)&&g.element.html(g.html),g.items.length&&(g.element.appendTo(b.body),s=g.element,a=g.position_x,n=g.position_y,o=s.width(),d=s.height(),c=h(window).width()+h(window).scrollLeft(),i=h(window).height()+h(window).scrollTop(),_&&(a-=s.outerWidth()-h(e).outerWidth())<h(window).scrollLeft()+20&&(a=h(window).scrollLeft()+20),g.element.css({left:a=c<a+o+20?c-(o+20):a,top:n=i<n+d+20?i-(d+20):n}).show().find("a").first().trigger("focus").parent().addClass("vakata-context-hover"),g.is_visible=!0,h.vakata.context._trigger("show"))},hide:function(){g.is_visible&&(g.element.hide().find("ul").hide().end().find(":focus").trigger("blur").end().detach(),g.is_visible=!1,h.vakata.context._trigger("hide"))}},h(function(){_="rtl"===h(b.body).css("direction");var i=!1;g.element=h("<ul class='vakata-context'></ul>"),g.element.on("mouseenter","li",function(e){e.stopImmediatePropagation(),h.contains(this,e.relatedTarget)||(i&&clearTimeout(i),g.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),h(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),h.vakata.context._show_submenu(this))}).on("mouseleave","li",function(e){h.contains(this,e.relatedTarget)||h(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(e){var t;h(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),h.vakata.context.settings.hide_onmouseleave&&(i=setTimeout((t=this,function(){h.vakata.context.hide()}),h.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(e){e.preventDefault(),h(this).trigger("blur").parent().hasClass("vakata-context-disabled")||!1===h.vakata.context._execute(h(this).attr("rel"))||h.vakata.context.hide()}).on("keydown","a",function(e){var t=null;switch(e.which){case 13:case 32:e.type="click",e.preventDefault(),h(e.currentTarget).trigger(e);break;case 37:g.is_visible&&(g.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").trigger("focus"),e.stopImmediatePropagation(),e.preventDefault());break;case 38:g.is_visible&&((t=!(t=g.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first()).length?g.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last():t).addClass("vakata-context-hover").children("a").trigger("focus"),e.stopImmediatePropagation(),e.preventDefault());break;case 39:g.is_visible&&(g.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").trigger("focus"),e.stopImmediatePropagation(),e.preventDefault());break;case 40:g.is_visible&&((t=!(t=g.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first()).length?g.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first():t).addClass("vakata-context-hover").children("a").trigger("focus"),e.stopImmediatePropagation(),e.preventDefault());break;case 27:h.vakata.context.hide(),e.preventDefault()}}).on("keydown",function(e){e.preventDefault();var e=g.element.find(".vakata-contextmenu-shortcut-"+e.which).parent();e.parent().not(".vakata-context-disabled")&&e.trigger("click")}),h(b).on("mousedown.vakata.jstree",function(e){g.is_visible&&g.element[0]!==e.target&&!h.contains(g.element[0],e.target)&&h.vakata.context.hide()}).on("context_show.vakata.jstree",function(e,t){g.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),_&&g.element.addClass("vakata-context-rtl").css("direction","rtl"),g.element.find("ul").hide().end()})}),E.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1,use_html5:!1},E.jstree.plugins.dnd=function(e,o){this.init=function(e,t){o.init.call(this,e,t),this.settings.dnd.use_html5=this.settings.dnd.use_html5&&"draggable"in b.createElement("span")},this.bind=function(){o.bind.call(this),this.element.on(this.settings.dnd.use_html5?"dragstart.jstree":"mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",function(e){if(this.settings.dnd.large_drag_target&&E(e.target).closest(".jstree-node")[0]!==e.currentTarget)return!0;if("touchstart"===e.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!E(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0;var t=this.get_node(e.target),i=this.is_selected(t)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,r=1<i?i+" "+this.get_string("nodes"):this.get_text(e.currentTarget);if(this.settings.core.force_text&&(r=E.vakata.html.escape(r)),t&&t.id&&t.id!==E.jstree.root&&(1===e.which||"touchstart"===e.type||"dragstart"===e.type)&&(!0===this.settings.dnd.is_draggable||E.vakata.is_function(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,1<i?this.get_top_selected(!0):[t],e))){if(d={jstree:!0,origin:this,obj:this.get_node(t,!0),nodes:1<i?this.get_top_selected():[t.id]},u=e.currentTarget,!this.settings.dnd.use_html5)return this.element.trigger("mousedown.jstree"),E.vakata.dnd.start(e,d,'<div id="jstree-dnd" class="jstree-'+this.get_theme()+" jstree-"+this.get_theme()+"-"+this.get_theme_variant()+" "+(this.settings.core.themes.responsive?" jstree-dnd-responsive":"")+'"><i class="jstree-icon jstree-er"></i>'+r+'<ins class="jstree-copy">+</ins></div>');E.vakata.dnd._trigger("start",e,{helper:E(),element:u,data:d})}}.bind(this)),this.settings.dnd.use_html5&&this.element.on("dragover.jstree",function(e){return e.preventDefault(),E.vakata.dnd._trigger("move",e,{helper:E(),element:u,data:d}),!1}).on("drop.jstree",function(e){return e.preventDefault(),E.vakata.dnd._trigger("stop",e,{helper:E(),element:u,data:d}),!1}.bind(this))},this.redraw_node=function(e,t,i,r){if((e=o.redraw_node.apply(this,arguments))&&this.settings.dnd.use_html5)if(this.settings.dnd.large_drag_target)e.setAttribute("draggable",!0);else{for(var s,a,n=null,s=0,a=e.childNodes.length;s<a;s++)if(e.childNodes[s]&&e.childNodes[s].className&&-1!==e.childNodes[s].className.indexOf("jstree-anchor")){n=e.childNodes[s];break}n&&n.setAttribute("draggable",!0)}return e}},E(function(){var N=!1,T=!1,O=!1,A=!1,S=E('<div id="jstree-marker"> </div>').hide();E(b).on("dragover.vakata.jstree",function(e){u&&E.vakata.dnd._trigger("move",e,{helper:E(),element:u,data:d})}).on("drop.vakata.jstree",function(e){u&&(E.vakata.dnd._trigger("stop",e,{helper:E(),element:u,data:d}),d=u=null)}).on("dnd_start.vakata.jstree",function(e,t){O=N=!1,t&&t.data&&t.data.jstree&&S.appendTo(b.body)}).on("dnd_move.vakata.jstree",function(e,s){var a=s.event.target!==O.target;if(A&&(s.event&&"dragover"===s.event.type&&!a||clearTimeout(A)),s&&s.data&&s.data.jstree&&(!s.event.target.id||"jstree-marker"!==s.event.target.id)){O=s.event;var n=E.jstree.reference(s.event.target),o=!1,d=!1,t=!1,i,c,l,h,_,g,u,f,p,m,v,j,k,b,y,x,w,C;if(n&&n._data&&n._data.dnd)if(S.attr("class","jstree-"+n.get_theme()+(n.settings.core.themes.responsive?" jstree-dnd-responsive":"")),x=s.data.origin&&(s.data.origin.settings.dnd.always_copy||s.data.origin.settings.dnd.copy&&(s.event.metaKey||s.event.ctrlKey)),s.helper.children().attr("class","jstree-"+n.get_theme()+" jstree-"+n.get_theme()+"-"+n.get_theme_variant()+" "+(n.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[x?"show":"hide"](),s.event.target!==n.element[0]&&s.event.target!==n.get_container_ul()[0]||0!==n.get_container_ul().children().length){if((o=n.settings.dnd.large_drop_target?E(s.event.target).closest(".jstree-node").children(".jstree-anchor"):E(s.event.target).closest(".jstree-anchor"))&&o.length&&o.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(d=o.offset(),t=(s.event.pageY!==P?s.event:s.event.originalEvent).pageY-d.top,h=o.outerHeight(),u=t<h/3?["b","i","a"]:h-h/3<t?["a","i","b"]:h/2<t?["i","a","b"]:["i","b","a"],E.each(u,function(e,t){switch(t){case"b":c=d.left-6,l=d.top,_=n.get_parent(o),g=o.parent().index(),C="jstree-below";break;case"i":b=n.settings.dnd.inside_pos,y=n.get_node(o.parent()),c=d.left-2,l=d.top+h/2+1,_=y.id,g="first"===b?0:"last"===b?y.children.length:Math.min(b,y.children.length),C="jstree-inside";break;case"a":c=d.left-6,l=d.top+h,_=n.get_parent(o),g=o.parent().index()+1,C="jstree-above"}for(f=!0,p=0,m=s.data.nodes.length;p<m;p++)if(v=s.data.origin&&(s.data.origin.settings.dnd.always_copy||s.data.origin.settings.dnd.copy&&(s.event.metaKey||s.event.ctrlKey))?"copy_node":"move_node",j=g,"move_node"==v&&"a"===t&&s.data.origin&&s.data.origin===n&&_===n.get_parent(s.data.nodes[p])&&(k=n.get_node(_),j>E.inArray(s.data.nodes[p],k.children)&&--j),!(f=f&&(n&&n.settings&&n.settings.dnd&&!1===n.settings.dnd.check_while_dragging||n.check(v,s.data.origin&&s.data.origin!==n?s.data.origin.get_node(s.data.nodes[p]):s.data.nodes[p],_,j,{dnd:!0,ref:n.get_node(o.parent()),pos:t,origin:s.data.origin,is_multi:s.data.origin&&s.data.origin!==n,is_foreign:!s.data.origin})))){n&&n.last_error&&(T=n.last_error());break}var i,r;if("i"===t&&o.parent().is(".jstree-closed")&&n.settings.dnd.open_timeout&&(s.event&&"dragover"===s.event.type&&!a||(A&&clearTimeout(A),A=setTimeout((r=o,function(){i.open_node(r)}),(i=n).settings.dnd.open_timeout))),f)return(w=n.get_node(_,!0)).hasClass(".jstree-dnd-parent")||(E(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),w.addClass("jstree-dnd-parent")),N={ins:n,par:_,pos:"i"!==t||"last"!==b||0!==g||n.is_loaded(y)?g:"last"},S.css({left:c+"px",top:l+"px"}).show(),S.removeClass("jstree-above jstree-inside jstree-below").addClass(C),s.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),s.event.originalEvent&&s.event.originalEvent.dataTransfer&&(s.event.originalEvent.dataTransfer.dropEffect=x?"copy":"move"),T={},!(u=!0)}),!0===u))return}else{for(f=!0,p=0,m=s.data.nodes.length;p<m;p++)if(!(f=f&&n.check(s.data.origin&&(s.data.origin.settings.dnd.always_copy||s.data.origin.settings.dnd.copy&&(s.event.metaKey||s.event.ctrlKey))?"copy_node":"move_node",s.data.origin&&s.data.origin!==n?s.data.origin.get_node(s.data.nodes[p]):s.data.nodes[p],E.jstree.root,"last",{dnd:!0,ref:n.get_node(E.jstree.root),pos:"i",origin:s.data.origin,is_multi:s.data.origin&&s.data.origin!==n,is_foreign:!s.data.origin})))break;if(f)return N={ins:n,par:E.jstree.root,pos:"last"},S.hide(),s.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),void(s.event.originalEvent&&s.event.originalEvent.dataTransfer&&(s.event.originalEvent.dataTransfer.dropEffect=x?"copy":"move"))}E(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),N=!1,s.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),s.event.originalEvent&&s.event.originalEvent.dataTransfer,S.hide()}}).on("dnd_scroll.vakata.jstree",function(e,t){t&&t.data&&t.data.jstree&&(S.hide(),O=N=!1,t.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(e,t){if(E(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),A&&clearTimeout(A),t&&t.data&&t.data.jstree){S.hide().detach();var i,r,s=[];if(N){for(i=0,r=t.data.nodes.length;i<r;i++)s[i]=t.data.origin?t.data.origin.get_node(t.data.nodes[i]):t.data.nodes[i];N.ins[t.data.origin&&(t.data.origin.settings.dnd.always_copy||t.data.origin.settings.dnd.copy&&(t.event.metaKey||t.event.ctrlKey))?"copy_node":"move_node"](s,N.par,N.pos,!1,!1,!1,t.data.origin)}else(i=E(t.event.target).closest(".jstree")).length&&T&&T.error&&"check"===T.error&&(i=i.jstree(!0))&&i.settings.core.error.call(this,T);N=O=!1}}).on("keyup.jstree keydown.jstree",function(e,t){(t=E.vakata.dnd._get())&&t.data&&t.data.jstree&&("keyup"===e.type&&27===e.which?(A&&clearTimeout(A),A=O=T=N=!1,S.hide().detach(),E.vakata.dnd._clean()):(t.helper.find(".jstree-copy").first()[t.data.origin&&(t.data.origin.settings.dnd.always_copy||t.data.origin.settings.dnd.copy&&(e.metaKey||e.ctrlKey))?"show":"hide"](),O&&(O.metaKey=e.metaKey,O.ctrlKey=e.ctrlKey,E.vakata.dnd._trigger("move",O))))})}),p={element:!((f=E).vakata.html={div:f("<div></div>"),escape:function(e){return f.vakata.html.div.text(e).html()},strip:function(e){return f.vakata.html.div.empty().append(f.parseHTML(e)).text()}}),target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},f.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:10},_trigger:function(e,t,i){(i=i===P?f.vakata.dnd._get():i).event=t,f(b).triggerHandler("dnd_"+e+".vakata",i)},_get:function(){return{data:p.data,element:p.element,helper:p.helper}},_clean:function(){p.helper&&p.helper.remove(),p.scroll_i&&(clearInterval(p.scroll_i),p.scroll_i=!1),p={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},u=null,f(b).off("mousemove.vakata.jstree touchmove.vakata.jstree",f.vakata.dnd.drag),f(b).off("mouseup.vakata.jstree touchend.vakata.jstree",f.vakata.dnd.stop)},_scroll:function(e){if(!p.scroll_e||!p.scroll_l&&!p.scroll_t)return p.scroll_i&&(clearInterval(p.scroll_i),p.scroll_i=!1),!1;if(!p.scroll_i)return p.scroll_i=setInterval(f.vakata.dnd._scroll,100),!1;if(!0===e)return!1;var t=p.scroll_e.scrollTop(),e=p.scroll_e.scrollLeft();p.scroll_e.scrollTop(t+p.scroll_t*f.vakata.dnd.settings.scroll_speed),p.scroll_e.scrollLeft(e+p.scroll_l*f.vakata.dnd.settings.scroll_speed),t===p.scroll_e.scrollTop()&&e===p.scroll_e.scrollLeft()||f.vakata.dnd._trigger("scroll",p.scroll_e)},start:function(e,t,i){"touchstart"===e.type&&e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches[0]&&(e.pageX=e.originalEvent.changedTouches[0].pageX,e.pageY=e.originalEvent.changedTouches[0].pageY,e.target=b.elementFromPoint(e.originalEvent.changedTouches[0].pageX-window.pageXOffset,e.originalEvent.changedTouches[0].pageY-window.pageYOffset)),p.is_drag&&f.vakata.dnd.stop({});try{e.currentTarget.unselectable="on",e.currentTarget.onselectstart=function(){return!1},e.currentTarget.style&&(e.currentTarget.style.touchAction="none",e.currentTarget.style.msTouchAction="none",e.currentTarget.style.MozUserSelect="none")}catch(e){}return p.init_x=e.pageX,p.init_y=e.pageY,p.data=t,p.is_down=!0,p.element=e.currentTarget,p.target=e.target,p.is_touch="touchstart"===e.type,!1!==i&&(p.helper=f("<div id='vakata-dnd'></div>").html(i).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),f(b).on("mousemove.vakata.jstree touchmove.vakata.jstree",f.vakata.dnd.drag),f(b).on("mouseup.vakata.jstree touchend.vakata.jstree",f.vakata.dnd.stop),!1},drag:function(i){if("touchmove"===i.type&&i.originalEvent&&i.originalEvent.changedTouches&&i.originalEvent.changedTouches[0]&&(i.pageX=i.originalEvent.changedTouches[0].pageX,i.pageY=i.originalEvent.changedTouches[0].pageY,i.target=b.elementFromPoint(i.originalEvent.changedTouches[0].pageX-window.pageXOffset,i.originalEvent.changedTouches[0].pageY-window.pageYOffset)),p.is_down){if(!p.is_drag){if(!(Math.abs(i.pageX-p.init_x)>(p.is_touch?f.vakata.dnd.settings.threshold_touch:f.vakata.dnd.settings.threshold)||Math.abs(i.pageY-p.init_y)>(p.is_touch?f.vakata.dnd.settings.threshold_touch:f.vakata.dnd.settings.threshold)))return;p.helper&&(p.helper.appendTo(b.body),p.helper_w=p.helper.outerWidth()),p.is_drag=!0,f(p.target).one("click.vakata",!1),f.vakata.dnd._trigger("start",i)}var e=!1,t=!1,r=!1,s=!1,a=!1,n=!1,o=!1,d=!1,c=!1,l=!1;return p.scroll_t=0,p.scroll_l=0,p.scroll_e=!1,f(f(i.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(f(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var e=f(this),t=e.offset();if(this.scrollHeight>this.offsetHeight&&(t.top+e.height()-i.pageY<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_t=1),i.pageY-t.top<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_t=-1)),this.scrollWidth>this.offsetWidth&&(t.left+e.width()-i.pageX<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_l=1),i.pageX-t.left<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_l=-1)),p.scroll_t||p.scroll_l)return p.scroll_e=f(this),!1}),p.scroll_e||(e=f(b),t=f(window),r=e.height(),s=t.height(),a=e.width(),n=t.width(),o=e.scrollTop(),d=e.scrollLeft(),s<r&&i.pageY-o<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_t=-1),s<r&&s-(i.pageY-o)<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_t=1),n<a&&i.pageX-d<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_l=-1),n<a&&n-(i.pageX-d)<f.vakata.dnd.settings.scroll_proximity&&(p.scroll_l=1),(p.scroll_t||p.scroll_l)&&(p.scroll_e=e)),p.scroll_e&&f.vakata.dnd._scroll(!0),p.helper&&(c=parseInt(i.pageY+f.vakata.dnd.settings.helper_top,10),l=parseInt(i.pageX+f.vakata.dnd.settings.helper_left,10),a&&l+p.helper_w>a&&(l=a-(p.helper_w+2)),p.helper.css({left:l+"px",top:(c=r&&r<c+25?r-50:c)+"px"})),f.vakata.dnd._trigger("move",i),!1}},stop:function(e){var t;return"touchend"===e.type&&e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches[0]&&(e.pageX=e.originalEvent.changedTouches[0].pageX,e.pageY=e.originalEvent.changedTouches[0].pageY,e.target=b.elementFromPoint(e.originalEvent.changedTouches[0].pageX-window.pageXOffset,e.originalEvent.changedTouches[0].pageY-window.pageYOffset)),p.is_drag?(e.target!==p.target&&f(p.target).off("click.vakata"),f.vakata.dnd._trigger("stop",e)):"touchend"===e.type&&e.target===p.target&&(t=setTimeout(function(){f(e.target).trigger("click")},100),f(e.target).one("click",function(){t&&clearTimeout(t)})),f.vakata.dnd._clean(),!1}},E.jstree.defaults.massload=null,E.jstree.plugins.massload=function(e,l){this.init=function(e,t){this._data.massload={},l.init.call(this,e,t)},this._load_nodes=function(a,n,o,d){var e=this.settings.massload,t=[],i=this._model.data,r,s,c;if(!o){for(r=0,s=a.length;r<s;r++)i[a[r]]&&(i[a[r]].state.loaded||i[a[r]].state.failed)&&!d||(t.push(a[r]),(c=this.get_node(a[r],!0))&&c.length&&c.addClass("jstree-loading").attr("aria-busy",!0));if(this._data.massload={},t.length){if(E.vakata.is_function(e))return e.call(this,t,function(e){var t,i;if(e)for(t in e)e.hasOwnProperty(t)&&(this._data.massload[t]=e[t]);for(t=0,i=a.length;t<i;t++)(c=this.get_node(a[t],!0))&&c.length&&c.removeClass("jstree-loading").attr("aria-busy",!1);l._load_nodes.call(this,a,n,o,d)}.bind(this));if("object"==typeof e&&e&&e.url)return e=E.extend(!0,{},e),E.vakata.is_function(e.url)&&(e.url=e.url.call(this,t)),E.vakata.is_function(e.data)&&(e.data=e.data.call(this,t)),E.ajax(e).done(function(e,t,i){var r,s;if(e)for(r in e)e.hasOwnProperty(r)&&(this._data.massload[r]=e[r]);for(r=0,s=a.length;r<s;r++)(c=this.get_node(a[r],!0))&&c.length&&c.removeClass("jstree-loading").attr("aria-busy",!1);l._load_nodes.call(this,a,n,o,d)}.bind(this)).fail(function(e){l._load_nodes.call(this,a,n,o,d)}.bind(this))}}return l._load_nodes.call(this,a,n,o,d)},this._load_node=function(e,t){var i=this._data.massload[e.id],r=null,i;return i?(r=this["string"==typeof i?"_append_html_data":"_append_json_data"](e,"string"==typeof i?E(E.parseHTML(i)).filter(function(){return 3!==this.nodeType}):i,function(e){t.call(this,e)}),(i=this.get_node(e.id,!0))&&i.length&&i.removeClass("jstree-loading").attr("aria-busy",!1),delete this._data.massload[e.id],r):l._load_node.call(this,e,t)}},E.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},E.jstree.plugins.search=function(e,o){this.bind=function(){o.bind.call(this),this._data.search.str="",this._data.search.dom=E(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",function(e,t){if(this._data.search.som&&t.res.length){for(var i=this._model.data,r,s,a=[],n,o,r=0,s=t.res.length;r<s;r++)if(i[t.res[r]]&&!i[t.res[r]].state.hidden&&(a.push(t.res[r]),a=a.concat(i[t.res[r]].parents),this._data.search.smc))for(n=0,o=i[t.res[r]].children_d.length;n<o;n++)i[i[t.res[r]].children_d[n]]&&!i[i[t.res[r]].children_d[n]].state.hidden&&a.push(i[t.res[r]].children_d[n]);a=E.vakata.array_remove_item(E.vakata.array_unique(a),E.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(a,!0),this.redraw(!0)}}.bind(this)).on("clear_search.jstree",function(e,t){this._data.search.som&&t.res.length&&(this.show_node(this._data.search.hdn,!0),this.redraw(!0))}.bind(this))},this.search=function(r,e,t,i,s,a){if(!1===r||""===E.vakata.trim(r.toString()))return this.clear_search();i=(i=this.get_node(i))&&i.id?i.id:null,r=r.toString();var n=this.settings.search,o=n.ajax||!1,d=this._model.data,c=null,l=[],h=[],_,g;if(this._data.search.res.length&&!s&&this.clear_search(),t===P&&(t=n.show_only_matches),a===P&&(a=n.show_only_matches_children),!e&&!1!==o)return E.vakata.is_function(o)?o.call(this,r,function(e){e&&e.d&&(e=e.d),this._load_nodes(E.vakata.is_array(e)?E.vakata.array_unique(e):[],function(){this.search(r,!0,t,i,s,a)})}.bind(this),i):((o=E.extend({},o)).data||(o.data={}),o.data.str=r,i&&(o.data.inside=i),this._data.search.lastRequest&&this._data.search.lastRequest.abort(),this._data.search.lastRequest=E.ajax(o).fail(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(o)},this.settings.core.error.call(this,this._data.core.last_error)}.bind(this)).done(function(e){e&&e.d&&(e=e.d),this._load_nodes(E.vakata.is_array(e)?E.vakata.array_unique(e):[],function(){this.search(r,!0,t,i,s,a)})}.bind(this)),this._data.search.lastRequest);if(s||(this._data.search.str=r,this._data.search.dom=E(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=t,this._data.search.smc=a),c=new E.vakata.search(r,!0,{caseSensitive:n.case_sensitive,fuzzy:n.fuzzy}),E.each(d[i||E.jstree.root].children_d,function(e,t){var i=d[t];i.text&&!i.state.hidden&&(!n.search_leaves_only||i.state.loaded&&0===i.children.length)&&(n.search_callback&&n.search_callback.call(this,r,i)||!n.search_callback&&c.search(i.text).isMatch)&&(l.push(t),h=h.concat(i.parents))}),l.length){for(_=0,g=(h=E.vakata.array_unique(h)).length;_<g;_++)h[_]!==E.jstree.root&&d[h[_]]&&!0===this.open_node(h[_],null,0)&&this._data.search.opn.push(h[_]);s?(this._data.search.dom=this._data.search.dom.add(E(this.element[0].querySelectorAll("#"+E.map(l,function(e){return-1!=="0123456789".indexOf(e[0])?"\\3"+e[0]+" "+e.substr(1).replace(E.jstree.idregex,"\\$&"):e.replace(E.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=E.vakata.array_unique(this._data.search.res.concat(l))):(this._data.search.dom=E(this.element[0].querySelectorAll("#"+E.map(l,function(e){return-1!=="0123456789".indexOf(e[0])?"\\3"+e[0]+" "+e.substr(1).replace(E.jstree.idregex,"\\$&"):e.replace(E.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=l),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:r,res:this._data.search.res,show_only_matches:t})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=E(this.element[0].querySelectorAll("#"+E.map(this._data.search.res,function(e){return-1!=="0123456789".indexOf(e[0])?"\\3"+e[0]+" "+e.substr(1).replace(E.jstree.idregex,"\\$&"):e.replace(E.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=E()},this.redraw_node=function(e,t,i,r){if((e=o.redraw_node.apply(this,arguments))&&-1!==E.inArray(e.id,this._data.search.res)){for(var s,a,n=null,s=0,a=e.childNodes.length;s<a;s++)if(e.childNodes[s]&&e.childNodes[s].className&&-1!==e.childNodes[s].className.indexOf("jstree-anchor")){n=e.childNodes[s];break}n&&(n.className+=" jstree-search")}return e}},(w=E).vakata.search=function(p,e,m){m=m||{},!1!==(m=w.extend({},w.vakata.search.defaults,m)).fuzzy&&(m.fuzzy=!0),p=m.caseSensitive?p:p.toLowerCase();var v=m.location,i=m.distance,j=m.threshold,k=p.length,b,y,x,t;return 32<k&&(m.fuzzy=!1),m.fuzzy&&(b=1<<k-1,y=function(){for(var e={},t=0,t=0;t<k;t++)e[p.charAt(t)]=0;for(t=0;t<k;t++)e[p.charAt(t)]|=1<<k-t-1;return e}(),x=function(e,t){var e=e/k,t=Math.abs(v-t);return i?e+t/i:t?1:e}),t=function(e){if(e=m.caseSensitive?e:e.toLowerCase(),p===e||-1!==e.indexOf(p))return{isMatch:!0,score:0};if(!m.fuzzy)return{isMatch:!1,score:1};var t,i,r=e.length,s=j,a=e.indexOf(p,v),n,o,d=k+r,c,l,h,_,g,u=1,f=[];for(-1!==a&&(s=Math.min(x(0,a),s),-1!==(a=e.lastIndexOf(p,v+k))&&(s=Math.min(x(0,a),s))),a=-1,t=0;t<k;t++){n=0,o=d;while(n<o)x(t,v+o)<=s?n=o:d=o,o=Math.floor((d-n)/2+n);for(d=o,l=Math.max(1,v-o+1),h=Math.min(v+o,r)+k,(_=new Array(h+2))[h+1]=(1<<t)-1,i=h;l<=i;i--)if(g=y[e.charAt(i-1)],_[i]=0===t?(_[i+1]<<1|1)&g:(_[i+1]<<1|1)&g|(c[i+1]|c[i])<<1|1|c[i+1],_[i]&b&&(u=x(t,i-1))<=s){if(s=u,f.push(a=i-1),!(v<a))break;l=Math.max(1,2*v-a)}if(x(t+1,v)>s)break;c=_}return{isMatch:0<=a,score:u}},!0===e?{search:t}:t(e)},w.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1},E.jstree.defaults.sort=function(e,t){return this.get_text(e)>this.get_text(t)?1:-1};var m=!(E.jstree.plugins.sort=function(e,t){this.bind=function(){t.bind.call(this),this.element.on("model.jstree",function(e,t){this.sort(t.parent,!0)}.bind(this)).on("rename_node.jstree create_node.jstree",function(e,t){this.sort(t.parent||t.node.parent,!1),this.redraw_node(t.parent||t.node.parent,!0)}.bind(this)).on("move_node.jstree copy_node.jstree",function(e,t){this.sort(t.parent,!1),this.redraw_node(t.parent,!0)}.bind(this))},this.sort=function(e,t){var i,r;if((e=this.get_node(e))&&e.children&&e.children.length&&(e.children.sort(this.settings.sort.bind(this)),t))for(i=0,r=e.children_d.length;i<r;i++)this.sort(e.children_d[i],!1)}}),t,v;E.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1,preserve_loaded:!1},E.jstree.plugins.state=function(e,t){this.bind=function(){t.bind.call(this);var i=function(){this.element.on(this.settings.state.events,function(){m&&clearTimeout(m),m=setTimeout(function(){this.save_state()}.bind(this),100)}.bind(this)),this.trigger("state_ready")}.bind(this);this.element.on("ready.jstree",function(e,t){this.element.one("restore_state.jstree",i),this.restore_state()||i()}.bind(this))},this.save_state=function(){var e=this.get_state();this.settings.state.preserve_loaded||delete e.core.loaded;var e={state:e,ttl:this.settings.state.ttl,sec:+new Date};E.vakata.storage.set(this.settings.state.key,JSON.stringify(e))},this.restore_state=function(){var i=E.vakata.storage.get(this.settings.state.key);if(i)try{i=JSON.parse(i)}catch(e){return!1}return!(i&&i.ttl&&i.sec&&+new Date-i.sec>i.ttl)&&(!!(i=(i=i&&i.state?i.state:i)&&E.vakata.is_function(this.settings.state.filter)?this.settings.state.filter.call(this,i):i)&&(this.settings.state.preserve_loaded||delete i.core.loaded,this.element.one("set_state.jstree",function(e,t){t.instance.trigger("restore_state",{state:E.extend(!0,{},i)})}),this.set_state(i),!0))},this.clear_state=function(){return E.vakata.storage.del(this.settings.state.key)}},E.vakata.storage={set:function(e,t){return window.localStorage.setItem(e,t)},get:function(e){return window.localStorage.getItem(e)},del:function(e){return window.localStorage.removeItem(e)}},E.jstree.defaults.types={default:{}},E.jstree.defaults.types[E.jstree.root]={},E.jstree.plugins.types=function(e,l){this.init=function(e,t){var i,r;if(t&&t.types&&t.types.default)for(i in t.types)if("default"!==i&&i!==E.jstree.root&&t.types.hasOwnProperty(i))for(r in t.types.default)t.types.default.hasOwnProperty(r)&&t.types[i][r]===P&&(t.types[i][r]=t.types.default[r]);l.init.call(this,e,t),this._model.data[E.jstree.root].type=E.jstree.root},this.refresh=function(e,t){l.refresh.call(this,e,t),this._model.data[E.jstree.root].type=E.jstree.root},this.bind=function(){this.element.on("model.jstree",function(e,t){for(var i=this._model.data,r=t.nodes,s=this.settings.types,a,n,o="default",d,a=0,n=r.length;a<n;a++){if(o="default",i[r[a]].original&&i[r[a]].original.type&&s[i[r[a]].original.type]&&(o=i[r[a]].original.type),i[r[a]].data&&i[r[a]].data.jstree&&i[r[a]].data.jstree.type&&s[i[r[a]].data.jstree.type]&&(o=i[r[a]].data.jstree.type),i[r[a]].type=o,!0===i[r[a]].icon&&s[o].icon!==P&&(i[r[a]].icon=s[o].icon),s[o].li_attr!==P&&"object"==typeof s[o].li_attr)for(d in s[o].li_attr)s[o].li_attr.hasOwnProperty(d)&&"id"!==d&&(i[r[a]].li_attr[d]===P?i[r[a]].li_attr[d]=s[o].li_attr[d]:"class"===d&&(i[r[a]].li_attr.class=s[o].li_attr.class+" "+i[r[a]].li_attr.class));if(s[o].a_attr!==P&&"object"==typeof s[o].a_attr)for(d in s[o].a_attr)s[o].a_attr.hasOwnProperty(d)&&"id"!==d&&(i[r[a]].a_attr[d]===P?i[r[a]].a_attr[d]=s[o].a_attr[d]:"href"===d&&"#"===i[r[a]].a_attr[d]?i[r[a]].a_attr.href=s[o].a_attr.href:"class"===d&&(i[r[a]].a_attr.class=s[o].a_attr.class+" "+i[r[a]].a_attr.class))}i[E.jstree.root].type=E.jstree.root}.bind(this)),l.bind.call(this)},this.get_json=function(e,t,i){var r,s,a=this._model.data,n=t?E.extend(!0,{},t,{no_id:!1}):{},o=l.get_json.call(this,e,n,i);if(!1===o)return!1;if(E.vakata.is_array(o))for(r=0,s=o.length;r<s;r++)o[r].type=o[r].id&&a[o[r].id]&&a[o[r].id].type?a[o[r].id].type:"default",t&&t.no_id&&(delete o[r].id,o[r].li_attr&&o[r].li_attr.id&&delete o[r].li_attr.id,o[r].a_attr&&o[r].a_attr.id&&delete o[r].a_attr.id);else o.type=o.id&&a[o.id]&&a[o.id].type?a[o.id].type:"default",t&&t.no_id&&(o=this._delete_ids(o));return o},this._delete_ids=function(e){if(E.vakata.is_array(e)){for(var t=0,i=e.length;t<i;t++)e[t]=this._delete_ids(e[t]);return e}return delete e.id,e.li_attr&&e.li_attr.id&&delete e.li_attr.id,e.a_attr&&e.a_attr.id&&delete e.a_attr.id,e.children&&E.vakata.is_array(e.children)&&(e.children=this._delete_ids(e.children)),e},this.check=function(e,t,i,r,s){if(!1===l.check.call(this,e,t,i,r,s))return!1;t=t&&t.id?t:this.get_node(t),i=i&&i.id?i:this.get_node(i);var a,n,o,d,c,a=(a=t&&t.id?s&&s.origin?s.origin:E.jstree.reference(t.id):null)&&a._model&&a._model.data?a._model.data:null;switch(e){case"create_node":case"move_node":case"copy_node":if("move_node"!==e||-1===E.inArray(t.id,i.children)){if((n=this.get_rules(i)).max_children!==P&&-1!==n.max_children&&n.max_children===i.children.length)return!(this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})});if(n.valid_children!==P&&-1!==n.valid_children&&-1===E.inArray(t.type||"default",n.valid_children))return!(this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})});if(a&&t.children_d&&t.parents){for(d=o=0,c=t.children_d.length;d<c;d++)o=Math.max(o,a[t.children_d[d]].parents.length);o=o-t.parents.length+1}(o<=0||o===P)&&(o=1);do{if(n.max_depth!==P&&-1!==n.max_depth&&n.max_depth<o)return!(this._data.core.last_error={error:"check",plugin:"types",id:"types_03",reason:"max_depth prevents function: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})});i=this.get_node(i.parent),n=this.get_rules(i),o++}while(i)}}return!0},this.get_rules=function(e){if(!(e=this.get_node(e)))return!1;var e=this.get_type(e,!0);return e.max_depth===P&&(e.max_depth=-1),e.max_children===P&&(e.max_children=-1),e.valid_children===P&&(e.valid_children=-1),e},this.get_type=function(e,t){return!!(e=this.get_node(e))&&(t?E.extend({type:e.type},this.settings.types[e.type]):e.type)},this.set_type=function(e,t){var i=this._model.data,r,s,a,n,o,d,c,l;if(E.vakata.is_array(e)){for(s=0,a=(e=e.slice()).length;s<a;s++)this.set_type(e[s],t);return!0}if(r=this.settings.types,e=this.get_node(e),!r[t]||!e)return!1;if((c=this.get_node(e,!0))&&c.length&&(l=c.children(".jstree-anchor")),n=e.type,o=this.get_icon(e),e.type=t,!0!==o&&r[n]&&(r[n].icon===P||o!==r[n].icon)||this.set_icon(e,r[t].icon===P||r[t].icon),r[n]&&r[n].li_attr!==P&&"object"==typeof r[n].li_attr)for(d in r[n].li_attr)r[n].li_attr.hasOwnProperty(d)&&"id"!==d&&("class"===d?(i[e.id].li_attr.class=(i[e.id].li_attr.class||"").replace(r[n].li_attr[d],""),c&&c.removeClass(r[n].li_attr[d])):i[e.id].li_attr[d]===r[n].li_attr[d]&&(i[e.id].li_attr[d]=null,c&&c.removeAttr(d)));if(r[n]&&r[n].a_attr!==P&&"object"==typeof r[n].a_attr)for(d in r[n].a_attr)r[n].a_attr.hasOwnProperty(d)&&"id"!==d&&("class"===d?(i[e.id].a_attr.class=(i[e.id].a_attr.class||"").replace(r[n].a_attr[d],""),l&&l.removeClass(r[n].a_attr[d])):i[e.id].a_attr[d]===r[n].a_attr[d]&&("href"===d?(i[e.id].a_attr[d]="#",l&&l.attr("href","#")):(delete i[e.id].a_attr[d],l&&l.removeAttr(d))));if(r[t].li_attr!==P&&"object"==typeof r[t].li_attr)for(d in r[t].li_attr)r[t].li_attr.hasOwnProperty(d)&&"id"!==d&&(i[e.id].li_attr[d]===P?(i[e.id].li_attr[d]=r[t].li_attr[d],c&&("class"===d?c.addClass(r[t].li_attr[d]):c.attr(d,r[t].li_attr[d]))):"class"===d&&(i[e.id].li_attr.class=r[t].li_attr[d]+" "+i[e.id].li_attr.class,c&&c.addClass(r[t].li_attr[d])));if(r[t].a_attr!==P&&"object"==typeof r[t].a_attr)for(d in r[t].a_attr)r[t].a_attr.hasOwnProperty(d)&&"id"!==d&&(i[e.id].a_attr[d]===P?(i[e.id].a_attr[d]=r[t].a_attr[d],l&&("class"===d?l.addClass(r[t].a_attr[d]):l.attr(d,r[t].a_attr[d]))):"href"===d&&"#"===i[e.id].a_attr[d]?(i[e.id].a_attr.href=r[t].a_attr.href,l&&l.attr("href",r[t].a_attr.href)):"class"===d&&(i[e.id].a_attr.class=r[t].a_attr.class+" "+i[e.id].a_attr.class,l&&l.addClass(r[t].a_attr[d])));return!0}},E.jstree.defaults.unique={case_sensitive:!1,trim_whitespace:!1,duplicate:function(e,t){return e+" ("+t+")"}},E.jstree.plugins.unique=function(e,f){this.check=function(e,t,i,r,s){if(!1===f.check.call(this,e,t,i,r,s))return!1;if(t=t&&t.id?t:this.get_node(t),!(i=i&&i.id?i:this.get_node(i))||!i.children)return!0;for(var a="rename_node"===e?r:t.text,n=[],o=this.settings.unique.case_sensitive,d=this.settings.unique.trim_whitespace,c=this._model.data,l,h,_,l=0,h=i.children.length;l<h;l++)_=c[i.children[l]].text,o||(_=_.toLowerCase()),d&&(_=_.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),n.push(_);switch(o||(a=a.toLowerCase()),d&&(a=a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),e){case"delete_node":return!0;case"rename_node":return _=t.text||"",o||(_=_.toLowerCase()),d&&(_=_.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),(l=-1===E.inArray(a,n)||t.text&&_===a)||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+a+" already exists. Preventing: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})}),l;case"create_node":return(l=-1===E.inArray(a,n))||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+a+" already exists. Preventing: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})}),l;case"copy_node":return(l=-1===E.inArray(a,n))||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+a+" already exists. Preventing: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})}),l;case"move_node":return(l=t.parent===i.id&&(!s||!s.is_multi)||-1===E.inArray(a,n))||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+a+" already exists. Preventing: "+e,data:JSON.stringify({chk:e,pos:r,obj:!(!t||!t.id)&&t.id,par:!(!i||!i.id)&&i.id})}),l}return!0},this.create_node=function(e,t,i,r,s){if(!t||t.text===P){if(null===e&&(e=E.jstree.root),!(e=this.get_node(e)))return f.create_node.call(this,e,t,i,r,s);if(!(i=i===P?"last":i).toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(e))return f.create_node.call(this,e,t,i,r,s);t=t||{};for(var a,n,o,d,c,l=this._model.data,h=this.settings.unique.case_sensitive,_=this.settings.unique.trim_whitespace,g=this.settings.unique.duplicate,u,n=a=this.get_string("New node"),o=[],d=0,c=e.children.length;d<c;d++)u=l[e.children[d]].text,h||(u=u.toLowerCase()),_&&(u=u.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")),o.push(u);d=1,u=n,h||(u=u.toLowerCase()),_&&(u=u.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""));while(-1!==E.inArray(u,o))u=n=g.call(this,a,++d).toString(),h||(u=u.toLowerCase()),_&&(u=u.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""));t.text=n}return f.create_node.call(this,e,t,i,r,s)}};var j=b.createElement("DIV");if(j.setAttribute("unselectable","on"),j.setAttribute("role","presentation"),j.className="jstree-wholerow",j.innerHTML=" ",E.jstree.plugins.wholerow=function(e,a){this.bind=function(){a.bind.call(this),this.element.on("ready.jstree set_state.jstree",function(){this.hide_dots()}.bind(this)).on("init.jstree loading.jstree ready.jstree",function(){this.get_container_ul().addClass("jstree-wholerow-ul")}.bind(this)).on("deselect_all.jstree",function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")}.bind(this)).on("changed.jstree",function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked");for(var i=!1,r,s,r=0,s=t.selected.length;r<s;r++)(i=this.get_node(t.selected[r],!0))&&i.length&&i.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")}.bind(this)).on("open_node.jstree",function(e,t){this.get_node(t.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")}.bind(this)).on("hover_node.jstree dehover_node.jstree",function(e,t){"hover_node"===e.type&&this.is_disabled(t.node)||this.get_node(t.node,!0).children(".jstree-wholerow")["hover_node"===e.type?"addClass":"removeClass"]("jstree-wholerow-hovered")}.bind(this)).on("contextmenu.jstree",".jstree-wholerow",function(e){var t;this._data.contextmenu&&(e.preventDefault(),t=E.Event("contextmenu",{metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,pageX:e.pageX,pageY:e.pageY}),E(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(t))}.bind(this)).on("click.jstree",".jstree-wholerow",function(e){e.stopImmediatePropagation();var t=E.Event("click",{metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});E(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(t).trigger("focus")}).on("dblclick.jstree",".jstree-wholerow",function(e){e.stopImmediatePropagation();var t=E.Event("dblclick",{metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});E(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(t).trigger("focus")}).on("click.jstree",".jstree-leaf > .jstree-ocl",function(e){e.stopImmediatePropagation();var t=E.Event("click",{metaKey:e.metaKey,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey});E(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(t).trigger("focus")}.bind(this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",function(e){return e.stopImmediatePropagation(),this.is_disabled(e.currentTarget)||this.hover_node(e.currentTarget),!1}.bind(this)).on("mouseleave.jstree",".jstree-node",function(e){this.dehover_node(e.currentTarget)}.bind(this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),a.teardown.call(this)},this.redraw_node=function(e,t,i,r){var s;return(e=a.redraw_node.apply(this,arguments))&&(s=j.cloneNode(!0),-1!==E.inArray(e.id,this._data.core.selected)&&(s.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===e.id&&(s.className+=" jstree-wholerow-hovered"),e.insertBefore(s,e.childNodes[0])),e}},window.customElements&&Object&&Object.create){var e=Object.create(HTMLElement.prototype);e.createdCallback=function(){var e={core:{},plugins:[]},t;for(t in E.jstree.plugins)E.jstree.plugins.hasOwnProperty(t)&&this.attributes[t]&&(e.plugins.push(t),this.getAttribute(t)&&JSON.parse(this.getAttribute(t))&&(e[t]=JSON.parse(this.getAttribute(t))));for(t in E.jstree.defaults.core)E.jstree.defaults.core.hasOwnProperty(t)&&this.attributes[t]&&(e.core[t]=JSON.parse(this.getAttribute(t))||this.getAttribute(t));E(this).jstree(e)};try{window.customElements.define("vakata-jstree",function(){},{prototype:e})}catch(e){}}}}); \ No newline at end of file diff --git a/hyrax/app/assets/javascripts/jstree_init.js b/hyrax/app/assets/javascripts/jstree_init.js new file mode 100644 index 0000000000000000000000000000000000000000..284120c0352919ff980810a6459c86bdbc485b78 --- /dev/null +++ b/hyrax/app/assets/javascripts/jstree_init.js @@ -0,0 +1,8 @@ +Blacklight.onLoad(function() { + $('.treeview').jstree(); + $(".treeview").on("click", ".jstree-anchor", function(evt) + { + var link = $(evt.target).attr("href"); + window.open(link, '_self'); + }); +}); \ No newline at end of file diff --git a/hyrax/app/assets/javascripts/shieldui-all.js b/hyrax/app/assets/javascripts/shieldui-all.js deleted file mode 100644 index 4cd95705557c3369422c5d87f5532b39080f9d59..0000000000000000000000000000000000000000 --- a/hyrax/app/assets/javascripts/shieldui-all.js +++ /dev/null @@ -1,24 +0,0 @@ -/* Shield UI 1.7.44 Trial Version | Copyright 2013-2022 Shield UI Ltd. | http://www.shieldui.com/eula | Expires on Fri, 06 Jan 2023 03:02:11 GMT */ -function f(e){this.ok=!1,e=(e=(e="#"==e.charAt(0)?e.substr(1,6):e).replace(/ /g,"")).toLowerCase();var t,u={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};for(t in u)e==t&&(e=u[t]);for(var c=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(e){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/,example:["#00ff00","336699"],process:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}}],n=0;n<c.length;n++){var i=c[n].re,r=c[n].process,i=i.exec(e);i&&(channels=r(i),this.r=channels[0],this.g=channels[1],this.b=channels[2],this.ok=!0)}this.r=this.r<0||isNaN(this.r)?0:255<this.r?255:this.r,this.g=this.g<0||isNaN(this.g)?0:255<this.g?255:this.g,this.b=this.b<0||isNaN(this.b)?0:255<this.b?255:this.b,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toHex=function(){var e=this.r.toString(16),t=this.g.toString(16),n=this.b.toString(16);return"#"+(e=1==e.length?"0"+e:e)+(t=1==t.length?"0"+t:t)+(n=1==n.length?"0"+n:n)},this.getHelpXML=function(){for(var e,t=new Array,n=0;n<c.length;n++)for(var i=c[n].example,r=0;r<i.length;r++)t[t.length]=i[r];for(e in u)t[t.length]=e;var a=document.createElement("ul");a.setAttribute("id","rgbcolor-examples");for(n=0;n<t.length;n++)try{var s=document.createElement("li"),o=new f(t[n]),l=document.createElement("div"),h=(l.style.cssText="margin: 3px; border: 1px solid black; background:"+o.toHex()+"; color:"+o.toHex(),l.appendChild(document.createTextNode("test")),document.createTextNode(" "+t[n]+" -> "+o.toRGB()+" -> "+o.toHex()));s.appendChild(l),s.appendChild(h),a.appendChild(s)}catch(e){}return a}}!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(h){var u,c,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],f=Array.prototype.slice;if(h.event.fixHooks)for(var n=e.length;n;)h.event.fixHooks[e[--n]]=h.event.mouseHooks;var d=h.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],i,!1);else this.onmousewheel=i;h.data(this,"mousewheel-line-height",d.getLineHeight(this)),h.data(this,"mousewheel-page-height",d.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],i,!1);else this.onmousewheel=null;h.removeData(this,"mousewheel-line-height"),h.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var e=h(e),t=e["offsetParent"in h.fn?"offsetParent":"parent"]();return t.length||(t=h("body")),parseInt(t.css("fontSize"),10)||parseInt(e.css("fontSize"),10)||16},getPageHeight:function(e){return h(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function i(e){var t,n=e||window.event,i=f.call(arguments,1),r=0,a=0,s=0,o=0,l=0;if((e=h.event.fix(n)).type="mousewheel","detail"in n&&(s=-1*n.detail),"wheelDelta"in n&&(s=n.wheelDelta),"wheelDeltaY"in n&&(s=n.wheelDeltaY),"wheelDeltaX"in n&&(a=-1*n.wheelDeltaX),"axis"in n&&n.axis===n.HORIZONTAL_AXIS&&(a=-1*s,s=0),r=0===s?a:s,"deltaY"in n&&(r=s=-1*n.deltaY),"deltaX"in n&&(a=n.deltaX,0===s&&(r=-1*a)),0!==s||0!==a)return 1===n.deltaMode?(r*=t=h.data(this,"mousewheel-line-height"),s*=t,a*=t):2===n.deltaMode&&(r*=t=h.data(this,"mousewheel-page-height"),s*=t,a*=t),t=Math.max(Math.abs(s),Math.abs(a)),(!c||t<c)&&g(n,c=t)&&(c/=40),g(n,t)&&(r/=40,a/=40,s/=40),r=Math[1<=r?"floor":"ceil"](r/c),a=Math[1<=a?"floor":"ceil"](a/c),s=Math[1<=s?"floor":"ceil"](s/c),d.settings.normalizeOffset&&this.getBoundingClientRect&&(n=this.getBoundingClientRect(),o=e.clientX-n.left,l=e.clientY-n.top),e.deltaX=a,e.deltaY=s,e.deltaFactor=c,e.offsetX=o,e.offsetY=l,e.deltaMode=0,i.unshift(e,r,a,s),u&&clearTimeout(u),u=setTimeout(p,200),(h.event.dispatch||h.event.handle).apply(this,i)}function p(){c=null}function g(e,t){return d.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}h.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})}),function(){this.canvg=function(e,t,n){if(null==e&&null==t&&null==n)for(var r=document.getElementsByTagName("svg"),a=0;a<r.length;a++){var s=r[a],o=document.createElement("canvas"),l=(o.width=s.clientWidth,o.height=s.clientHeight,s.parentNode.insertBefore(o,s),s.parentNode.removeChild(s),document.createElement("div"));l.appendChild(s),canvg(o,l.innerHTML)}else{n=n||{},null!=(e="string"==typeof e?document.getElementById(e):e).svg&&e.svg.stop();(P={FRAMERATE:30,MAX_VIRTUAL_PIXELS:3e4,init:function(e){P.Definitions={},P.Styles={},P.Animations=[],P.Images=[],P.ctx=e,P.ViewPort=new function(){this.viewPorts=[],this.Clear=function(){this.viewPorts=[]},this.SetCurrent=function(e,t){this.viewPorts.push({width:e,height:t})},this.RemoveCurrent=function(){this.viewPorts.pop()},this.Current=function(){return this.viewPorts[this.viewPorts.length-1]},this.width=function(){return this.Current().width},this.height=function(){return this.Current().height},this.ComputeSize=function(e){return null!=e&&"number"==typeof e?e:"x"==e?this.width():"y"==e?this.height():Math.sqrt(Math.pow(this.width(),2)+Math.pow(this.height(),2))/Math.sqrt(2)}}}}).init(),P.ImagesLoaded=function(){for(var e=0;e<P.Images.length;e++)if(!P.Images[e].loaded)return!1;return!0},P.trim=function(e){return e.replace(/^\s+|\s+$/g,"")},P.compressSpaces=function(e){return e.replace(/[\s\r\t\n]+/gm," ")},P.ajax=function(e){var t=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");return t?(t.open("GET",e,!1),t.send(null),t.responseText):null},P.parseXml=function(e){var t;return window.DOMParser?(new DOMParser).parseFromString(e,"text/xml"):(e=e.replace(/<!DOCTYPE svg[^>]*>/,""),(t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e),t)},P.Property=function(e,t){this.name=e,this.value=t},P.Property.prototype.getValue=function(){return this.value},P.Property.prototype.hasValue=function(){return null!=this.value&&""!==this.value},P.Property.prototype.numValue=function(){var e;return this.hasValue()?(e=parseFloat(this.value),(this.value+"").match(/%$/)&&(e/=100),e):0},P.Property.prototype.valueOrDefault=function(e){return this.hasValue()?this.value:e},P.Property.prototype.numValueOrDefault=function(e){return this.hasValue()?this.numValue():e},P.Property.prototype.addOpacity=function(e){var t,n=this.value;return null!=e&&""!=e&&"string"==typeof this.value&&(t=new f(this.value)).ok&&(n="rgba("+t.r+", "+t.g+", "+t.b+", "+e+")"),new P.Property(this.name,n)},P.Property.prototype.getDefinition=function(){var e=this.value.match(/#([^\)']+)/);return e=(e=e&&e[1])||this.value,P.Definitions[e]},P.Property.prototype.isUrlDefinition=function(){return 0==this.value.indexOf("url(")},P.Property.prototype.getFillStyleDefinition=function(e,t){var n=this.getDefinition();return null!=n&&n.createGradient?n.createGradient(P.ctx,e,t):null!=n&&n.createPattern?n.createPattern(P.ctx,e):null},P.Property.prototype.getDPI=function(e){return 96},P.Property.prototype.getEM=function(e){var t=12,n=new P.Property("fontSize",P.Font.Parse(P.ctx.font).fontSize);return t=n.hasValue()?n.toPixels(e):t},P.Property.prototype.getUnits=function(){return(this.value+"").replace(/[0-9\.\-]/g,"")},P.Property.prototype.toPixels=function(e,t){var n;return this.hasValue()?(n=this.value+"").match(/em$/)?this.numValue()*this.getEM(e):n.match(/ex$/)?this.numValue()*this.getEM(e)/2:n.match(/px$/)?this.numValue():n.match(/pt$/)?this.numValue()*this.getDPI(e)*(1/72):n.match(/pc$/)?15*this.numValue():n.match(/cm$/)?this.numValue()*this.getDPI(e)/2.54:n.match(/mm$/)?this.numValue()*this.getDPI(e)/25.4:n.match(/in$/)?this.numValue()*this.getDPI(e):n.match(/%$/)?this.numValue()*P.ViewPort.ComputeSize(e):(n=this.numValue(),t&&n<1?n*P.ViewPort.ComputeSize(e):n):0},P.Property.prototype.toMilliseconds=function(){var e;return this.hasValue()?(e=this.value+"").match(/s$/)?1e3*this.numValue():(e.match(/ms$/),this.numValue()):0},P.Property.prototype.toRadians=function(){var e;return this.hasValue()?(e=this.value+"").match(/deg$/)?this.numValue()*(Math.PI/180):e.match(/grad$/)?this.numValue()*(Math.PI/200):e.match(/rad$/)?this.numValue():this.numValue()*(Math.PI/180):0},P.Font=new function(){this.Styles="normal|italic|oblique|inherit",this.Variants="normal|small-caps|inherit",this.Weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit",this.CreateFont=function(e,t,n,i,r,a){a=null!=a?this.Parse(a):this.CreateFont("","","","","",P.ctx.font);return{fontFamily:r||a.fontFamily,fontSize:i||a.fontSize,fontStyle:e||a.fontStyle,fontWeight:n||a.fontWeight,fontVariant:t||a.fontVariant,toString:function(){return[this.fontStyle,this.fontVariant,this.fontWeight,this.fontSize,this.fontFamily].join(" ")}}};var s=this;this.Parse=function(e){for(var t={},n=P.trim(P.compressSpaces(e||"")).split(" "),i={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1},r="",a=0;a<n.length;a++)i.fontStyle||-1==s.Styles.indexOf(n[a])?i.fontVariant||-1==s.Variants.indexOf(n[a])?i.fontWeight||-1==s.Weights.indexOf(n[a])?i.fontSize?"inherit"!=n[a]&&(r+=n[a]):("inherit"!=n[a]&&(t.fontSize=n[a].split("/")[0]),i.fontStyle=i.fontVariant=i.fontWeight=i.fontSize=!0):("inherit"!=n[a]&&(t.fontWeight=n[a]),i.fontStyle=i.fontVariant=i.fontWeight=!0):("inherit"!=n[a]&&(t.fontVariant=n[a]),i.fontStyle=i.fontVariant=!0):("inherit"!=n[a]&&(t.fontStyle=n[a]),i.fontStyle=!0);return""!=r&&(t.fontFamily=r),t}},P.ToNumberArray=function(e){for(var t=P.trim(P.compressSpaces((e||"").replace(/,/g," "))).split(" "),n=0;n<t.length;n++)t[n]=parseFloat(t[n]);return t},P.Point=function(e,t){this.x=e,this.y=t},P.Point.prototype.angleTo=function(e){return Math.atan2(e.y-this.y,e.x-this.x)},P.Point.prototype.applyTransform=function(e){var t=this.x*e[0]+this.y*e[2]+e[4],e=this.x*e[1]+this.y*e[3]+e[5];this.x=t,this.y=e},P.CreatePoint=function(e){e=P.ToNumberArray(e);return new P.Point(e[0],e[1])},P.CreatePath=function(e){for(var t=P.ToNumberArray(e),n=[],i=0;i<t.length;i+=2)n.push(new P.Point(t[i],t[i+1]));return n},P.BoundingBox=function(e,t,n,r){this.x1=Number.NaN,this.y1=Number.NaN,this.x2=Number.NaN,this.y2=Number.NaN,this.x=function(){return this.x1},this.y=function(){return this.y1},this.width=function(){return this.x2-this.x1},this.height=function(){return this.y2-this.y1},this.addPoint=function(e,t){null!=e&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=e,this.x2=e),e<this.x1&&(this.x1=e),e>this.x2&&(this.x2=e)),null!=t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),t<this.y1&&(this.y1=t),t>this.y2&&(this.y2=t))},this.addX=function(e){this.addPoint(e,null)},this.addY=function(e){this.addPoint(null,e)},this.addBoundingBox=function(e){this.addPoint(e.x1,e.y1),this.addPoint(e.x2,e.y2)},this.addQuadraticCurve=function(e,t,n,i,r,a){n=e+2/3*(n-e),i=t+2/3*(i-t);this.addBezierCurve(e,t,n,n+1/3*(r-e),i,i+1/3*(a-t),r,a)},this.addBezierCurve=function(e,t,n,r,a,s,o,l){var h=[e,t],u=[n,r],c=[a,s],f=[o,l];for(this.addPoint(h[0],h[1]),this.addPoint(f[0],f[1]),i=0;i<=1;i++){function d(e){return Math.pow(1-e,3)*h[i]+3*Math.pow(1-e,2)*e*u[i]+3*(1-e)*Math.pow(e,2)*c[i]+Math.pow(e,3)*f[i]}var p,g=6*h[i]-12*u[i]+6*c[i],m=-3*h[i]+9*u[i]-9*c[i]+3*f[i],x=3*u[i]-3*h[i];0==m?0==g||0<(p=-x/g)&&p<1&&(0==i&&this.addX(d(p)),1==i&&this.addY(d(p))):(p=Math.pow(g,2)-4*x*m)<0||(0<(x=(-g+Math.sqrt(p))/(2*m))&&x<1&&(0==i&&this.addX(d(x)),1==i&&this.addY(d(x))),0<(x=(-g-Math.sqrt(p))/(2*m))&&x<1&&(0==i&&this.addX(d(x)),1==i&&this.addY(d(x))))}},this.isPointInBox=function(e,t){return this.x1<=e&&e<=this.x2&&this.y1<=t&&t<=this.y2},this.addPoint(e,t),this.addPoint(n,r)},P.Transform=function(e){for(var t=this,n=(this.Type={},this.Type.translate=function(e){this.p=P.CreatePoint(e),this.apply=function(e){e.translate(this.p.x||0,this.p.y||0)},this.applyToPoint=function(e){e.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0])}},this.Type.rotate=function(e){e=P.ToNumberArray(e);this.angle=new P.Property("angle",e[0]),this.cx=e[1]||0,this.cy=e[2]||0,this.apply=function(e){e.translate(this.cx,this.cy),e.rotate(this.angle.toRadians()),e.translate(-this.cx,-this.cy)},this.applyToPoint=function(e){var t=this.angle.toRadians();e.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0]),e.applyTransform([Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0]),e.applyTransform([1,0,0,1,-this.p.x||0,-this.p.y||0])}},this.Type.scale=function(e){this.p=P.CreatePoint(e),this.apply=function(e){e.scale(this.p.x||1,this.p.y||this.p.x||1)},this.applyToPoint=function(e){e.applyTransform([this.p.x||0,0,0,this.p.y||0,0,0])}},this.Type.matrix=function(e){this.m=P.ToNumberArray(e),this.apply=function(e){e.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},this.applyToPoint=function(e){e.applyTransform(this.m)}},this.Type.SkewBase=function(e){this.base=t.Type.matrix,this.base(e),this.angle=new P.Property("angle",e)},this.Type.SkewBase.prototype=new this.Type.matrix,this.Type.skewX=function(e){this.base=t.Type.SkewBase,this.base(e),this.m=[1,0,Math.tan(this.angle.toRadians()),1,0,0]},this.Type.skewX.prototype=new this.Type.SkewBase,this.Type.skewY=function(e){this.base=t.Type.SkewBase,this.base(e),this.m=[1,Math.tan(this.angle.toRadians()),0,1,0,0]},this.Type.skewY.prototype=new this.Type.SkewBase,this.transforms=[],this.apply=function(e){for(var t=0;t<this.transforms.length;t++)this.transforms[t].apply(e)},this.applyToPoint=function(e){for(var t=0;t<this.transforms.length;t++)this.transforms[t].applyToPoint(e)},P.trim(P.compressSpaces(e)).replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/)),i=0;i<n.length;i++){var r=n[i].split("(")[0],a=n[i].split("(")[1].replace(")",""),a=new this.Type[r](a);a.type=r,this.transforms.push(a)}},P.AspectRatio=function(e,t,n,i,r,a,s,o,l,h){var u=(t=(t=P.compressSpaces(t)).replace(/^defer\s/,"")).split(" ")[0]||"xMidYMid",t=t.split(" ")[1]||"meet",c=n/i,f=r/a,d=Math.min(c,f),p=Math.max(c,f);"meet"==t&&(i*=d,a*=d),"slice"==t&&(i*=p,a*=p),l=new P.Property("refX",l),h=new P.Property("refY",h),l.hasValue()&&h.hasValue()?e.translate(-d*l.toPixels("x"),-d*h.toPixels("y")):(u.match(/^xMid/)&&("meet"==t&&d==f||"slice"==t&&p==f)&&e.translate(n/2-i/2,0),u.match(/YMid$/)&&("meet"==t&&d==c||"slice"==t&&p==c)&&e.translate(0,r/2-a/2),u.match(/^xMax/)&&("meet"==t&&d==f||"slice"==t&&p==f)&&e.translate(n-i,0),u.match(/YMax$/)&&("meet"==t&&d==c||"slice"==t&&p==c)&&e.translate(0,r-a)),"none"==u?e.scale(c,f):"meet"==t?e.scale(d,d):"slice"==t&&e.scale(p,p),e.translate(null==s?0:-s,null==o?0:-o)},P.Element={},P.EmptyProperty=new P.Property("EMPTY",""),P.Element.ElementBase=function(e){if(this.attributes={},this.styles={},this.children=[],this.attribute=function(e,t){var n=this.attributes[e];return null!=n?n:(1==t&&(n=new P.Property(e,""),this.attributes[e]=n),n||P.EmptyProperty)},this.style=function(e,t){var n=this.styles[e];if(null!=n)return n;var i=this.attribute(e);if(null!=i&&i.hasValue())return this.styles[e]=i;i=this.parent;if(null!=i){i=i.style(e);if(null!=i&&i.hasValue())return i}return 1==t&&(n=new P.Property(e,""),this.styles[e]=n),n||P.EmptyProperty},this.render=function(e){var t;"none"!=this.style("display").value&&"hidden"!=this.attribute("visibility").value&&(e.save(),this.attribute("mask").hasValue()?null!=(t=this.attribute("mask").getDefinition())&&t.apply(e,this):this.style("filter").hasValue()?null!=(t=this.style("filter").getDefinition())&&t.apply(e,this):(this.setContext(e),this.renderChildren(e),this.clearContext(e)),e.restore())},this.setContext=function(e){},this.clearContext=function(e){},this.renderChildren=function(e){for(var t=0;t<this.children.length;t++)this.children[t].render(e)},this.addChild=function(e,t){var n=e;((n=t?P.CreateElement(e):n).parent=this).children.push(n)},null!=e&&1==e.nodeType){for(var t=0;t<e.childNodes.length;t++){var n=e.childNodes[t];1==n.nodeType&&this.addChild(n,!0),this.captureTextNodes&&3==n.nodeType&&this.addChild(new P.Element.tspan(n),!1)}for(t=0;t<e.attributes.length;t++){var i=e.attributes[t];this.attributes[i.nodeName]=new P.Property(i.nodeName,i.nodeValue)}if(null!=(l=P.Styles[e.nodeName]))for(var r in l)this.styles[r]=l[r];if(this.attribute("class").hasValue())for(var a=P.compressSpaces(this.attribute("class").value).split(" "),s=0;s<a.length;s++){if(null!=(l=P.Styles["."+a[s]]))for(var r in l)this.styles[r]=l[r];if(null!=(l=P.Styles[e.nodeName+"."+a[s]]))for(var r in l)this.styles[r]=l[r]}if(this.attribute("id").hasValue())if(null!=(l=P.Styles["#"+this.attribute("id").value]))for(var r in l)this.styles[r]=l[r];if(this.attribute("style").hasValue())for(var o,l=this.attribute("style").value.split(";"),t=0;t<l.length;t++)""!=P.trim(l[t])&&(o=l[t].split(":"),r=P.trim(o[0]),o=P.trim(o[1]),this.styles[r]=new P.Property(r,o));this.attribute("id").hasValue()&&null==P.Definitions[this.attribute("id").value]&&(P.Definitions[this.attribute("id").value]=this)}},P.Element.RenderedElementBase=function(e){this.base=P.Element.ElementBase,this.base(e),this.setContext=function(e){var t,n,i;this.style("fill").isUrlDefinition()?null!=(i=this.style("fill").getFillStyleDefinition(this,this.style("fill-opacity")))&&(e.fillStyle=i):this.style("fill").hasValue()&&("currentColor"==(n=this.style("fill")).value&&(n.value=this.style("color").value),e.fillStyle="none"==n.value?"rgba(0,0,0,0)":n.value),this.style("fill-opacity").hasValue()&&(n=(n=new P.Property("fill",e.fillStyle)).addOpacity(this.style("fill-opacity").value),e.fillStyle=n.value),this.style("stroke").isUrlDefinition()?null!=(i=this.style("stroke").getFillStyleDefinition(this,this.style("stroke-opacity")))&&(e.strokeStyle=i):this.style("stroke").hasValue()&&("currentColor"==(t=this.style("stroke")).value&&(t.value=this.style("color").value),e.strokeStyle="none"==t.value?"rgba(0,0,0,0)":t.value),this.style("stroke-opacity").hasValue()&&(t=(t=new P.Property("stroke",e.strokeStyle)).addOpacity(this.style("stroke-opacity").value),e.strokeStyle=t.value),this.style("stroke-width").hasValue()&&(n=this.style("stroke-width").toPixels(),e.lineWidth=0==n?.001:n),this.style("stroke-linecap").hasValue()&&(e.lineCap=this.style("stroke-linecap").value),this.style("stroke-linejoin").hasValue()&&(e.lineJoin=this.style("stroke-linejoin").value),this.style("stroke-miterlimit").hasValue()&&(e.miterLimit=this.style("stroke-miterlimit").value),void 0!==e.font&&(e.font=P.Font.CreateFont(this.style("font-style").value,this.style("font-variant").value,this.style("font-weight").value,this.style("font-size").hasValue()?this.style("font-size").toPixels()+"px":"",this.style("font-family").value).toString()),this.attribute("transform").hasValue()&&new P.Transform(this.attribute("transform").value).apply(e),this.attribute("clip-path").hasValue()&&null!=(i=this.attribute("clip-path").getDefinition())&&i.apply(e),this.style("opacity").hasValue()&&(e.globalAlpha=this.style("opacity").numValue())}},P.Element.RenderedElementBase.prototype=new P.Element.ElementBase,P.Element.PathElementBase=function(e){this.base=P.Element.RenderedElementBase,this.base(e),this.path=function(e){return null!=e&&e.beginPath(),new P.BoundingBox},this.renderChildren=function(e){this.path(e),P.Mouse.checkPath(this,e),""!=e.fillStyle&&e.fill(),""!=e.strokeStyle&&e.stroke();var t=this.getMarkers();if(null!=t){if(this.style("marker-start").isUrlDefinition()&&(n=this.style("marker-start").getDefinition()).render(e,t[0][0],t[0][1]),this.style("marker-mid").isUrlDefinition())for(var n=this.style("marker-mid").getDefinition(),i=1;i<t.length-1;i++)n.render(e,t[i][0],t[i][1]);this.style("marker-end").isUrlDefinition()&&(n=this.style("marker-end").getDefinition()).render(e,t[t.length-1][0],t[t.length-1][1])}},this.getBoundingBox=function(){return this.path()},this.getMarkers=function(){return null}},P.Element.PathElementBase.prototype=new P.Element.RenderedElementBase,P.Element.svg=function(e){this.base=P.Element.RenderedElementBase,this.base(e),this.baseClearContext=this.clearContext,this.clearContext=function(e){this.baseClearContext(e),P.ViewPort.RemoveCurrent()},this.baseSetContext=this.setContext,this.setContext=function(e){e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4,this.baseSetContext(e),this.attribute("x").hasValue()||(this.attribute("x",!0).value=0),this.attribute("y").hasValue()||(this.attribute("y",!0).value=0),e.translate(this.attribute("x").toPixels("x"),this.attribute("y").toPixels("y"));var t,n,i,r=P.ViewPort.width(),a=P.ViewPort.height();this.attribute("width").hasValue()||(this.attribute("width",!0).value="100%"),this.attribute("height").hasValue()||(this.attribute("height",!0).value="100%"),void 0===this.root&&(r=this.attribute("width").toPixels("x"),a=this.attribute("height").toPixels("y"),t=n=0,this.attribute("refX").hasValue()&&this.attribute("refY").hasValue()&&(n=-this.attribute("refX").toPixels("x"),t=-this.attribute("refY").toPixels("y")),e.beginPath(),e.moveTo(n,t),e.lineTo(r,t),e.lineTo(r,a),e.lineTo(n,a),e.closePath(),e.clip()),P.ViewPort.SetCurrent(r,a),this.attribute("viewBox").hasValue()&&(n=(t=P.ToNumberArray(this.attribute("viewBox").value))[0],i=t[1],r=t[2],a=t[3],P.AspectRatio(e,this.attribute("preserveAspectRatio").value,P.ViewPort.width(),r,P.ViewPort.height(),a,n,i,this.attribute("refX").value,this.attribute("refY").value),P.ViewPort.RemoveCurrent(),P.ViewPort.SetCurrent(t[2],t[3]))}},P.Element.svg.prototype=new P.Element.RenderedElementBase,P.Element.rect=function(e){this.base=P.Element.PathElementBase,this.base(e),this.path=function(e){var t=this.attribute("x").toPixels("x"),n=this.attribute("y").toPixels("y"),i=this.attribute("width").toPixels("x"),r=this.attribute("height").toPixels("y"),a=this.attribute("rx").toPixels("x"),s=this.attribute("ry").toPixels("y");return this.attribute("rx").hasValue()&&!this.attribute("ry").hasValue()&&(s=a),this.attribute("ry").hasValue()&&!this.attribute("rx").hasValue()&&(a=s),a=Math.min(a,i/2),s=Math.min(s,r/2),null!=e&&(e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+i-a,n),e.quadraticCurveTo(t+i,n,t+i,n+s),e.lineTo(t+i,n+r-s),e.quadraticCurveTo(t+i,n+r,t+i-a,n+r),e.lineTo(t+a,n+r),e.quadraticCurveTo(t,n+r,t,n+r-s),e.lineTo(t,n+s),e.quadraticCurveTo(t,n,t+a,n),e.closePath()),new P.BoundingBox(t,n,t+i,n+r)}},P.Element.rect.prototype=new P.Element.PathElementBase,P.Element.circle=function(e){this.base=P.Element.PathElementBase,this.base(e),this.path=function(e){var t=this.attribute("cx").toPixels("x"),n=this.attribute("cy").toPixels("y"),i=this.attribute("r").toPixels();return null!=e&&(e.beginPath(),e.arc(t,n,i,0,2*Math.PI,!0),e.closePath()),new P.BoundingBox(t-i,n-i,t+i,n+i)}},P.Element.circle.prototype=new P.Element.PathElementBase,P.Element.ellipse=function(e){this.base=P.Element.PathElementBase,this.base(e),this.path=function(e){var t=(Math.sqrt(2)-1)/3*4,n=this.attribute("rx").toPixels("x"),i=this.attribute("ry").toPixels("y"),r=this.attribute("cx").toPixels("x"),a=this.attribute("cy").toPixels("y");return null!=e&&(e.beginPath(),e.moveTo(r,a-i),e.bezierCurveTo(r+t*n,a-i,r+n,a-t*i,r+n,a),e.bezierCurveTo(r+n,a+t*i,r+t*n,a+i,r,a+i),e.bezierCurveTo(r-t*n,a+i,r-n,a+t*i,r-n,a),e.bezierCurveTo(r-n,a-t*i,r-t*n,a-i,r,a-i),e.closePath()),new P.BoundingBox(r-n,a-i,r+n,a+i)}},P.Element.ellipse.prototype=new P.Element.PathElementBase,P.Element.line=function(e){this.base=P.Element.PathElementBase,this.base(e),this.getPoints=function(){return[new P.Point(this.attribute("x1").toPixels("x"),this.attribute("y1").toPixels("y")),new P.Point(this.attribute("x2").toPixels("x"),this.attribute("y2").toPixels("y"))]},this.path=function(e){var t=this.getPoints();return null!=e&&(e.beginPath(),e.moveTo(t[0].x,t[0].y),e.lineTo(t[1].x,t[1].y)),new P.BoundingBox(t[0].x,t[0].y,t[1].x,t[1].y)},this.getMarkers=function(){var e=this.getPoints(),t=e[0].angleTo(e[1]);return[[e[0],t],[e[1],t]]}},P.Element.line.prototype=new P.Element.PathElementBase,P.Element.polyline=function(e){this.base=P.Element.PathElementBase,this.base(e),this.points=P.CreatePath(this.attribute("points").value),this.path=function(e){var t=new P.BoundingBox(this.points[0].x,this.points[0].y);null!=e&&(e.beginPath(),e.moveTo(this.points[0].x,this.points[0].y));for(var n=1;n<this.points.length;n++)t.addPoint(this.points[n].x,this.points[n].y),null!=e&&e.lineTo(this.points[n].x,this.points[n].y);return t},this.getMarkers=function(){for(var e=[],t=0;t<this.points.length-1;t++)e.push([this.points[t],this.points[t].angleTo(this.points[t+1])]);return e.push([this.points[this.points.length-1],e[e.length-1][1]]),e}},P.Element.polyline.prototype=new P.Element.PathElementBase,P.Element.polygon=function(e){this.base=P.Element.polyline,this.base(e),this.basePath=this.path,this.path=function(e){var t=this.basePath(e);return null!=e&&(e.lineTo(this.points[0].x,this.points[0].y),e.closePath()),t}},P.Element.polygon.prototype=new P.Element.polyline,P.Element.path=function(e){this.base=P.Element.PathElementBase,this.base(e);e=this.attribute("d").value;e=(e=(e=(e=(e=(e=(e=(e=e.replace(/,/gm," ")).replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,"$1 $2")).replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2")).replace(/([0-9])([+\-])/gm,"$1 $2")).replace(/(\.[0-9]*)(\.)/gm,"$1 $2")).replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,"$1 $3 $4 "),e=P.compressSpaces(e),e=P.trim(e),this.PathParser=new function(e){this.tokens=e.split(" "),this.reset=function(){this.i=-1,this.command="",this.previousCommand="",this.start=new P.Point(0,0),this.control=new P.Point(0,0),this.current=new P.Point(0,0),this.points=[],this.angles=[]},this.isEnd=function(){return this.i>=this.tokens.length-1},this.isCommandOrEnd=function(){return!!this.isEnd()||null!=this.tokens[this.i+1].match(/^[A-Za-z]$/)},this.isRelativeCommand=function(){switch(this.command){case"m":case"l":case"h":case"v":case"c":case"s":case"q":case"t":case"a":case"z":return!0}return!1},this.getToken=function(){return this.i++,this.tokens[this.i]},this.getScalar=function(){return parseFloat(this.getToken())},this.nextCommand=function(){this.previousCommand=this.command,this.command=this.getToken()},this.getPoint=function(){var e=new P.Point(this.getScalar(),this.getScalar());return this.makeAbsolute(e)},this.getAsControlPoint=function(){var e=this.getPoint();return this.control=e},this.getAsCurrentPoint=function(){var e=this.getPoint();return this.current=e},this.getReflectedControlPoint=function(){return"c"!=this.previousCommand.toLowerCase()&&"s"!=this.previousCommand.toLowerCase()?this.current:new P.Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)},this.makeAbsolute=function(e){return this.isRelativeCommand()&&(e.x+=this.current.x,e.y+=this.current.y),e},this.addMarker=function(e,t,n){null!=n&&0<this.angles.length&&null==this.angles[this.angles.length-1]&&(this.angles[this.angles.length-1]=this.points[this.points.length-1].angleTo(n)),this.addMarkerAngle(e,null==t?null:t.angleTo(e))},this.addMarkerAngle=function(e,t){this.points.push(e),this.angles.push(t)},this.getMarkerPoints=function(){return this.points},this.getMarkerAngles=function(){for(var e=0;e<this.angles.length;e++)if(null==this.angles[e])for(var t=e+1;t<this.angles.length;t++)if(null!=this.angles[t]){this.angles[e]=this.angles[t];break}return this.angles}}(e),this.path=function(e){var t=this.PathParser,n=(t.reset(),new P.BoundingBox);for(null!=e&&e.beginPath();!t.isEnd();)switch(t.nextCommand(),t.command){case"M":case"m":var i=t.getAsCurrentPoint();for(t.addMarker(i),n.addPoint(i.x,i.y),null!=e&&e.moveTo(i.x,i.y),t.start=t.current;!t.isCommandOrEnd();){i=t.getAsCurrentPoint();t.addMarker(i,t.start),n.addPoint(i.x,i.y),null!=e&&e.lineTo(i.x,i.y)}break;case"L":case"l":for(;!t.isCommandOrEnd();){var r=t.current,i=t.getAsCurrentPoint();t.addMarker(i,r),n.addPoint(i.x,i.y),null!=e&&e.lineTo(i.x,i.y)}break;case"H":case"h":for(;!t.isCommandOrEnd();){var a=new P.Point((t.isRelativeCommand()?t.current.x:0)+t.getScalar(),t.current.y);t.addMarker(a,t.current),t.current=a,n.addPoint(t.current.x,t.current.y),null!=e&&e.lineTo(t.current.x,t.current.y)}break;case"V":case"v":for(;!t.isCommandOrEnd();){a=new P.Point(t.current.x,(t.isRelativeCommand()?t.current.y:0)+t.getScalar());t.addMarker(a,t.current),t.current=a,n.addPoint(t.current.x,t.current.y),null!=e&&e.lineTo(t.current.x,t.current.y)}break;case"C":case"c":for(;!t.isCommandOrEnd();){var s=t.current,o=t.getPoint(),l=t.getAsControlPoint(),h=t.getAsCurrentPoint();t.addMarker(h,l,o),n.addBezierCurve(s.x,s.y,o.x,o.y,l.x,l.y,h.x,h.y),null!=e&&e.bezierCurveTo(o.x,o.y,l.x,l.y,h.x,h.y)}break;case"S":case"s":for(;!t.isCommandOrEnd();){s=t.current,o=t.getReflectedControlPoint(),l=t.getAsControlPoint(),h=t.getAsCurrentPoint();t.addMarker(h,l,o),n.addBezierCurve(s.x,s.y,o.x,o.y,l.x,l.y,h.x,h.y),null!=e&&e.bezierCurveTo(o.x,o.y,l.x,l.y,h.x,h.y)}break;case"Q":case"q":for(;!t.isCommandOrEnd();){s=t.current,l=t.getAsControlPoint(),h=t.getAsCurrentPoint();t.addMarker(h,l,l),n.addQuadraticCurve(s.x,s.y,l.x,l.y,h.x,h.y),null!=e&&e.quadraticCurveTo(l.x,l.y,h.x,h.y)}break;case"T":case"t":for(;!t.isCommandOrEnd();){s=t.current,l=t.getReflectedControlPoint(),h=(t.control=l,t.getAsCurrentPoint());t.addMarker(h,l,l),n.addQuadraticCurve(s.x,s.y,l.x,l.y,h.x,h.y),null!=e&&e.quadraticCurveTo(l.x,l.y,h.x,h.y)}break;case"A":case"a":for(;!t.isCommandOrEnd();){function u(e,t){return(e[0]*t[1]<e[1]*t[0]?-1:1)*Math.acos(v(e,t))}var s=t.current,c=t.getScalar(),f=t.getScalar(),d=t.getScalar()*(Math.PI/180),p=t.getScalar(),g=t.getScalar(),h=t.getAsCurrentPoint(),m=new P.Point(Math.cos(d)*(s.x-h.x)/2+Math.sin(d)*(s.y-h.y)/2,-Math.sin(d)*(s.x-h.x)/2+Math.cos(d)*(s.y-h.y)/2),x=Math.pow(m.x,2)/Math.pow(c,2)+Math.pow(m.y,2)/Math.pow(f,2),x=(1<x&&(c*=Math.sqrt(x),f*=Math.sqrt(x)),(p==g?-1:1)*Math.sqrt((Math.pow(c,2)*Math.pow(f,2)-Math.pow(c,2)*Math.pow(m.y,2)-Math.pow(f,2)*Math.pow(m.x,2))/(Math.pow(c,2)*Math.pow(m.y,2)+Math.pow(f,2)*Math.pow(m.x,2)))),p=(isNaN(x)&&(x=0),new P.Point(x*c*m.y/f,x*-f*m.x/c)),x=new P.Point((s.x+h.x)/2+Math.cos(d)*p.x-Math.sin(d)*p.y,(s.y+h.y)/2+Math.sin(d)*p.x+Math.cos(d)*p.y),y=function(e){return Math.sqrt(Math.pow(e[0],2)+Math.pow(e[1],2))},v=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(y(e)*y(t))},b=u([1,0],[(m.x-p.x)/c,(m.y-p.y)/f]),w=[(m.x-p.x)/c,(m.y-p.y)/f],m=[(-m.x-p.x)/c,(-m.y-p.y)/f],p=u(w,m),_=(v(w,m)<=-1&&(p=Math.PI),1-g?1:-1),w=b+(p=1<=v(w,m)?0:p)/2*_,m=new P.Point(x.x+c*Math.cos(w),x.y+f*Math.sin(w));t.addMarkerAngle(m,w-_*Math.PI/2),t.addMarkerAngle(h,w-_*Math.PI),n.addPoint(h.x,h.y),null!=e&&(v=f<c?c:f,m=f<c?1:c/f,w=f<c?f/c:1,e.translate(x.x,x.y),e.rotate(d),e.scale(m,w),e.arc(0,0,v,b,b+p,1-g),e.scale(1/m,1/w),e.rotate(-d),e.translate(-x.x,-x.y))}break;case"Z":case"z":null!=e&&e.closePath(),t.current=t.start}return n},this.getMarkers=function(){for(var e=this.PathParser.getMarkerPoints(),t=this.PathParser.getMarkerAngles(),n=[],i=0;i<e.length;i++)n.push([e[i],t[i]]);return n}},P.Element.path.prototype=new P.Element.PathElementBase,P.Element.pattern=function(e){this.base=P.Element.ElementBase,this.base(e),this.createPattern=function(e,t){var n=this.attribute("width").toPixels("x",!0),i=this.attribute("height").toPixels("y",!0),r=new P.Element.svg,a=(r.attributes.viewBox=new P.Property("viewBox",this.attribute("viewBox").value),r.attributes.width=new P.Property("width",n+"px"),r.attributes.height=new P.Property("height",i+"px"),r.attributes.transform=new P.Property("transform",this.attribute("patternTransform").value),r.children=this.children,document.createElement("canvas")),s=(a.width=n,a.height=i,a.getContext("2d"));this.attribute("x").hasValue()&&this.attribute("y").hasValue()&&s.translate(this.attribute("x").toPixels("x",!0),this.attribute("y").toPixels("y",!0));for(var o=-1;o<=1;o++)for(var l=-1;l<=1;l++)s.save(),s.translate(o*a.width,l*a.height),r.render(s),s.restore();return e.createPattern(a,"repeat")}},P.Element.pattern.prototype=new P.Element.ElementBase,P.Element.marker=function(e){this.base=P.Element.ElementBase,this.base(e),this.baseRender=this.render,this.render=function(e,t,n){e.translate(t.x,t.y),"auto"==this.attribute("orient").valueOrDefault("auto")&&e.rotate(n),"strokeWidth"==this.attribute("markerUnits").valueOrDefault("strokeWidth")&&e.scale(e.lineWidth,e.lineWidth),e.save();var i=new P.Element.svg;i.attributes.viewBox=new P.Property("viewBox",this.attribute("viewBox").value),i.attributes.refX=new P.Property("refX",this.attribute("refX").value),i.attributes.refY=new P.Property("refY",this.attribute("refY").value),i.attributes.width=new P.Property("width",this.attribute("markerWidth").value),i.attributes.height=new P.Property("height",this.attribute("markerHeight").value),i.attributes.fill=new P.Property("fill",this.attribute("fill").valueOrDefault("black")),i.attributes.stroke=new P.Property("stroke",this.attribute("stroke").valueOrDefault("none")),i.children=this.children,i.render(e),e.restore(),"strokeWidth"==this.attribute("markerUnits").valueOrDefault("strokeWidth")&&e.scale(1/e.lineWidth,1/e.lineWidth),"auto"==this.attribute("orient").valueOrDefault("auto")&&e.rotate(-n),e.translate(-t.x,-t.y)}},P.Element.marker.prototype=new P.Element.ElementBase,P.Element.defs=function(e){this.base=P.Element.ElementBase,this.base(e),this.render=function(e){}},P.Element.defs.prototype=new P.Element.ElementBase,P.Element.GradientBase=function(e){this.base=P.Element.ElementBase,this.base(e),this.gradientUnits=this.attribute("gradientUnits").valueOrDefault("objectBoundingBox"),this.stops=[];for(var t=0;t<this.children.length;t++){var n=this.children[t];"stop"==n.type&&this.stops.push(n)}this.getGradient=function(){},this.createGradient=function(e,t,n){function i(e){return n.hasValue()?new P.Property("color",e).addOpacity(n.value).value:e}var r=this,a=(this.attribute("xlink:href").hasValue()&&(r=this.attribute("xlink:href").getDefinition()),this.getGradient(e,t));if(null==a)return i(r.stops[r.stops.length-1].color);for(var s,o=0;o<r.stops.length;o++)a.addColorStop(r.stops[o].offset,i(r.stops[o].color));return this.attribute("gradientTransform").hasValue()?(e=P.ViewPort.viewPorts[0],(t=new P.Element.rect).attributes.x=new P.Property("x",-P.MAX_VIRTUAL_PIXELS/3),t.attributes.y=new P.Property("y",-P.MAX_VIRTUAL_PIXELS/3),t.attributes.width=new P.Property("width",P.MAX_VIRTUAL_PIXELS),t.attributes.height=new P.Property("height",P.MAX_VIRTUAL_PIXELS),(s=new P.Element.g).attributes.transform=new P.Property("transform",this.attribute("gradientTransform").value),s.children=[t],(t=new P.Element.svg).attributes.x=new P.Property("x",0),t.attributes.y=new P.Property("y",0),t.attributes.width=new P.Property("width",e.width),t.attributes.height=new P.Property("height",e.height),t.children=[s],(s=document.createElement("canvas")).width=e.width,s.height=e.height,(e=s.getContext("2d")).fillStyle=a,t.render(e),e.createPattern(s,"no-repeat")):a}},P.Element.GradientBase.prototype=new P.Element.ElementBase,P.Element.linearGradient=function(e){this.base=P.Element.GradientBase,this.base(e),this.getGradient=function(e,t){var t=t.getBoundingBox(),n=(this.attribute("x1").hasValue()||this.attribute("y1").hasValue()||this.attribute("x2").hasValue()||this.attribute("y2").hasValue()||(this.attribute("x1",!0).value=0,this.attribute("y1",!0).value=0,this.attribute("x2",!0).value=1,this.attribute("y2",!0).value=0),"objectBoundingBox"==this.gradientUnits?t.x()+t.width()*this.attribute("x1").numValue():this.attribute("x1").toPixels("x")),i="objectBoundingBox"==this.gradientUnits?t.y()+t.height()*this.attribute("y1").numValue():this.attribute("y1").toPixels("y"),r="objectBoundingBox"==this.gradientUnits?t.x()+t.width()*this.attribute("x2").numValue():this.attribute("x2").toPixels("x"),t="objectBoundingBox"==this.gradientUnits?t.y()+t.height()*this.attribute("y2").numValue():this.attribute("y2").toPixels("y");return n==r&&i==t?null:e.createLinearGradient(n,i,r,t)}},P.Element.linearGradient.prototype=new P.Element.GradientBase,P.Element.radialGradient=function(e){this.base=P.Element.GradientBase,this.base(e),this.getGradient=function(e,t){var t=t.getBoundingBox(),n=(this.attribute("cx").hasValue()||(this.attribute("cx",!0).value="50%"),this.attribute("cy").hasValue()||(this.attribute("cy",!0).value="50%"),this.attribute("r").hasValue()||(this.attribute("r",!0).value="50%"),"objectBoundingBox"==this.gradientUnits?t.x()+t.width()*this.attribute("cx").numValue():this.attribute("cx").toPixels("x")),i="objectBoundingBox"==this.gradientUnits?t.y()+t.height()*this.attribute("cy").numValue():this.attribute("cy").toPixels("y"),r=n,a=i,t=(this.attribute("fx").hasValue()&&(r="objectBoundingBox"==this.gradientUnits?t.x()+t.width()*this.attribute("fx").numValue():this.attribute("fx").toPixels("x")),this.attribute("fy").hasValue()&&(a="objectBoundingBox"==this.gradientUnits?t.y()+t.height()*this.attribute("fy").numValue():this.attribute("fy").toPixels("y")),"objectBoundingBox"==this.gradientUnits?(t.width()+t.height())/2*this.attribute("r").numValue():this.attribute("r").toPixels());return e.createRadialGradient(r,a,0,n,i,t)}},P.Element.radialGradient.prototype=new P.Element.GradientBase,P.Element.stop=function(e){this.base=P.Element.ElementBase,this.base(e),this.offset=this.attribute("offset").numValue(),this.offset<0&&(this.offset=0),1<this.offset&&(this.offset=1);e=this.style("stop-color");this.style("stop-opacity").hasValue()&&(e=e.addOpacity(this.style("stop-opacity").value)),this.color=e.value},P.Element.stop.prototype=new P.Element.ElementBase,P.Element.AnimateBase=function(e){this.base=P.Element.ElementBase,this.base(e),P.Animations.push(this),this.duration=0,this.begin=this.attribute("begin").toMilliseconds(),this.maxDuration=this.begin+this.attribute("dur").toMilliseconds(),this.getProperty=function(){var e=this.attribute("attributeType").value,t=this.attribute("attributeName").value;return"CSS"==e?this.parent.style(t,!0):this.parent.attribute(t,!0)},this.initialValue=null,this.initialUnits="",this.removed=!1,this.calcValue=function(){return""},this.update=function(e){if(null==this.initialValue&&(this.initialValue=this.getProperty().value,this.initialUnits=this.getProperty().getUnits()),this.duration>this.maxDuration){if("indefinite"!=this.attribute("repeatCount").value&&"indefinite"!=this.attribute("repeatDur").value)return"remove"==this.attribute("fill").valueOrDefault("remove")&&!this.removed&&(this.removed=!0,this.getProperty().value=this.initialValue,!0);this.duration=0}this.duration=this.duration+e;var t,e=!1;return this.begin<this.duration&&(t=this.calcValue(),this.attribute("type").hasValue()&&(t=this.attribute("type").value+"("+t+")"),this.getProperty().value=t,e=!0),e},this.from=this.attribute("from"),this.to=this.attribute("to"),this.values=this.attribute("values"),this.values.hasValue()&&(this.values.value=this.values.value.split(";")),this.progress=function(){var e,t,n,i={progress:(this.duration-this.begin)/(this.maxDuration-this.begin)};return this.values.hasValue()?(e=i.progress*(this.values.value.length-1),t=Math.floor(e),n=Math.ceil(e),i.from=new P.Property("from",parseFloat(this.values.value[t])),i.to=new P.Property("to",parseFloat(this.values.value[n])),i.progress=(e-t)/(n-t)):(i.from=this.from,i.to=this.to),i}},P.Element.AnimateBase.prototype=new P.Element.ElementBase,P.Element.animate=function(e){this.base=P.Element.AnimateBase,this.base(e),this.calcValue=function(){var e=this.progress();return e.from.numValue()+(e.to.numValue()-e.from.numValue())*e.progress+this.initialUnits}},P.Element.animate.prototype=new P.Element.AnimateBase,P.Element.animateColor=function(e){this.base=P.Element.AnimateBase,this.base(e),this.calcValue=function(){var e,t,n=this.progress(),i=new f(n.from.value),r=new f(n.to.value);return i.ok&&r.ok?(e=i.r+(r.r-i.r)*n.progress,t=i.g+(r.g-i.g)*n.progress,r=i.b+(r.b-i.b)*n.progress,"rgb("+parseInt(e,10)+","+parseInt(t,10)+","+parseInt(r,10)+")"):this.attribute("from").value}},P.Element.animateColor.prototype=new P.Element.AnimateBase,P.Element.animateTransform=function(e){this.base=P.Element.AnimateBase,this.base(e),this.calcValue=function(){for(var e=this.progress(),t=P.ToNumberArray(e.from.value),n=P.ToNumberArray(e.to.value),i="",r=0;r<t.length;r++)i+=t[r]+(n[r]-t[r])*e.progress+" ";return i}},P.Element.animateTransform.prototype=new P.Element.animate,P.Element.font=function(e){this.base=P.Element.ElementBase,this.base(e),this.horizAdvX=this.attribute("horiz-adv-x").numValue(),this.isRTL=!1,this.isArabic=!1,this.fontFace=null,this.missingGlyph=null,this.glyphs=[];for(var t=0;t<this.children.length;t++){var n=this.children[t];"font-face"==n.type?(this.fontFace=n).style("font-family").hasValue()&&(P.Definitions[n.style("font-family").value]=this):"missing-glyph"==n.type?this.missingGlyph=n:"glyph"==n.type&&(""!=n.arabicForm?(this.isRTL=!0,this.isArabic=!0,void 0===this.glyphs[n.unicode]&&(this.glyphs[n.unicode]=[]),this.glyphs[n.unicode][n.arabicForm]=n):this.glyphs[n.unicode]=n)}},P.Element.font.prototype=new P.Element.ElementBase,P.Element.fontface=function(e){this.base=P.Element.ElementBase,this.base(e),this.ascent=this.attribute("ascent").value,this.descent=this.attribute("descent").value,this.unitsPerEm=this.attribute("units-per-em").numValue()},P.Element.fontface.prototype=new P.Element.ElementBase,P.Element.missingglyph=function(e){this.base=P.Element.path,this.base(e),this.horizAdvX=0},P.Element.missingglyph.prototype=new P.Element.path,P.Element.glyph=function(e){this.base=P.Element.path,this.base(e),this.horizAdvX=this.attribute("horiz-adv-x").numValue(),this.unicode=this.attribute("unicode").value,this.arabicForm=this.attribute("arabic-form").value},P.Element.glyph.prototype=new P.Element.path,P.Element.text=function(e){this.captureTextNodes=!0,this.base=P.Element.RenderedElementBase,this.base(e),this.baseSetContext=this.setContext,this.setContext=function(e){this.baseSetContext(e),this.style("dominant-baseline").hasValue()&&(e.textBaseline=this.style("dominant-baseline").value),this.style("alignment-baseline").hasValue()&&(e.textBaseline=this.style("alignment-baseline").value)},this.renderChildren=function(e){this.textAnchor=this.style("text-anchor").valueOrDefault("start"),this.x=this.attribute("x").toPixels("x"),this.y=this.attribute("y").toPixels("y");for(var t=0;t<this.children.length;t++)this.renderChild(e,this,t)},this.renderChild=function(e,t,n){var i=t.children[n],t=(i.attribute("x").hasValue()?i.x=i.attribute("x").toPixels("x"):(this.attribute("dx").hasValue()&&(this.y+=this.attribute("dx").toPixels("x")),i.attribute("dx").hasValue()&&(this.x+=i.attribute("dx").toPixels("x")),i.x=this.x),i.measureText(e));if("start"!=this.textAnchor&&(0==n||i.attribute("x").hasValue())){for(var r=t,a=n+1;a<this.children.length;a++){var s=this.children[a];if(s.attribute("x").hasValue())break;r+=s.measureText(e)}i.x-="end"==this.textAnchor?r:r/2}this.x=i.x+t,i.attribute("y").hasValue()?i.y=i.attribute("y").toPixels("y"):(this.attribute("dy").hasValue()&&(this.y+=this.attribute("dy").toPixels("y")),i.attribute("dy").hasValue()&&(this.y+=i.attribute("dy").toPixels("y")),i.y=this.y),this.y=i.y,i.render(e);for(n=0;n<i.children.length;n++)this.renderChild(e,i,n)}},P.Element.text.prototype=new P.Element.RenderedElementBase,P.Element.TextElementBase=function(e){this.base=P.Element.RenderedElementBase,this.base(e),this.getGlyph=function(e,t,n){var i,r=t[n],a=null;return a=null==(a=e.isArabic&&(i="isolated",(0==n||" "==t[n-1])&&n<t.length-2&&" "!=t[n+1]&&(i="terminal"),0<n&&" "!=t[n-1]&&n<t.length-2&&" "!=t[n+1]&&(i="medial"),0<n&&" "!=t[n-1]&&(n==t.length-1||" "==t[n+1])&&(i="initial"),void 0===e.glyphs[r]||null!=(a=e.glyphs[r][i])||"glyph"!=e.glyphs[r].type)?a:e.glyphs[r])?e.missingGlyph:a},this.renderChildren=function(e){var t=this.parent.style("font-family").getDefinition();if(null!=t)for(var n=this.parent.style("font-size").numValueOrDefault(P.Font.Parse(P.ctx.font).fontSize),i=this.parent.style("font-style").valueOrDefault(P.Font.Parse(P.ctx.font).fontStyle),r=this.getText(),a=(t.isRTL&&(r=r.split("").reverse().join("")),P.ToNumberArray(this.parent.attribute("dx").value)),s=0;s<r.length;s++){var o=this.getGlyph(t,r,s),l=n/t.fontFace.unitsPerEm,h=(e.translate(this.x,this.y),e.scale(l,-l),e.lineWidth);e.lineWidth=e.lineWidth*t.fontFace.unitsPerEm/n,"italic"==i&&e.transform(1,0,.4,1,0,0),o.render(e),"italic"==i&&e.transform(1,0,-.4,1,0,0),e.lineWidth=h,e.scale(1/l,-1/l),e.translate(-this.x,-this.y),this.x+=n*(o.horizAdvX||t.horizAdvX)/t.fontFace.unitsPerEm,void 0===a[s]||isNaN(a[s])||(this.x+=a[s])}else""!=e.fillStyle&&e.fillText(P.compressSpaces(this.getText()),this.x,this.y),""!=e.strokeStyle&&e.strokeText(P.compressSpaces(this.getText()),this.x,this.y)},this.getText=function(){},this.measureText=function(e){var t=this.parent.style("font-family").getDefinition();if(null!=t){for(var n=this.parent.style("font-size").numValueOrDefault(P.Font.Parse(P.ctx.font).fontSize),i=0,r=this.getText(),a=(t.isRTL&&(r=r.split("").reverse().join("")),P.ToNumberArray(this.parent.attribute("dx").value)),s=0;s<r.length;s++)i+=(this.getGlyph(t,r,s).horizAdvX||t.horizAdvX)*n/t.fontFace.unitsPerEm,void 0===a[s]||isNaN(a[s])||(i+=a[s]);return i}var o=P.compressSpaces(this.getText());if(!e.measureText)return 10*o.length;e.save(),this.setContext(e);o=e.measureText(o).width;return e.restore(),o}},P.Element.TextElementBase.prototype=new P.Element.RenderedElementBase,P.Element.tspan=function(e){this.captureTextNodes=!0,this.base=P.Element.TextElementBase,this.base(e),this.text=e.nodeValue||e.text||"",this.getText=function(){return this.text}},P.Element.tspan.prototype=new P.Element.TextElementBase,P.Element.tref=function(e){this.base=P.Element.TextElementBase,this.base(e),this.getText=function(){var e=this.attribute("xlink:href").getDefinition();if(null!=e)return e.children[0].getText()}},P.Element.tref.prototype=new P.Element.TextElementBase,P.Element.a=function(e){this.base=P.Element.TextElementBase,this.base(e),this.hasText=!0;for(var t=0;t<e.childNodes.length;t++)3!=e.childNodes[t].nodeType&&(this.hasText=!1);this.text=this.hasText?e.childNodes[0].nodeValue:"",this.getText=function(){return this.text},this.baseRenderChildren=this.renderChildren,this.renderChildren=function(e){var t;this.hasText?(this.baseRenderChildren(e),t=new P.Property("fontSize",P.Font.Parse(P.ctx.font).fontSize),P.Mouse.checkBoundingBox(this,new P.BoundingBox(this.x,this.y-t.toPixels("y"),this.x+this.measureText(e),this.y))):((t=new P.Element.g).children=this.children,t.parent=this,t.render(e))},this.onclick=function(){window.open(this.attribute("xlink:href").value)},this.onmousemove=function(){P.ctx.canvas.style.cursor="pointer"}},P.Element.a.prototype=new P.Element.TextElementBase,P.Element.image=function(e){this.base=P.Element.RenderedElementBase,this.base(e);var t,n=this.attribute("xlink:href").value,a=n.match(/\.svg$/);P.Images.push(this),this.loaded=!1,a?(this.img=P.ajax(n),this.loaded=!0):(this.img=document.createElement("img"),(t=this).img.onload=function(){t.loaded=!0},this.img.onerror=function(){console&&console.log('ERROR: image "'+n+'" not found'),t.loaded=!0},this.img.src=n),this.renderChildren=function(e){var t=this.attribute("x").toPixels("x"),n=this.attribute("y").toPixels("y"),i=this.attribute("width").toPixels("x"),r=this.attribute("height").toPixels("y");0!=i&&0!=r&&(e.save(),a?e.drawSvg(this.img,t,n,i,r):(e.translate(t,n),P.AspectRatio(e,this.attribute("preserveAspectRatio").value,i,this.img.width,r,this.img.height,0,0),e.drawImage(this.img,0,0)),e.restore())},this.getBoundingBox=function(){var e=this.attribute("x").toPixels("x"),t=this.attribute("y").toPixels("y"),n=this.attribute("width").toPixels("x"),i=this.attribute("height").toPixels("y");return new P.BoundingBox(e,t,e+n,t+i)}},P.Element.image.prototype=new P.Element.RenderedElementBase,P.Element.g=function(e){this.base=P.Element.RenderedElementBase,this.base(e),this.getBoundingBox=function(){for(var e=new P.BoundingBox,t=0;t<this.children.length;t++)e.addBoundingBox(this.children[t].getBoundingBox());return e}},P.Element.g.prototype=new P.Element.RenderedElementBase,P.Element.symbol=function(e){this.base=P.Element.RenderedElementBase,this.base(e),this.baseSetContext=this.setContext,this.setContext=function(e){var t,n,i;this.baseSetContext(e),this.attribute("viewBox").hasValue()&&(n=(t=P.ToNumberArray(this.attribute("viewBox").value))[0],i=t[1],width=t[2],height=t[3],P.AspectRatio(e,this.attribute("preserveAspectRatio").value,this.attribute("width").toPixels("x"),width,this.attribute("height").toPixels("y"),height,n,i),P.ViewPort.SetCurrent(t[2],t[3]))}},P.Element.symbol.prototype=new P.Element.RenderedElementBase,P.Element.style=function(e){this.base=P.Element.ElementBase,this.base(e);for(var t="",n=0;n<e.childNodes.length;n++)t+=e.childNodes[n].nodeValue;t=t.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"");for(var i=(t=P.compressSpaces(t)).split("}"),n=0;n<i.length;n++)if(""!=P.trim(i[n]))for(var r=i[n].split("{"),a=r[0].split(","),s=r[1].split(";"),o=0;o<a.length;o++){var l=P.trim(a[o]);if(""!=l){for(var h={},u=0;u<s.length;u++){var c=s[u].indexOf(":"),f=s[u].substr(0,c),c=s[u].substr(c+1,s[u].length-c);null!=f&&null!=c&&(h[P.trim(f)]=new P.Property(P.trim(f),P.trim(c)))}if(P.Styles[l]=h,"@font-face"==l)for(var d=h["font-family"].value.replace(/"/g,""),p=h.src.value.split(","),g=0;g<p.length;g++)if(0<p[g].indexOf('format("svg")'))for(var m=p[g].indexOf("url"),x=p[g].indexOf(")",m),x=p[g].substr(m+5,x-m-6),y=P.parseXml(P.ajax(x)).getElementsByTagName("font"),v=0;v<y.length;v++){var b=P.CreateElement(y[v]);P.Definitions[d]=b}}}},P.Element.style.prototype=new P.Element.ElementBase,P.Element.use=function(e){this.base=P.Element.RenderedElementBase,this.base(e),this.baseSetContext=this.setContext,this.setContext=function(e){this.baseSetContext(e),this.attribute("x").hasValue()&&e.translate(this.attribute("x").toPixels("x"),0),this.attribute("y").hasValue()&&e.translate(0,this.attribute("y").toPixels("y"))},this.getDefinition=function(){var e=this.attribute("xlink:href").getDefinition();return this.attribute("width").hasValue()&&(e.attribute("width",!0).value=this.attribute("width").value),this.attribute("height").hasValue()&&(e.attribute("height",!0).value=this.attribute("height").value),e},this.path=function(e){var t=this.getDefinition();null!=t&&t.path(e)},this.renderChildren=function(e){var t,n=this.getDefinition();null!=n&&(t=n.parent,n.parent=null,n.render(e),n.parent=t)}},P.Element.use.prototype=new P.Element.RenderedElementBase,P.Element.mask=function(e){this.base=P.Element.ElementBase,this.base(e),this.apply=function(e,t){var n=this.attribute("x").toPixels("x"),i=this.attribute("y").toPixels("y"),r=this.attribute("width").toPixels("x"),a=this.attribute("height").toPixels("y"),s=t.attribute("mask").value,o=(t.attribute("mask").value="",document.createElement("canvas")),l=(o.width=n+r,o.height=i+a,o.getContext("2d")),h=(this.renderChildren(l),document.createElement("canvas")),u=(h.width=n+r,h.height=i+a,h.getContext("2d"));t.render(u),u.globalCompositeOperation="destination-in",u.fillStyle=l.createPattern(o,"no-repeat"),u.fillRect(0,0,n+r,i+a),e.fillStyle=u.createPattern(h,"no-repeat"),e.fillRect(0,0,n+r,i+a),t.attribute("mask").value=s},this.render=function(e){}},P.Element.mask.prototype=new P.Element.ElementBase,P.Element.clipPath=function(e){this.base=P.Element.ElementBase,this.base(e),this.apply=function(e){for(var t=0;t<this.children.length;t++)this.children[t].path&&(this.children[t].path(e),e.clip())},this.render=function(e){}},P.Element.clipPath.prototype=new P.Element.ElementBase,P.Element.filter=function(e){this.base=P.Element.ElementBase,this.base(e),this.apply=function(e,t){var n=t.getBoundingBox(),i=this.attribute("x").toPixels("x"),r=this.attribute("y").toPixels("y"),a=("image"!=t.type&&0!=i&&0!=r||(i=n.x1,r=n.y1),this.attribute("width").toPixels("x")),s=this.attribute("height").toPixels("y"),n=("image"!=t.type&&0!=a&&0!=s||(a=n.width(),s=n.height()),t.style("filter").value),o=(t.style("filter").value="","image"==t.type?0:.2),l=o*a,h=o*s,o=document.createElement("canvas"),u=(o.width=a+2*l,o.height=s+2*h,o.getContext("2d"));u.translate(l-i,h-r),t.render(u);for(var c=0;c<this.children.length;c++)this.children[c].apply(u,0,0,a+2*l,s+2*h);e.drawImage(o,0,0,a+2*l,s+2*h,i-l,r-h,a+2*l,s+2*h),t.style("filter",!0).value=n},this.render=function(e){}},P.Element.filter.prototype=new P.Element.ElementBase,P.Element.feColorMatrix=function(e){function o(e,t,n,i,r,a){return e[n*i*4+4*t+a]}function l(e,t,n,i,r,a,s){e[n*i*4+4*t+a]=s}this.base=P.Element.ElementBase,this.base(e),this.apply=function(e,t,n,i,r){for(var a=e.getImageData(0,0,i,r),n=0;n<r;n++)for(t=0;t<i;t++){var s=(o(a.data,t,n,i,0,0)+o(a.data,t,n,i,0,1)+o(a.data,t,n,i,0,2))/3;l(a.data,t,n,i,0,0,s),l(a.data,t,n,i,0,1,s),l(a.data,t,n,i,0,2,s)}e.clearRect(0,0,i,r),e.putImageData(a,0,0)}},P.Element.filter.prototype=new P.Element.feColorMatrix,P.Element.feGaussianBlur=function(e){function a(e,t,n,i,r){for(var a=0;a<r;a++)for(var s=0;s<i;s++)for(var o=e[a*i*4+4*s+3]/255,l=0;l<4;l++){for(var h=n[0]*(0==o?255:e[a*i*4+4*s+l])*(0==o||3==l?1:o),u=1;u<n.length;u++){var c=d(e,Math.max(s-u,0),a,i,0,3)/255,f=d(e,Math.min(s+u,i-1),a,i,0,3)/255;h+=n[u]*((0==c?255:d(e,Math.max(s-u,0),a,i,0,l))*(0==c||3==l?1:c)+(0==f?255:d(e,Math.min(s+u,i-1),a,i,0,l))*(0==f||3==l?1:f))}t[s*r*4+4*a+l]=h}}function d(e,t,n,i,r,a){return e[n*i*4+4*t+a]}function s(e,t,n,i){var r=e.getImageData(0,0,t,n),i=function(e){for(var t=0,n=1;n<e.length;n++)t+=Math.abs(e[n]);for(t=2*t+Math.abs(e[0]),n=0;n<e.length;n++)e[n]/=t;return e}(function(e){e=Math.max(e,.01);var t=Math.ceil(4*e)+1;mask=[];for(var n=0;n<t;n++)mask[n]=Math.exp(n/e*-.5*(n/e));return mask}(i));tmp=[],a(r.data,tmp,i,t,n),a(tmp,r.data,i,n,t),e.clearRect(0,0,t,n),e.putImageData(r,0,0)}this.base=P.Element.ElementBase,this.base(e),this.apply=function(e,t,n,i,r){s(e,i,r,this.attribute("stdDeviation").numValue())}},P.Element.filter.prototype=new P.Element.feGaussianBlur,P.Element.title=function(e){},P.Element.title.prototype=new P.Element.ElementBase,P.Element.desc=function(e){},P.Element.desc.prototype=new P.Element.ElementBase,P.Element.MISSING=function(e){console&&console.log("ERROR: Element '"+e.nodeName+"' not yet implemented.")},P.Element.MISSING.prototype=new P.Element.ElementBase,P.CreateElement=function(e){var t=(t=e.nodeName.replace(/^[^:]+:/,"")).replace(/\-/g,""),n=null;return(n=new(void 0!==P.Element[t]?P.Element[t]:P.Element.MISSING)(e)).type=e.nodeName,n},P.load=function(e,t){P.loadXml(e,P.ajax(t))},P.loadXml=function(e,t){P.loadXmlDoc(e,P.parseXml(t))},P.loadXmlDoc=function(a,e){P.init(a);function t(e){for(var t=a.canvas;t;)e.x-=t.offsetLeft,e.y-=t.offsetTop,t=t.offsetParent;return window.scrollX&&(e.x+=window.scrollX),window.scrollY&&(e.y+=window.scrollY),e}function n(){P.ViewPort.Clear(),a.canvas.parentNode&&P.ViewPort.SetCurrent(a.canvas.parentNode.clientWidth,a.canvas.parentNode.clientHeight),1!=P.opts.ignoreDimensions&&(s.style("width").hasValue()&&(a.canvas.width=s.style("width").toPixels("x"),a.canvas.style.width=a.canvas.width+"px"),s.style("height").hasValue()&&(a.canvas.height=s.style("height").toPixels("y"),a.canvas.style.height=a.canvas.height+"px"));var e,t,n,i=a.canvas.clientWidth||a.canvas.width,r=a.canvas.clientHeight||a.canvas.height;1==P.opts.ignoreDimensions&&s.style("width").hasValue()&&s.style("height").hasValue()&&(i=s.style("width").toPixels("x"),r=s.style("height").toPixels("y")),P.ViewPort.SetCurrent(i,r),null!=P.opts.offsetX&&(s.attribute("x",!0).value=P.opts.offsetX),null!=P.opts.offsetY&&(s.attribute("y",!0).value=P.opts.offsetY),null!=P.opts.scaleWidth&&null!=P.opts.scaleHeight&&(t=e=1,n=P.ToNumberArray(s.attribute("viewBox").value),s.attribute("width").hasValue()?e=s.attribute("width").toPixels("x")/P.opts.scaleWidth:isNaN(n[2])||(e=n[2]/P.opts.scaleWidth),s.attribute("height").hasValue()?t=s.attribute("height").toPixels("y")/P.opts.scaleHeight:isNaN(n[3])||(t=n[3]/P.opts.scaleHeight),s.attribute("width",!0).value=P.opts.scaleWidth,s.attribute("height",!0).value=P.opts.scaleHeight,s.attribute("viewBox",!0).value="0 0 "+i*e+" "+r*t,s.attribute("preserveAspectRatio",!0).value="none"),1!=P.opts.ignoreClear&&a.clearRect(0,0,i,r),s.render(a),o&&(o=!1,"function"==typeof P.opts.renderCallback&&P.opts.renderCallback())}1!=P.opts.ignoreMouse&&(a.canvas.onclick=function(e){e=t(new P.Point((null!=e?e:event).clientX,(null!=e?e:event).clientY));P.Mouse.onclick(e.x,e.y)},a.canvas.onmousemove=function(e){e=t(new P.Point((null!=e?e:event).clientX,(null!=e?e:event).clientY));P.Mouse.onmousemove(e.x,e.y)});var s=P.CreateElement(e.documentElement),o=s.root=!0,i=!0;P.ImagesLoaded()&&(i=!1,n()),P.intervalID=setInterval(function(){var e=!1;if(i&&P.ImagesLoaded()&&(e=!(i=!1)),1!=P.opts.ignoreMouse&&(e|=P.Mouse.hasEvents()),1!=P.opts.ignoreAnimation)for(var t=0;t<P.Animations.length;t++)e|=P.Animations[t].update(1e3/P.FRAMERATE);(e="function"==typeof P.opts.forceRedraw&&1==P.opts.forceRedraw()?!0:e)&&(n(),P.Mouse.runEvents())},1e3/P.FRAMERATE)},P.stop=function(){P.intervalID&&clearInterval(P.intervalID)},P.Mouse=new function(){this.events=[],this.hasEvents=function(){return 0!=this.events.length},this.onclick=function(e,t){this.events.push({type:"onclick",x:e,y:t,run:function(e){e.onclick&&e.onclick()}})},this.onmousemove=function(e,t){this.events.push({type:"onmousemove",x:e,y:t,run:function(e){e.onmousemove&&e.onmousemove()}})},this.eventElements=[],this.checkPath=function(e,t){for(var n=0;n<this.events.length;n++){var i=this.events[n];t.isPointInPath&&t.isPointInPath(i.x,i.y)&&(this.eventElements[n]=e)}},this.checkBoundingBox=function(e,t){for(var n=0;n<this.events.length;n++){var i=this.events[n];t.isPointInBox(i.x,i.y)&&(this.eventElements[n]=e)}},this.runEvents=function(){P.ctx.canvas.style.cursor="";for(var e=0;e<this.events.length;e++)for(var t=this.events[e],n=this.eventElements[e];n;)t.run(n),n=n.parent;this.events=[],this.eventElements=[]}};var P,h=P,n=(1==e.childNodes.length&&"OBJECT"==e.childNodes[0].nodeName||(e.svg=h),h.opts=n,e.getContext("2d"));void 0!==t.documentElement?h.loadXmlDoc(n,t):"<"==t.substr(0,1)?h.loadXml(n,t):h.load(n,t)}}}(),window.CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.drawSvg=function(e,t,n,i,r){canvg(this.canvas,e,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:t,offsetY:n,scaleWidth:i,scaleHeight:r})}),function(e){var l,h,u,t,o,s,c,f,d,p,M,k,g,m,E,S,T,i,F,D,B,x,y,v,A,N,I,O,R,b,w,r=function(e){return new r.prototype.init(e)};"undefined"!=typeof require&&"undefined"!=typeof exports&&"undefined"!=typeof module?module.exports=r:e.Globalize=r,r.cultures={},(r.prototype={constructor:r,init:function(e){return this.cultures=r.cultures,this.cultureSelector=e,this}}).init.prototype=r.prototype,r.cultures.default={name:"en",englishName:"English",nativeName:"English",isRTL:!1,language:"en",numberFormat:{pattern:["-n"],decimals:2,",":",",".":".",groupSizes:[3],"+":"+","-":"-",NaN:"NaN",negativeInfinity:"-Infinity",positiveInfinity:"Infinity",percent:{pattern:["-n %","n %"],decimals:2,groupSizes:[3],",":",",".":".",symbol:"%"},currency:{pattern:["($n)","$n"],decimals:2,groupSizes:[3],",":",",".":".",symbol:"$"}},calendars:{standard:{name:"Gregorian_USEnglish","/":"/",":":":",firstDay:0,days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]},AM:["AM","am","AM"],PM:["PM","pm","PM"],eras:[{name:"A.D.",start:null,offset:0}],twoDigitYearMax:2029,patterns:{d:"M/d/yyyy",D:"dddd, MMMM dd, yyyy",t:"h:mm tt",T:"h:mm:ss tt",f:"dddd, MMMM dd, yyyy h:mm tt",F:"dddd, MMMM dd, yyyy h:mm:ss tt",M:"MMMM dd",Y:"yyyy MMMM",S:"yyyy'-'MM'-'dd'T'HH':'mm':'ss"}}},messages:{}},r.cultures.default.calendar=r.cultures.default.calendars.standard,r.cultures.en=r.cultures.default,r.cultureSelector="en",l=/^0x[a-f0-9]+$/i,h=/^[+\-]?infinity$/i,u=/^[+\-]?\d*\.?\d*(e[+\-]?\d+)?$/,t=/^\s+|\s+$/g,o=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1},s=function(e,t){return e.substr(e.length-t.length)===t},c=function(){var e,t,n,i,r,a=arguments[0]||{},s=1,o=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[1]||{},s=2),"object"==typeof a||d(a)||(a={});s<o;s++)if(null!=(e=arguments[s]))for(t in e)r=a[t],a!==(n=e[t])&&(l&&n&&(p(n)||(i=f(n)))?(r=i?(i=!1,r&&f(r)?r:[]):r&&p(r)?r:{},a[t]=c(l,r,n)):void 0!==n&&(a[t]=n));return a},f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},d=function(e){return"[object Function]"===Object.prototype.toString.call(e)},p=function(e){return"[object Object]"===Object.prototype.toString.call(e)},M=function(e,t){return 0===e.indexOf(t)},k=function(e){return(e+"").replace(t,"")},g=function(e){return isNaN(e)?NaN:Math[e<0?"ceil":"floor"](e)},m=function(e,t,n){for(var i=e.length;i<t;i+=1)e=n?"0"+e:e+"0";return e},E=function(e,t){for(var n=0,i=!1,r=0,a=e.length;r<a;r++){var s=e.charAt(r);switch(s){case"'":i?t.push("'"):n++,i=!1;break;case"\\":i&&t.push("\\"),i=!i;break;default:t.push(s),i=!1}}return n},S=function(e,t){var e=e.patterns,n=(t=t||"F").length;if(1===n){if(!(e=e[t]))throw"Invalid date format string '"+t+"'.";t=e}else 2===n&&"%"===t.charAt(0)&&(t=t.charAt(1));return t},T=function(e,t,n){var i,r,a=n.calendar,s=a.convert;if(!t||!t.length||"i"===t)return r=n&&n.name.length?s?T(e,a.patterns.F,n):(n=new Date(e.getTime()),i=D(e,a.eras),n.setFullYear(B(e,a,i)),n.toLocaleString()):e.toString();var o=a.eras,l="s"===t;t=S(a,t),r=[];var h,u,c,f,d=["0","00","000"],p=/([^d]|^)(d|dd)([^d]|$)/g,g=0,m=F();function x(e,t){var n,e=e+"";return 1<t&&e.length<t?(n=d[t-2]+e).substr(n.length-t,t):e}function y(e,t){if(f)return f[t];switch(t){case 0:return e.getFullYear();case 1:return e.getMonth();case 2:return e.getDate();default:throw"Invalid part value "+t}}for(!l&&s&&(f=s.fromGregorian(e));;){var v=m.lastIndex,b=m.exec(t),v=t.slice(v,b?b.index:t.length);if(g+=E(v,r),!b)break;if(g%2)r.push(b[0]);else{var w=b[0],_=w.length;switch(w){case"ddd":case"dddd":var P=3===_?a.days.namesAbbr:a.days.names;r.push(P[e.getDay()]);break;case"d":case"dd":u=!0,r.push(x(y(e,2),_));break;case"MMM":case"MMMM":var C=y(e,1);r.push((a.monthsGenitive&&(u||c||(u=p.test(t),c=!0),u)?a.monthsGenitive:a.months)[3===_?"namesAbbr":"names"][C]);break;case"M":case"MM":r.push(x(y(e,1)+1,_));break;case"y":case"yy":case"yyyy":C=f?f[0]:B(e,a,D(e,o),l),_<4&&(C%=100),r.push(x(C,_));break;case"h":case"hh":0===(h=e.getHours()%12)&&(h=12),r.push(x(h,_));break;case"H":case"HH":r.push(x(e.getHours(),_));break;case"m":case"mm":r.push(x(e.getMinutes(),_));break;case"s":case"ss":r.push(x(e.getSeconds(),_));break;case"t":case"tt":C=e.getHours()<12?a.AM?a.AM[0]:" ":a.PM?a.PM[0]:" ",r.push(1===_?C.charAt(0):C);break;case"f":case"ff":case"fff":r.push(x(e.getMilliseconds(),3).substr(0,_));break;case"z":case"zz":h=e.getTimezoneOffset()/60,r.push((h<=0?"+":"-")+x(Math.floor(Math.abs(h)),_));break;case"zzz":h=e.getTimezoneOffset()/60,r.push((h<=0?"+":"-")+x(Math.floor(Math.abs(h)),2)+":"+x(Math.abs(e.getTimezoneOffset()%60),2));break;case"g":case"gg":a.eras&&r.push(a.eras[D(e,o)].name);break;case"/":r.push(a["/"]);break;default:throw"Invalid date format pattern '"+w+"'."}}}return r.join("")},v=function(e,t,n){var i=n.groupSizes,r=i[0],a=1,s=Math.pow(10,t),s=Math.round(e*s)/s,o=(e=s=isFinite(s)?s:e)+"",l="",s=o.split(/e/i),e=1<s.length?parseInt(s[1],10):0;o=(s=(o=s[0]).split("."))[0],l=1<s.length?s[1]:"",0<e?(o+=(l=m(l,e,!1)).slice(0,e),l=l.substr(e)):e<0&&(l=(o=m(o,1+(e=-e),!0)).slice(-e,o.length)+l,o=o.slice(0,-e));for(var l=0<t?n["."]+(l.length>t?l.slice(0,t):m(l,t)):"",h=o.length-1,u=n[","],c="";0<=h;){if(0===r||h<r)return o.slice(0,h+1)+(c.length?u+c+l:l);c=o.slice(h-r+1,h+1)+(c.length?u+c:""),h-=r,a<i.length&&(r=i[a],a++)}return o.slice(0,h+1)+u+c+l},i=function(e,t,n){if(!isFinite(e))return e===1/0?n.numberFormat.positiveInfinity:e===-1/0?n.numberFormat.negativeInfinity:n.numberFormat.NaN;if(!t||"i"===t)return n.name.length?e.toLocaleString():e.toString();t=t||"D";var i,r,a=n.numberFormat,s=Math.abs(e),o=-1,l=(1<t.length&&(o=parseInt(t.slice(1),10)),t.charAt(0).toUpperCase());switch(l){case"D":i="n",s=g(s),-1!==o&&(s=m(""+s,o,!0)),e<0&&(s="-"+s);break;case"N":r=a;case"C":r=r||a.currency;case"P":r=r||a.percent,i=e<0?r.pattern[0]:r.pattern[1]||"n",-1===o&&(o=r.decimals),s=v(s*("P"===l?100:1),o,r);break;default:throw"Bad number format specifier: "+l}for(var h=/n|\$|-|%/g,u="";;){var c=h.lastIndex,f=h.exec(i);if(u+=i.slice(c,f?f.index:i.length),!f)break;switch(f[0]){case"n":u+=s;break;case"$":u+=a.currency.symbol;break;case"-":/[1-9]/.test(s)&&(u+=a["-"]);break;case"%":u+=a.percent.symbol}}return u},F=function(){return/\/|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z|gg|g/g},D=function(e,t){if(t)for(var n,i=e.getTime(),r=0,a=t.length;r<a;r++)if(null===(n=t[r].start)||n<=i)return r;return 0},B=function(e,t,n,i){e=e.getFullYear();return!i&&t.eras&&(e-=t.eras[n].offset),e},A=function(e,t){var n,i;return t<100&&(n=new Date,i=D(n),n=B(n,e,i),(i="string"==typeof(i=e.twoDigitYearMax)?(new Date).getFullYear()%100+parseInt(i,10):i)<(t+=n-n%100)&&(t-=100)),t},N=function(e,t,n){var i,r=e.days,a=e._upperDays;return a||(e._upperDays=a=[w(r.names),w(r.namesAbbr),w(r.namesShort)]),t=b(t),n?-1===(i=o(a[1],t))&&(i=o(a[2],t)):i=o(a[0],t),i},I=function(e,t,n){var i=e.months,r=e.monthsGenitive||e.months,a=e._upperMonths,s=e._upperMonthsGen,i=(a||(e._upperMonths=a=[w(i.names),w(i.namesAbbr)],e._upperMonthsGen=s=[w(r.names),w(r.namesAbbr)]),t=b(t),o(n?a[1]:a[0],t));return i=i<0?o(n?s[1]:s[0],t):i},O=function(e,t){var n=e._parseRegExp;if(n){var i=n[t];if(i)return i}else e._parseRegExp=n={};for(var r,a=S(e,t).replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g,"\\\\$1"),s=["^"],o=[],l=0,h=0,u=F();null!==(r=u.exec(a));){var c=a.slice(l,r.index),l=u.lastIndex;if((h+=E(c,s))%2)s.push(r[0]);else{var f,d=r[0],p=d.length;switch(d){case"dddd":case"ddd":case"MMMM":case"MMM":case"gg":case"g":f="(\\D+)";break;case"tt":case"t":f="(\\D*)";break;case"yyyy":case"fff":case"ff":case"f":f="(\\d{"+p+"})";break;case"dd":case"d":case"MM":case"M":case"yy":case"y":case"HH":case"H":case"hh":case"h":case"mm":case"m":case"ss":case"s":f="(\\d\\d?)";break;case"zzz":f="([+-]?\\d\\d?:\\d{2})";break;case"zz":case"z":f="([+-]?\\d\\d?)";break;case"/":f="(\\/)";break;default:throw"Invalid date format pattern '"+d+"'."}f&&s.push(f),o.push(r[0])}}E(a.slice(l),s),s.push("$");i=s.join("").replace(/\s+/g,"\\s+");return n[t]={regExp:i,groups:o}},R=function(e,t,n){return e<t||n<e},b=function(e){return e.split(" ").join(" ").toUpperCase()},w=function(e){for(var t=[],n=0,i=e.length;n<i;n++)t[n]=b(e[n]);return t},x=function(e,t,n){e=k(e);var i=n.calendar,n=O(i,t),r=new RegExp(n.regExp).exec(e);if(null===r)return null;for(var a,s=n.groups,o=null,l=null,h=null,u=null,c=null,f=0,d=0,p=0,g=0,m=null,x=!1,y=0,v=s.length;y<v;y++){var b=r[y+1];if(b){var w=s[y],_=w.length,P=parseInt(b,10);switch(w){case"dd":case"d":if(R(u=P,1,31))return null;break;case"MMM":case"MMMM":if(h=I(i,b,3===_),R(h,0,11))return null;break;case"M":case"MM":if(R(h=P-1,0,11))return null;break;case"y":case"yy":case"yyyy":if(l=_<4?A(i,P):P,R(l,0,9999))return null;break;case"h":case"hh":if(R(f=12===(f=P)?0:f,0,11))return null;break;case"H":case"HH":if(R(f=P,0,23))return null;break;case"m":case"mm":if(R(d=P,0,59))return null;break;case"s":case"ss":if(R(p=P,0,59))return null;break;case"tt":case"t":if((x=i.PM&&(b===i.PM[0]||b===i.PM[1]||b===i.PM[2]))||i.AM&&(b===i.AM[0]||b===i.AM[1]||b===i.AM[2]))break;return null;case"f":case"ff":case"fff":if(g=P*Math.pow(10,3-_),R(g,0,999))return null;break;case"ddd":case"dddd":if(c=N(i,b,3===_),R(c,0,6))return null;break;case"zzz":var C=b.split(/:/);if(2!==C.length)return null;if(a=parseInt(C[0],10),R(a,-12,13))return null;C=parseInt(C[1],10);if(R(C,0,59))return null;m=60*a+(M(b,"-")?-C:C);break;case"z":case"zz":if(R(a=P,-12,13))return null;m=60*a;break;case"g":case"gg":if(!(E=b)||!i.eras)return null;for(var E=k(E.toLowerCase()),S=0,T=i.eras.length;S<T;S++)if(E===i.eras[S].name.toLowerCase()){o=S;break}if(null===o)return null}}}t=new Date,e=i.convert,n=e?e.fromGregorian(t)[0]:t.getFullYear();if(null===l?l=n:i.eras&&(l+=i.eras[o||0].offset),null===h&&(h=0),null===u&&(u=1),e){if(null===(t=e.toGregorian(l,h,u)))return null}else{if(t.setFullYear(l,h,u),t.getDate()!==u)return null;if(null!==c&&t.getDay()!==c)return null}return x&&f<12&&(f+=12),t.setHours(f,d,p,g),null!==m&&(n=t.getMinutes()-(m+t.getTimezoneOffset()),t.setHours(t.getHours()+parseInt(n/60,10),n%60)),t},y=function(e,t,n){var i,r=t["-"],a=t["+"];switch(n){case"n -":r=" "+r,a=" "+a;case"n-":s(e,r)?i=["-",e.substr(0,e.length-r.length)]:s(e,a)&&(i=["+",e.substr(0,e.length-a.length)]);break;case"- n":r+=" ",a+=" ";case"-n":M(e,r)?i=["-",e.substr(r.length)]:M(e,a)&&(i=["+",e.substr(a.length)]);break;case"(n)":M(e,"(")&&s(e,")")&&(i=["-",e.substr(1,e.length-2)])}return i||["",e]},r.prototype.findClosestCulture=function(e){return r.findClosestCulture.call(this,e)},r.prototype.format=function(e,t,n){return r.format.call(this,e,t,n)},r.prototype.localize=function(e,t){return r.localize.call(this,e,t)},r.prototype.parseInt=function(e,t,n){return r.parseInt.call(this,e,t,n)},r.prototype.parseFloat=function(e,t,n){return r.parseFloat.call(this,e,t,n)},r.prototype.culture=function(e){return r.culture.call(this,e)},r.addCultureInfo=function(e,t,n){var i={},r=!1,i="string"!=typeof e?(n=e,e=this.culture().name,this.cultures[e]):"string"!=typeof t?(n=t,r=null==this.cultures[e],this.cultures[e]||this.cultures.default):(r=!0,this.cultures[t]);this.cultures[e]=c(!0,{},i,n),r&&(this.cultures[e].calendar=this.cultures[e].calendars.standard)},r.findClosestCulture=function(e){var t;if(!e)return this.findClosestCulture(this.cultureSelector)||this.cultures.default;if("string"==typeof e&&(e=e.split(",")),f(e)){for(var n=this.cultures,i=e,r=i.length,a=[],s=0;s<r;s++){var o=(e=k(i[s])).split(";"),l=k(o[0]),h=1!==o.length&&0===(e=k(o[1])).indexOf("q=")?(e=e.substr(2),h=parseFloat(e),isNaN(h)?0:h):1;a.push({lang:l,pri:h})}for(a.sort(function(e,t){return e.pri<t.pri?1:e.pri>t.pri?-1:0}),s=0;s<r;s++)if(t=n[l=a[s].lang])return t;for(s=0;s<r;s++)for(l=a[s].lang;;){var u=l.lastIndexOf("-");if(-1===u)break;if(t=n[l=l.substr(0,u)])return t}for(s=0;s<r;s++)for(var c in l=a[s].lang,n){c=n[c];if(c.language==l)return c}}else if("object"==typeof e)return e;return t||null},r.format=function(e,t,n){n=this.findClosestCulture(n);return e instanceof Date?e=T(e,t,n):"number"==typeof e&&(e=i(e,t,n)),e},r.localize=function(e,t){return this.findClosestCulture(t).messages[e]||this.cultures.default.messages[e]},r.parseDate=function(e,t,n){var i,r,a;if(n=this.findClosestCulture(n),t){if((t="string"==typeof t?[t]:t).length)for(var s=0,o=t.length;s<o;s++){var l=t[s];if(l&&(i=x(e,l,n)))break}}else for(r in a=n.calendar.patterns)if(i=x(e,a[r],n))break;return i||null},r.parseInt=function(e,t,n){return g(r.parseFloat(e,t,n))},r.parseFloat=function(e,t,n){"number"!=typeof t&&(n=t,t=10);var i,r,a,n=this.findClosestCulture(n),s=NaN,o=n.numberFormat;return e=(e=-1<(e=-1<e.indexOf(n.numberFormat.currency.symbol)?(e=e.replace(n.numberFormat.currency.symbol,"")).replace(n.numberFormat.currency["."],n.numberFormat["."]):e).indexOf(n.numberFormat.percent.symbol)?e.replace(n.numberFormat.percent.symbol,""):e).replace(/ /g,""),h.test(e)?s=parseFloat(e):!t&&l.test(e)?s=parseInt(e,16):(t=(n=y(e,o,o.pattern[0]))[0],a=n[1],""===t&&"(n)"!==o.pattern[0]&&(t=(n=y(e,o,"(n)"))[0],a=n[1]),""===t&&"-n"!==o.pattern[0]&&(t=(n=y(e,o,"-n"))[0],a=n[1]),t=t||"+",n=(e=(e=a.indexOf("e"))<0?a.indexOf("E"):e)<0?(i=a,null):(i=a.substr(0,e),a.substr(e+1)),a=o["."],i=(e=i.indexOf(a))<0?(r=i,null):(r=i.substr(0,e),i.substr(e+a.length)),e=o[","],r=r.split(e).join(""),a=e.replace(/\u00A0/g," "),t=t+(r=e!==a?r.split(a).join(""):r),null!==i&&(t+="."+i),null!==n&&(t+="e"+((e=y(n,o,"-n"))[0]||"+")+e[1]),u.test(t)&&(s=parseFloat(t))),s},r.culture=function(e){return void 0!==e&&(this.cultureSelector=e),this.findClosestCulture(e)||this.cultures.default}}(this),function(u,n,f){function t(){}function i(){}function r(e){return e.replace(/(\w)/g,function(e){return e.charCodeAt(0)-97})}function a(e){return u("<div/>").html(e).text()}var s=n.shield=n.shield||{},c=u.extend,d=u.grep,p=u.proxy,e=navigator.userAgent,o=document,l="shieldWidget",h="object",g="function",m="array",x="number",y="undefined",O="sui-vc-top",R=100,z=1e3,v={},H={},V={};function j(){return z++}function L(e){var r,a,s;return A.defined(e)&&""!==e?(a=(r=arguments)&&1<r.length&&typeof r[1]===h,s=typeof Globalize===g&&typeof Globalize.format===g,e.replace(/\{([\.\d\w\:\-\/\' \[\]]+)\}/g,function(e,t){var n,i=t.indexOf(":");return 0<i&&(t=(n=t).substring(0,i),n=n.substring(i+1)),i=!a||/^\d+$/.test(t)?r[parseInt(t,10)+1]:G(r[1],t),i=n&&s?Globalize.format(i,n):i})):""}function b(e){var t;return A.func(e)?((t=[].slice.call(arguments)).shift(),e.apply(this,t)):L.apply(this,arguments)}function w(e){var t=Object.prototype.toString.call(e);return null===e?"null":e===f?"undefined":t.substr(8,t.length-9).toLowerCase()}function _(e){function t(e,t){return e instanceof t}var n,i,r,a,s,o=Array.apply(null,arguments),l=A.array(e)&&e.length&&!d(e,function(e){return!A.func(e)}).length,h=o[1];if(!l)return c.apply(u,o);for(A.object(h)||A.array(h)||(h={}),i=2;i<o.length;i++)if(n=o[i])for(r in n)n.hasOwnProperty(r)&&(s=n[r],a=h[r],s&&d(e,p(t,null,s)).length?h[r]=s:A.object(s)||A.array(s)?(A.object(a)||(a=h[r]=A.array(s)?[]:{}),h[r]=_(e,a,s)):A.date(s)?h[r]=new Date(s.getTime()):s!==f&&(h[r]=s));return h}function W(e){var t,n=[];for(t in e)e.hasOwnProperty(t)&&n.push(t);return n}function G(e,t){var n;if(!A.string(t))throw new Error("shield.get: parameter 'path' must be a string.");if(t=U(t),!(n=H[t])){try{n=new Function("a","try{return a"+t+"}catch(e){return arguments[1];}")}catch(e){throw new Error("shield.get: invalid 'path' parameter")}H[t]=n}return n(e)}function U(e){for(var t,n,i,r=e.split("."),a=0,s=r.length;a<s;a++)t=(n=r[a]).indexOf("["),n&&(t<0?(i=n.indexOf("'")<0?"'":'"',n=r[a]="["+i+n+i+"]"):0<t&&(n=r[a]="."+n));return r.join("")}function P(e){e=String(e);return e=1===e.length?"0"+e:e}i.extend=function(e){function t(){}var n,i,r,a,s=this,o=e&&e.init?e.init:function(){s.apply(this,arguments)};for(i in t.prototype=s.prototype,n=o.fn=o.prototype=new t,e)e.hasOwnProperty(i)&&(a=w(r=e[i]),n[i]=r&&typeof r===h?c(!0,a===m?[]:{},s.prototype[i],r):r);return(n.constructor=o).extend=s.extend,o},Date.prototype.toISOString||(Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+P(this.getUTCMonth()+1)+"-"+P(this.getUTCDate())+"T"+P(this.getUTCHours())+":"+P(this.getUTCMinutes())+":"+P(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"});var C,X,E=i.extend({init:function(e){var t,n=(e||{}).events;for(t in this.events={},e=e||{},n)typeof n[t]===g&&this.on(t,n[t])},on:function(e,t,n){var i,r,a,s,o,l=this.events,h=N.array(e),u=A.func(t);if(A.object(e)){for(o in h=[],e)e.hasOwnProperty(o)&&h.push(o);u=!1,t=e}for(a=0,s=h.length;a<s;a++)e=h[a],i=this._eventType(e),r=u?t:t[e],A.func(r)&&(n&&(r=this._one(e,r)),(l[i]||(l[i]=[])).push({name:e,handler:r}));return this},_one:function(e,t){function n(){i.off(e,n),t.apply(this,arguments)}var i=this;return n},_eventType:function(e){var t=(e+="").indexOf(".");return-1<t?e.substring(0,t):e},_eventNameMatch:function(e,t){var n,i,r,a,s=this._eventType(e),o=this._eventType(t);if(e+="",t+="",s!==o&&o||((n=e.split(".")).shift(),n=d(n,function(e){return A.string(e)&&0<e.length}),i=t.split("."),o&&i.shift(),i=d(i,function(e){return A.string(e)&&0<e.length}),!n||!i))return!1;for(a=r=0;a<i.length;a++)-1<u.inArray(i[a],n)&&r++;return r>=i.length},one:function(e,t){this.on(e,t,!0)},off:function(e,t){var n,i,r,a,s,o,l=this,h=l.events,u=N.array(e),c=A.func(t);if(A.object(e)){for(o in u=[],e)e.hasOwnProperty(o)&&u.push(o);c=!1,t=e}if(A.string(e)&&0===e.indexOf(".")){for(n in h)if(h.hasOwnProperty(n)){for(i=h[n]||[],r=c?t:t||f,s=i.length-1;0<=s;s--)!l._eventNameMatch(i[s].name,e)||A.defined(r)&&i[s].handler!==r||i.splice(s,1);i.length||delete h[n]}}else for(a=0;a<u.length;a++){for(e=u[a],i=h[n=l._eventType(e)]||[],r=c?t:(t||{})[e],s=i.length-1;0<=s;s--)!l._eventNameMatch(i[s].name,e)||A.defined(r)&&i[s].handler!==r||i.splice(s,1);i.length||delete h[n]}return l},trigger:function(e,t){for(var n=this._eventType(e),i=(this.events[n]||[]).slice(),r=0,a=i.length;r<a;r++)i[r].handler.apply(this,[].slice.call(arguments,1));return t},destroy:function(){this.events={}}}),q=i.extend({init:function(e){var t=!1,n=!1;c(this,{timeStamp:(new Date).getTime(),isDefaultPrevented:function(){return t},isPropagationStopped:function(){return n},preventDefault:function(){t=!0},stopPropagation:function(){n=!0}},e)}}),$=E.extend({init:function(e,t){var n=this,i=n.constructor;t=t||{},n.element=u(e),n.initialOptions=t,n.options=c(!0,{},i.defaults,(i.themes||{})[t.theme],t),n._iid=z++,E.fn.init.call(n,t)},getInstanceId:function(){return this._iid},refresh:function(e){this.refreshWithElement(this.element,e)},refreshWithElement:function(e,t){t=_([i],this.options,t);this.destroy(),this.init(e,t)},hide:function(){u(this.element).hide()},show:function(){u(this.element).show()},isVisible:function(){return u(this.element).is(":visible")},visible:function(){var e=[].slice.call(arguments);if(!(0<e.length))return this.isVisible();e[0]?this.show():this.hide()},focus:function(){u(this.element).focus()},trigger:function(e,t,n){return!(t=A.event(t)?{domEvent:t}:t)||!t.domEvent||t.domEvent instanceof u.Event||(t.domEvent=u.Event(t.domEvent)),t=new q(c({type:e,target:this},t)),E.fn.trigger.call(this,e,t),typeof n!==g||t.isDefaultPrevented()||n.call(this,t),t}}),Y=E.extend({options:{total:0,pageBuffer:2,createContainer:t,getItems:t,eventNS:".shieldVirtualized",skipRender:!1},init:function(e,t){var n=this;t=n.options=c({},n.options,t),n.element=u(e),E.fn.init.call(n,t),t.skipRender||n.render()},_elements:function(){var e=this,t=e.element,n=e.options,t=e.wrapper=t.off(n.eventNS).empty().css({overflow:"auto",position:"relative"}).on("scroll"+n.eventNS,p(e.scroll,e)).append('<div class="sui-virtualized"/>').find(".sui-virtualized").css({position:"relative",overflow:"visible"});e.container=u(n.createContainer(t));t.children().css({position:"absolute",top:0}),e._positionedContainer=t.children().first()},_dimensions:function(){var e=this.options,t=e.total,e=e.itemHeight,n=Math.min(t*e,s.support.maxElementHeight),i=this.element.height(),r=Math.ceil(i/e);return{total:t,itemHeight:e,totalHeight:n,viewportHeight:i,itemsPerPage:r,pageHeight:r*e,totalScrollableHeight:n-i}},render:function(){var e,t=this,n=t.element,i=t.options;t._elements(),t.prevScroll=0,e=t.dimensions=t._dimensions(),n.find(".sui-virtualized").height(e.totalHeight),t._renderItems(0,Math.min(i.total,(i.pageBuffer+1)*e.itemsPerPage))},_renderItems:function(e,t,r){var a=this;a.options.getItems(e,t,function(e,t){var n,i=e.length;for((t=!A.defined(t)||!!t)&&a.container.empty(),n=0;n<i;n++)a.container.append(e[n]);r&&r()})},scroll:function(){var e=this,t=e.options.pageBuffer,n=e.dimensions,i=e.element.scrollTop(),r=i-e.prevScroll,a=i/n.totalScrollableHeight,s=e._positionedContainer,o=s.data(O)||0,l=i-a*(n.pageHeight-n.viewportHeight),h=0<r&&l-o>(t/4+1)*n.pageHeight;(r<0&&l-o<=t/4*n.pageHeight||h)&&(r=Math.min(n.total,Math.floor(a*n.total-a*n.itemsPerPage)),o=Math.max(0,r-t/2*n.itemsPerPage),h=Math.min(n.total,o+(t+1)*n.itemsPerPage),l=Math.max(0,l-(r-o)*n.itemHeight),e._renderItems(o,h,function(){s.css("top",l),s.data(O,l)})),e.prevScroll=i},scrollTop:function(e){var t=this.element;if(!A.defined(e))return t.scrollTop();t.scrollTop(e)},destroy:function(){var e=this.options;this.element.off(e.eventNS),this.element=null,e.createContainer=t,e.getItems=t,E.fn.destroy.call(this)}});function K(e,t){for(var n,i=[],r=u(e).length,a=t?l+"-"+t:l,s=0;s<r;s++)(n=u(u(e)[s]).data(a))&&i.push(n);return i}u.fn.swidget=function(e){e=K(this,e);return e.length?1<e.length?e:e[0]:null},u.fn.swidgets=function(e){return K(this,e)},-1<(C="cacd").indexOf("@")||(C=r(C),X=r("g"),n.setTimeout(function(){var e,t=new Date(C,r("a"),X);(new Date).getTime()>=t.getTime()&&(e=t,u(function(){u(a("<div style="position:fixed; width:100%; height:100%; top:0; left:0; right:0; bottom:0; background-color:rgba(0,0,0,0.95); z-index:2000; color:#222; display:none;"></div>")).append(u(a("<span style="position:absolute; top:0; right:0; color:white; width:48px; height:42px; margin-right:10px; text-align:center; font-size:42px; cursor:pointer; z-index:10;">&#10799;</span>")).click(function(){u(this).parent().remove()}),u(a("<div style="width:200px; min-height:150px; margin:auto; background-color:white; position:absolute; top:50%; left:50%; margin-top:-75px; margin-left:-100px; padding:10px; text-align:justify; border:3px solid #008000;"></div>")).append(u(a("<p style="margin-top:5px;"><a href="https://www.shieldui.com?src=trialexp" target="_blank"><img src="https://www.shieldui.com/logo.png" style="width:70%; height:auto; margin:auto; outline:0;" border="0" alt="Shield UI" /></a></p>")),u(a("<p>This Trial copy of Shield UI has expired!</p>")),u(a("<p style="margin-bottom:0px;">Visit <a href="https://www.shieldui.com?src=trialexp" target="_blank" style="color:blue; text-decoration:underline;">our webpage</a> to get a new version.</p>"))).attr("data-xd",""+e)).appendTo(o.body).show()}))},+C+500));var S,T,M,k,F,D,B,J,A={string:function(e){return"string"===w(e)},number:function(e){return w(e)===x},integer:function(e){return w(e)===x&&/^[\+\-]?\d+$/.test(e+"")},float:function(e){return w(e)===x&&/^[\+\-]?\d+\.\d+$/.test(e+"")},func:function(e){return w(e)===g},object:function(e){return w(e)===h},array:function(e){return w(e)===m},date:function(e){return"date"===w(e)},boolean:function(e){return"boolean"===w(e)},null:function(e){return"null"===w(e)},undefined:function(e){return w(e)===y},defined:function(e){return e!==f&&null!==e},event:function(e){return typeof n.Event==g&&e instanceof n.Event||e&&e.altKey!==f}},N={int:function(e,t){return parseInt(e,t||10)},float:function(e){return parseFloat(e)},number:function(e){return e=e+"",e=A.defined(e)&&typeof Globalize===g&&typeof Globalize.parseFloat===g?Globalize.parseFloat(e):Number(e),isNaN(e)?null:e},array:function(e){return e instanceof Array?e:e!==f?[e]:[]},string:function(e){return e+""},key:function(n){var e,i,t,r,a=w(n);switch(a){case"null":case y:return a;case h:return e=W(n).sort(),i=[],u.each(e,function(e,t){i.push(t+":"+N.key(n[t]))}),"{"+i.join(",")+"}";case m:for(i="[",t=0,r=n.length;t<r;t++)i+=N.key(n[t]),t<r-1&&(i+=",");return i+="]";case"date":return n.toISOString();default:return n+""}}};function I(e){e?o.onselectstart==I.handler&&(o.onselectstart=I.onselectstart,o.ondragstart=I.ondragstart):o.onselectstart!=I.handler&&(I.onselectstart=o.onselectstart,I.ondragstart=o.ondragstart,o.onselectstart=o.ondragstart=I.handler)}v.stableSort="xyzvwtursopqmnklhijfgdeabc"==(S="abcdefghijklmnopqrstuvwxyz").split("").sort(function(e,t){return~~(S.indexOf(t)/2.3)-~~(S.indexOf(e)/2.3)}).join(""),v.scrollbar=function(){var e,t=o.createElement("div");return t.style.cssText="overflow:scroll;overflow-x:hidden;zoom:1;clear:both",t.innerHTML=" ",o.body.appendChild(t),e=t.offsetWidth-t.scrollWidth,o.body.removeChild(t),e},v.isRtl=function(e){return 0<u(e).closest(".sui-rtl").length},v.transitions=function(){var e,t=(o.body||o.documentElement).style,n="Transition",i=["Moz","webkit","Webkit","Khtml","O","ms"];if(A.string(t[n.toLowerCase()]))return!0;for(e=0;e<i.length;e++)if(A.string(t[i[e]+n]))return!0;return!1}(),v.hasScrollbarY=function(e){e=u(e).get(0);return e.scrollHeight>e.clientHeight},v.hasScrollbarX=function(e){e=u(e).get(0);return e.scrollWidth>e.clientWidth},s.rAF=function(e){return(n.requestAnimationFrame||n.webkitRequestAnimationFrame||n.mozRequestAnimationFrame||function(e){return this.setTimeout(e,1e3/60)}).call(n,e)},s.cAF=function(e){return(n.cancelAnimationFrame||n.clearTimeout)(e)},T=/MSIE/i.test(e),M=/Trident/i.test(e),k=/Firefox/i.test(e),F=/Opera/i.test(e),D=/Safari/i.test(e),B=/Chrome/i.test(e),J=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(e),v.browser={ie:T||M,firefox:k,opera:F,safari:!B&&D,chrome:B,mobile:J,version:T?parseInt(e.substr(e.indexOf("MSIE ")+5),10):M?parseInt(e.substr(e.indexOf("rv:")+3),10):k?parseInt(e.substr(e.indexOf("Firefox/")+8),10):F?parseInt(e.substr(e.indexOf("Version/")+8),10):B?parseInt(e.substr(e.indexOf("Chrome/")+7),10):D?parseInt(e.substr(e.indexOf("Version/")+8),10):0},u(function(){for(var e,t=u('<div style="display:none;"/>').appendTo(o.body),n=1e6;t.css("height",e=n+1e6),!(1e9<e||t.height()!==e);)n=e;t.remove(),v.maxElementHeight=n}),I.handler=function(){return!1},c(s,{Class:i,Dispatcher:E,Event:q,Constants:{SVG_NS:"http://www.w3.org/2000/svg",XHTML_NS:"http://www.w3.org/1999/xhtml",KeyCode:{BACK:8,TAB:9,ENTER:13,CTRL:17,ESC:27,SPACE:32,PAGEUP:33,PAGEDOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DEL:46}},format:b,formatString:L,parseDate:function(e,t){return typeof Globalize===g&&typeof Globalize.format===g?Globalize.parseDate(e,t):new Date(e)},getCalendarInfo:function(){return typeof Globalize===g&&Globalize.cultures&&Globalize.cultures[Globalize.cultureSelector]&&Globalize.cultures[Globalize.cultureSelector].calendar?Globalize.cultures[Globalize.cultureSelector].calendar:{days:{names:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],namesAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],namesShort:["Su","Mo","Tu","We","Th","Fr","Sa"]},firstDay:0,months:{names:["January","February","March","April","May","June","July","August","September","October","November","December",""],namesAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]}}},getCurrencyInfo:function(){return typeof Globalize===g&&Globalize.cultures&&Globalize.cultures[Globalize.cultureSelector]&&Globalize.cultures[Globalize.cultureSelector].numberFormat?Globalize.cultures[Globalize.cultureSelector].numberFormat.currency:{pattern:["($n)","$n"],decimals:2,groupSizes:[3],",":",",".":".",symbol:"$"}},error:function(e,t){if(t=t!==f?t:s.dieOnError)throw new Error(e);n.console&&(n.console.error?console.error(e):console.log(e))},dieOnError:!0,iid:j,strid:function(){return"shield"+function(e){var t,n="";for(e=Math.abs(e);t=e%26,n=String.fromCharCode(97+t)+n,0<(e=(e-t)/26););return n}(R++)},guid:function(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return e()+e()+"-"+e()+"-4"+e().substr(0,3)+"-"+[8,9,"a","b"][Math.floor(4*Math.random())]+e().substr(0,3)+"-"+e()+e()+e()},support:v,extend:_,selection:I,type:w,is:A,to:N,keys:W,get:G,set:function(e,t,n){var i;if(!A.string(t))throw new Error("shield.set: parameter 'path' must be a string");if(t=U(t),i=V[t])return i(e,n);try{i=new Function("obj,val","obj"+t+"=val;")}catch(e){throw new Error("shield.set: invalid 'path' parameter")}return(V[t]=i)(e,n),e},ui:c({},s.ui||{},{Widget:$,VirtualizedContainer:Y,plugin:function(a,t){s.ui[a]=t,u.fn["shield"+a]=function(n){var i,r=this;return"string"==typeof n?(i=[].slice.call(arguments,1),this.each(function(){var e,t=u(this).data(l);if(!t)throw new Error(b("shield: cannot call method '{0}' on uninitialized {1}.",n,a));if(typeof(e=t[n])!==g)throw new Error(b("shield: cannot find method '{0}' of {1}",n,a));if((e=e.apply(t,i))!==f)return r=e,!1}),r):this.each(function(){var e=new t(this,n);u(this).data(l,e),u(this).data(l+"-"+a,e)})}}})})}(jQuery,this),function(d,e,l){function t(){}var n,i,r,v,b,h,u,a,s,o,c,f,p,g=e.Class,m=e.Dispatcher,O=Math.min,x=Math.max,w=e.is,y=e.to,_=e.get,P=e.set,C=(e.support,e.type),E=d.extend,S=d.proxy,T=d.each,M=d.grep,R=d.inArray,k=d.Deferred,F="function",D="array",B="change",A="error",z="complete",H="afterset";function N(e,t){var n,i,r=[];if(e.map)return e.map(t);for(n=0,i=e.length;n<i;n++)r[n]=t(e[n],n,e);return r}function I(e,t,n,i){e=_(e,t);return e===l?n&&(e=p.def(n,i,!0)):e=p.convert(e,n),e}n=g.extend({init:function(e){this.data=e},read:function(e,t,n,i){return t(this.data,!1,i)},modify:function(e,t,n,i){t(i)}}),i=g.extend({init:function(e,t){this.options=e,this.cache=t},read:function(t,n,e,i){var r,a=this.options.read,s=this.cache;w.func(a)?a(t,n,e,i):(a=w.string(a)?{url:a}:E(!0,{},a),w.func(a.data)&&(t=a.data(t,i)),(r=s.get(t))!==l?n(r,!0,i):(a.data=t,a.error=e,a.success=function(e){s.set(t,e),n(e,!1,i)},d.ajax(a)))},modify:function(e,t,n,i){function r(e){return e.data}var a,s,o,l,h=this.options.modify||{},u=["create","update","remove"],c=["added","edited","removed"],f=[];if(w.func(h))h(e,t,n,i);else{for(l=0;l<u.length;l++)s=h[u[l]],e[o=c[l]].length?(w.string(s)&&(s={url:s,type:"POST"}),w.func(s)?(a=f[l]=new k,s(e[o],S(a.resolve,a),S(a.reject,a),i)):w.object(s)?(s=E(!0,{},s),w.func(s.data)?s.data=s.data(e[o],i):(s.data={},s.data[o]=N(e[o],r)),a=f[l]=d.ajax(s)):(a=f[l]=new k).resolve()):(a=f[l]=new k).resolve();d.when.apply(d,f).then(t,n)}}}),(r=g.extend({init:function(){this.values={}},get:function(e){return this.values[y.key(e)]},set:function(e,t){return this.values[y.key(e)]=t},remove:function(e){var e=y.key(e),t=this.values[e];return delete this.values[e],t},clear:function(){this.values=[]}})).noop={get:t,set:t},(b=g.extend({init:function(e,t){w.object(e)?e=y.array(e):w.string(e)&&(e=[{path:e,desc:!!t}]),this._expr=e},build:function(){var i,l,e=this._expr,t=b.cache;return w.func(e)?(i=e,function(e,t){var n=i(e.item,t.item);return 0!==n?n:e.index-t.index}):w.array(e)?t.get(e)||t.set(e,(l=[].concat(e),function(e,t){for(var n,i,r,a,s=0,o=l.length;s<o;s++)if(i=e.item,r=t.item,a=(n=l[s]||{}).path,n=n.desc?-1:1,w.string(a)?(i=_(i,a),r=_(r,a)):w.func(a)&&(i=a(i),r=a(r)),(i=w.date(i)?i.getTime():i)!==(r=w.date(r)?r.getTime():r)&&(null!=i||null!=r)){if(null==i)return-1*n;if(null==r)return n;if(w.number(i)&&w.number(r)||(i=i.toString(),r=r.toString()),i.localeCompare){if(0===(a=i.localeCompare(r)))continue;return a*n}if(r<i)return n;if(i<r)return-1*n}return e.index-t.index})):void 0}})).cache=new r,(h=g.extend({init:function(e){this._expr=e||[]},build:function(){var e=h.cache,t=this._expr,n=this._func||(this._func=e.get(t));return n||(n=this._buildRecursive(t,!0))&&e.set(t,n),n},_single:function(e){var t,n,i,r,a;if(e)return w.func(e.filter)?e.filter:(t=h.filters[h.filterAliases[e.filter]])?(n=e.path,i=t,r=e.value,a=e.sensitive,function(e){return i(_(e,n),r,a)}):void 0},_multiple:function(r,a){return function(e){for(var t=!0,n=r.length,i=0;i<n;i++)if(t=r[i](e),a){if(!t)break}else if(t)break;return t}},_buildRecursive:function(e,t){var n,i,r=[];if(w.array(e)){for(n=0,i=e.length;n<i;n++)r.push(this._buildRecursive(e[n]));return 1<r.length?this._multiple(r,t):r[0]}return e.and||e.or?this._buildRecursive(e.and||e.or,!!e.and):this._single(e)}})).cache=new r,h.normalize={equatable:function(e,t,n){return w.date(e)?{a:e.getTime(),b:new Date(t).getTime()}:h.normalize.string(e,t,n)},string:function(e,t,n){return{a:n?e+"":(e+"").toLowerCase(),b:n?t+"":(t+"").toLowerCase()}},scalar:function(e,t){return w.date(e)?{a:e.getTime(),b:new Date(t).getTime()}:isNaN(parseFloat(e))?{a:e,b:t}:{a:parseFloat(e),b:parseFloat(t)}}},h.filters={eq:function(e,t,n){e=h.normalize.equatable(e,t,n);return e.a===e.b},neq:function(e,t,n){e=h.normalize.equatable(e,t,n);return e.a!==e.b},con:function(e,t,n){e=h.normalize.string(e,t,n);return-1<e.a.indexOf(e.b)},notcon:function(e,t,n){e=h.normalize.string(e,t,n);return e.a.indexOf(e.b)<0},starts:function(e,t,n){e=h.normalize.string(e,t,n);return 0===e.a.indexOf(e.b)},ends:function(e,t,n){e=h.normalize.string(e,t,n);return e.a.indexOf(e.b)===e.a.length-e.b.length},gt:function(e,t){e=h.normalize.scalar(e,t);return e.a>e.b},lt:function(e,t){e=h.normalize.scalar(e,t);return e.a<e.b},gte:function(e,t){e=h.normalize.scalar(e,t);return e.a>=e.b},lte:function(e,t){e=h.normalize.scalar(e,t);return e.a<=e.b},isnull:function(e){return null==e},notnull:function(e){return null!=e}},h.filterAliases={eq:"eq",equal:"eq",equals:"eq","==":"eq",neq:"neq",ne:"neq",doesnotequal:"neq",notequal:"neq",notequals:"neq","!=":"neq",con:"con",contains:"con",notcon:"notcon",doesnotcontain:"notcon",notcontains:"notcon",starts:"starts",startswith:"starts",ends:"ends",endswith:"ends",gt:"gt",greaterthan:"gt",">":"gt",lt:"lt",lessthan:"lt","<":"lt",gte:"gte",ge:"gte",greaterthanorequal:"gte",">=":"gte",lte:"lte",le:"lte",lessthanorequal:"lte","<=":"lte",isnull:"isnull",null:"isnull",notnull:"notnull",isnotnull:"notnull"},(u=g.extend({init:function(){},build:function(e){var t=u.cache,n=t.get(e);return n||(n=this._build(e))&&t.set(e,n),n},_build:function(e){var a,t,s,o;return e?(a=e.field,t=e.aggregate,s=e.type||Number,o=function(e){return e===l?p.def(s):p.convert(e,s)},w.func(t)?t:"count"==t?function(e){return e.length}:"sum"==t?function(e){for(var t,n=0,i=e.length,r=0;r<i;r++)t=I(e[r],a,s),n+=s==Date&&w.date(t)?t.getTime():t;return o(n)}:"average"==t?function(e){for(var t,n=0,i=e.length,r=0;r<i;r++)t=I(e[r],a,s),n+=s==Date&&w.date(t)?t.getTime():t;return o(n/i)}:"min"==t?function(e){return o(O.apply(null,N(e,function(e){return I(e,a,s)})))}:"max"==t?function(e){return o(x.apply(null,N(e,function(e){return I(e,a,s)})))}:l):null}})).cache=new r,(v=g.extend({init:function(e,t,n,i,r){var a=this;a.data=e,a.total=null!=t?t:e?e.length:0,a.aggregates=n,a.groups=i,a.indices=w.array(r)?r.slice(0):N(e||[],function(e,t){return t})},filter:function(e){var t,n,i,r=this,a=new h(e).build(),s=r.data,o=[],l=[];if(a){for(t=0,n=s.length;t<n;t++)a(i=s[t])&&(o.push(i),l.push(r.indices[t]));r.indices=l}else o=s.slice(0);return new v(o,o.length,r.aggregates,r.groups,r.indices)},aggregate:function(e){var t,n,i,r,a=this,s=new u,o=a.data;for(w.array(e)||(e=[e]),a.aggregates=[],t=0;t<e.length;t++)n=e[t],(i=s.build(n))&&(r=i(o,n)),a.aggregates.push(E({},n,{value:r}));return new v(o.slice(0),a.total,a.aggregates,a.groups,a.indices)},aggregateGroups:function(e){var t=this,n=t.data.slice(0),e=new v(t._getInnerMostItems(n),null,null,null,null).aggregate(e);return new v(n,t.total,e.aggregates,t.groups,t.indices)},_getInnerMostItems:function(e){var n=[];return T(this._getInnerMostGroups(e),function(e,t){n=n.concat(t.items)}),n},_getInnerMostGroups:function(e){var n=this,i=[];return T(e||[],function(e,t){i=i.concat(n._hasInnerGroups(t)?n._getInnerMostGroups(t.items):t)}),i},_hasInnerGroups:function(e){return!!(e&&e.items&&0<e.items.length)&&(e.items[0].field&&w.array(e.items[0].items))},group:function(e){var t=this,n=t.data.slice(0);return 0<(e=w.array(e)?e:[e]).length&&(n=(e=t._groupData(e,n,t.indices))[0],t.indices=e[1]),new v(n,t.total,t.aggregates,t.groups,t.indices)},_groupData:function(e,t,n){var i,r,a,s,o=[],l=[],h=e.slice(0),u=h.shift(),c=u.field,f=u.aggregate,e=u.order,d={};if(T(t,function(e,t){r=_(t,c),a=d[r],w.defined(a)?o[a].items.push({item:t,index:n[e]}):(d[r]=o.length,o.push(E({},u,{value:r,items:[{item:t,index:n[e]}]})))}),e&&(i=new b("value","desc"==e).build())){for(m=0;m<o.length;m++)o[m]={item:o[m],index:m};for(o.sort(i),m=0;m<o.length;m++)o[m]=o[m].item}for(m=0;m<o.length;m++)for(s=0;s<o[m].items.length;s++)l.push(o[m].items[s].index),o[m].items[s]=o[m].items[s].item;if(f&&T(o,function(e,t){o[e].aggregate=new v(t.items).aggregate(f).aggregates}),h&&0<h.length){for(var p=0,g=[],m=0;m<o.length;m++){var x=o[m],y=l.slice(p,p+(x.items?x.items.length:0)),y=this._groupData(h,x.items,y);o[m].items=y[0],g=g.concat(y[1]),p+=x.items?x.items.length:0}l=g}return[o,l]},sort:function(e,t){var n,i=this,e=new b(e,t).build(),r=i.data.slice(0),a=[],s=r?r.length:0,o=i.indices;if(e){for(n=0;n<s;n++)a.push({index:o[n],item:r[n]});for(a.sort(e),n=0;n<s;n++)r[n]=a[n].item,i.indices[n]=a[n].index}return new v(r,i.total,i.aggregates,i.groups,i.indices)},sortGroups:function(n,i){var r=this,e=r.data.slice(0),a=[],s=0,o=function(e){var t;r._hasInnerGroups(e)?T(e.items,function(e,t){o(t)}):(t=new v(e.items,null,null,null,r.indices.slice(s,s+(e.items?e.items.length:0))).sort(n,i),e.items=t.data,a=a.concat(t.indices),s+=e.items?e.items.length:0)};return T(e,function(e,t){o(t)}),new v(e,r.total,r.aggregates,r.groups,a)},_sliceGroups:function(e,l,h,u){var c,f=this,d=0,n=[],p=[],g=w.defined(u);return 0!==h||g?(c=function(e){var i,r,t,n,a,s,o;return f._hasInnerGroups(e)?(i=[],r=0,T(e.items,function(e,t){var n=c(t);0<n&&(i.push(t),r+=n)}),e.items=i,r):(a=(t=d)+(n=e.items.length)-1,g?a<=u-1?h<=a&&(s=x(0,h-t),o=n):t<=u-1&&h<=a&&(s=x(0,h-t),o=O(n,u-t)):h<=t?(s=0,o=n):t<=h&&h<=a&&(s=x(0,h-t),o=n),w.defined(s)&&w.defined(o)&&s<o?(e.items=e.items.slice(s,o),p=p.concat(l.slice(t+s,t+o))):e.items=[],d+=n,e.items.length)},T(e,function(e,t){0<c(t)&&n.push(t)}),[n,p]):[e.slice(0),l.slice(0)]},skip:function(e){var t=this;return new v(t.data.slice(e),t.total,t.aggregates,t.groups,t.indices.slice(e))},skipGroups:function(e){var t=this,e=t._sliceGroups(t.data,t.indices,e);return new v(e[0],t.total,t.aggregates,t.groups,e[1])},take:function(e){var t=this;return new v(t.data.slice(0,e),t.total,t.aggregates,t.groups,t.indices.slice(0,e))},takeGroups:function(e){var t=this,e=t._sliceGroups(t.data,t.indices,0,e);return new v(e[0],t.total,t.aggregates,t.groups,e[1])}})).create=function(e,t,n,i,r){t=t||{};e=new v(e,n,i,r),n=-1<(t.remoteOperations||[]).join(" ").indexOf("group");return t.group||n?(t.group?e=(e=t.filter?e.filter(t.filter):e).group(t.group):e.data=e.groups,t.aggregate&&(e=e.aggregateGroups(t.aggregate)),t.sort&&(e=e.sortGroups(t.sort)),t.skip&&(e=e.skipGroups(t.skip)),t.take&&(e=e.takeGroups(t.take))):(t.filter&&(e=e.filter(t.filter)),t.aggregate&&(e=e.aggregate(t.aggregate)),t.sort&&(e=e.sort(t.sort)),t.skip&&(e=e.skip(t.skip)),t.take&&(e=e.take(t.take))),e},(a=m.extend({init:function(e){var t=this,e=t.options=w.array(e)?{data:e}:e||{},n=e.schema||{},i=a.schemas[n.type||"json"];t.data=null,t.filter=e.filter,t.sort=e.sort,t.skip=e.skip,t.take=e.take,t.group=e.group,t.aggregate=e.aggregate,t.schema=new i(n),t.remote=e.remote,t.cache=new r,t._recursive=!!e.recursive,m.fn.init.call(t,e)},isRecursive:function(){return this._recursive},trigger:e.ui.Widget.fn.trigger,_client:function(){var e=this.remote;return w.object(e)?new i(e,e.cache?this.cache:r.noop):new n(this.options.data)},_params:function(){var n,i=this,r=i.remote,a=i._remoteOperations().join(" "),s={local:{},remote:{}};return T(["filter","aggregate","group","sort","skip","take"],function(e,t){null!=(n=i[t])&&(r&&-1<a.indexOf(t)?s.remote[t]=n:s.local[t]=n)}),s},_remoteOperations:function(){var e=this.remote;return e&&e.read&&(e.read.operations||e.operations)||[]},_success:function(e,t,n,i,r){var a=this,n=a.schema.process(n);a.data=n.data,a._pTotal=n.total,a._pAggregates=n.aggregates,a._pGroups=n.groups,a._createView(n.data,t),a.trigger(z),a.trigger(B,{fromCache:!!i,extra:r}),e.resolve(a.view,!!i)},_createView:function(e,t){var n=this,e=v.create(e,E({},t||n._params().local,{remoteOperations:n._remoteOperations()}),n._pTotal,n._pAggregates,n._pGroups);n.view=e.data,n.total=e.total,n._indices=e.indices,n.aggregates=e.aggregates},_error:function(e,t,n,i,r){e.reject(i),t&&this.trigger(z),this.trigger(A,{errorType:"transport",error:i,operation:n,extra:r})},read:function(e){var t=this,n=new k,i=t._params();return t.trigger("start",{params:i,extra:e}).isDefaultPrevented()?n.resolve():(t.cancel(),t._client().read(i.remote,S(t._success,t,n,i.local),S(t._error,t,n,!0,"read"),e)),n.promise()},_ensureTracker:function(){var t=this,e=t.tracker,n=t.data;if(!e){if(!n||!w.array(n))throw new Error("shield.DataSource: cannot modify when no data array is available.");e=t.tracker=new f({data:n,model:t.schema.model,events:{change:function(e){t._createView(t.data),e&&e.afterset||t.trigger(B)},error:function(e){t.trigger(A,{errorType:"tracker",path:e?e.path:"undefined path",value:e?e.value:"undefined value",error:e?e.reason:"undefined error",model:e?e.target:"undefined target model"})}}}),t.data=e.data}},getDataIndex:function(e){return this._indices[e]},add:function(e){return this._ensureTracker(),this.tracker.add(e)},insert:function(e,t){return this._ensureTracker(),this.tracker.insert(e,t)},remove:function(e){return this._ensureTracker(),this.tracker.remove(e)},removeAt:function(e){return this._ensureTracker(),this.tracker.removeAt(e)},edit:function(e){return this._ensureTracker(),this.tracker.edit(e)},insertView:function(e,t){return this.insert(this._indices[e],t)},removeAtView:function(e){return this.removeAt(this._indices[e])},editView:function(e){return this.edit(this._indices[e])},save:function(e,t){var n,i,r,a=this,s=a.tracker,o=s?s.changes:{added:[],edited:[],removed:[]},l=s&&a.trigger("save",{changes:o}),h=new k;if(e=!w.defined(e)||!!e,l&&!l.isDefaultPrevented()){for(n=a.data=s.original,i=s.data,r=n.length=0;r<i.length;r++)n[r]=i[r];a.options.data&&!w.func(a.options.data)&&h.done(S(a._syncLocalData,a)),a._client().modify(o,S(h.resolve,h),S(a._error,a,h,!1,"save"),t),s.destroy(),s=a.tracker=null}else h.resolve(o);return e&&h.then(l=function(){a._createView(a.data),a.trigger(B,{extra:t})},l),h.promise()},_syncLocalData:function(){for(var e=this.schema,t=(e.options.fields,this.data),n=[],i=w.array(e.getReverseDataFirstItem(this.options.data)),r=0;r<t.length;r++)n[r]=i?[]:{},e.reverseFields(t[r],n[r]);e.reverseData(n,this.options.data)},cancel:function(){var e=this,t=e.tracker,n=t&&(t.changes.added.length||t.changes.edited.length||t.changes.removed.length);t&&(e.data=t.original,t.destroy(),t=e.tracker=null,n&&(e._createView(e.data),e.trigger(B)))},destroy:function(){var e,t=this,n=["options","data","total","aggregates","filter","sort","aggregate","group","skip","take","schema","remote","view","cache"];for(t.cancel(),t.cache&&t.cache.clear(),e=0;e<n.length;e++)delete t[n[e]];m.fn.destroy.call(t)}})).create=function(e,t){return e instanceof a?e:w.array(e)?new a(E({data:e},t)):new a(E({},e,t))},(s=g.extend({init:function(e){this.options=e},parse:function(e){var t=this.options.parse;if(w.func(t))return t(e);if(w.string(e))try{e=d.parseJSON(e)}catch(e){}return e},data:function(e){var t=this.options.data;return w.func(t)?t(e):w.string(t)?_(e,t):e},aggregates:function(e){var t=this.options.aggregates;return w.func(t)?t(e):w.string(t)?_(e,t):l},groups:function(e){var t=this.options.groups;return w.func(t)?t(e):w.string(t)?_(e,t):l},reverseData:function(e,t){var n,i=this.options.data;if(w.func(i))i(e,t);else if(w.string(i))P(t,i,e);else if(w.array(t))for(n=t.length=0;n<e.length;n++)t[n]=e[n]},getReverseDataFirstItem:function(e){e=this.data(e);return w.array(e)&&0<e.length?e[0]:l},total:function(e,t){var n=this.options.total;return e=e||[],t=t||[],w.func(n)?n(e):w.string(n)?_(e,n):t.length},fields:function(e){var t=this.options.fields,n=this.model=p.define(t);return t?N(e,function(e){return s.mapFields(e,n.fn.fields)}):e},reverseFields:function(){var e,t,n,i=this.options.fields,r=[].slice.call(arguments),a=r[0],s=r.length<=1,o=s?a:r[1];if(w.defined(i))for(n in i)i.hasOwnProperty(n)&&(e=i[n],t=a[n],w.string(e.path)?P(o,e.path,t):w.func(e.path)?e.path(a,t):o[n]=t,s&&delete o[n]);else if(!s&&w.object(a))for(n in a)a.hasOwnProperty(n)&&(o[n]=a[n])},process:function(e){var t=this,n=t.parse(e),i=t.aggregates(e),e=t.groups(e),r=t.fields(t.data(n));return{data:r,aggregates:i,groups:e,total:t.total(n,r)}}})).mapFields=function(e,t){var n,i,r,a={};for(n in e=e||{},t)t.hasOwnProperty(n)&&(i=t[n],w.string(i.path)?(r=_(e,i.path))===l&&(r=_(e,n)):r=w.func(i.path)?i.path(e):e[n],r===l?i.type&&(r=p.def(i.type,i.def,i.nullable)):r=p.convert(r,i.type),a[n]=r);return a},g=s.extend({parse:function(e){var t=this.options;if(w.func(t.parse))e=t.parse(e);else if(w.string(e))try{e=d.parseXML(e)}catch(e){}return e=e&&9===e.nodeType?this._json(this._root(e)):e},_root:function(e){for(var t=e.childNodes,n=0,i=t.length;n<i;n++)if(1===t[n].nodeType)return t[n];return null},_json:function(e){for(var t,n,i={},r={},a="",s=0,o=e.attributes.length;s<o;s++)i["_"+(t=e.attributes[s]).nodeName]=t.nodeValue;for(s=0,o=e.childNodes.length;s<o;s++)switch(n=(t=e.childNodes[s]).nodeName,t.nodeType){case 1:r[n]?(w.array(i[n])||(i[n]=[i[n]]),i[n].push(this._json(t))):(i[n]=this._json(t),r[n]=!0);break;case 3:a+=t.nodeValue;break;case 4:i._cdata=t.nodeValue}return(a=a.replace(/^\s+(.*)\s+$/gim,"$1"))&&(i._text=a),i}}),o=s.extend({parse:function(e){var t,n=this.options,i=n.parse,r=d(e),a=[],s=[];return w.func(i)?i(e):n.result||(r[0]&&"table"===r[0].tagName.toLowerCase()?(r.eq(0).find("thead th").each(function(){s.push(d(this).text())}).end().find("tbody tr").each(function(){t={},d(this).children().each(function(e){t[s[e]]=d(this).text()}),a.push(t)}),n.result=a):e)}}),c=s.extend({parse:function(e){var t=this.options,n=t.parse,i=d(e),r=[];return w.func(n)?n(e):t.result||(i[0]&&"select"===i[0].tagName.toLowerCase()?(i.find("option").each(function(e){var t=d(this);r.push({value:t.attr("value"),text:t.text(),selected:t.is(":selected")})}),t.result=r):e)}}),a.schemas={json:s,xml:g,table:o,select:c},f=m.extend({init:function(e){this.original=e.data,this.data=Array.apply(null,e.data),this.model=e.model,this.changes={added:[],edited:[],removed:[]},m.fn.init.call(this,e)},_model:function(e){var t=this,e=new t.model(e);return e.on(B,S(t.trigger,t,B)),e.on(A,S(t.trigger,t,A)),e.on(H,S(t.trigger,t,B,{afterset:!0})),e},add:function(e){return this.insert(this.data.length,e)},insert:function(e,t){var n=this.data,i=this.changes;if(e<0||e>n.length)throw new Error("shield.DataSource: invalid item index: "+e);return t=this._model(t),i.added.push(t),n.splice(e,0,t.data),this.trigger(B,{operation:"insert",index:e,model:t}),t},edit:function(t){var e,n=this.data,i=this.changes;if(isNaN(t)||t<0||t>=n.length)throw new Error("shield.DataSource: invalid item index: "+t);return(e=M(i.added.concat(i.edited),function(e){return e.data===n[t]})[0])||(e=this._model(n[t]),i.edited.push(e),n[t]=e.data),e},remove:function(t){var e=this.changes,e=M(e.added.concat(e.edited),function(e){return e===t})[0],n=-1;if(t instanceof p?e&&(n=R(e.data,this.data)):n=R(t,this.data),-1<n)return this.removeAt(n)},removeAt:function(t){var n=this.data,e=this.changes,i=M(e.added.concat(e.edited),function(e){return e.data===n[t]})[0];if(t<0||t>n.length)throw new Error("shield.DataSource: invalid item index: "+t);return i?i.destroy():i=new this.model(n[t]),e.removed.push(i),n.splice(t,1),this.trigger(B,{operation:"remove",index:t,model:i}),i},destroy:function(){for(var e=this.changes,t=e.added.concat(e.edited).concat(e.removed),n=0;n<t.length;n++)t[n].destroy();e.added.length=e.edited.length=e.removed.length=0,this.data=this.original=null,m.fn.destroy.call(this)}}),(p=m.extend({init:function(e,t){m.fn.init.call(this,t),this.fields=E(!0,{},this.constructor.prototype.fields),this.data=E(!0,{},e)},trigger:e.ui.Widget.fn.trigger,get:function(e){return _(this.data,e)},set:function(e,t){(t=this.validate(e,t))!==l&&(P(this.data,e,t),this.trigger(H))},validate:function(e,t){var n,i=_(this.fields,e);if(!i)return t;if(n=C(i.validator)===F?i.validator:C(i.type.validate)===F?i.type.validate:(n=i.type.toString().split("(")[0].split(" ")[1].toLowerCase(),p.validators[n])){if((n=n(t))===l)return void this.trigger(A,{errorType:"validation",path:e,value:t,error:"validation error"});t=n}if(null!==t||!1!==i.nullable)return t;this.trigger(A,{errorType:"validation",path:e,value:t,error:"null value not allowed"})}})).define=function(e){return p.extend({fields:p.normalize(E(!0,{},e))})},p.normalize=function(e){var t,n,i;for(t in e=e||{})e.hasOwnProperty(t)&&(n=e[t],(i=C(n))===F||i===D?e[t]={type:n}:"string"===i&&(e[t]={path:n}));return e},p.def=function(e,t,n){return t!==l?C(t)===F?t():t:n?null:e===String?"":e===Number?0:e===Date?new Date:e!==Boolean&&(e===Array?[]:e===Object?{}:(t=C(e))===D?[]:"object"===t?{}:t===F?e():null)},p.convert=function(e,t){var n;return null==e?e:t===String?e.toString():t===Number?(n=parseFloat(e),isNaN(n)?e:n):t===Date?(n=new Date(e),isNaN(n.getTime())?e:n):t===Boolean?w.string(e)?!/^(false|0)$/i.test(e):!!e:e},p.validators={string:function(e){return null==e?null:e.toString()},number:function(e){return null===e?null:isNaN(+e)?l:+e},date:function(e){return null===e?null:!(e instanceof Date)&&(e=new Date(e),isNaN(e.getTime()))?l:e},boolean:function(e){return null===e?null:null==e?l:!!e},array:function(e){return null===e?null:C(e)===D?e:l},object:function(e){return null===e?null:"object"===C(e)?e:l}},g=a.extend({init:function(e){E(e,{recursive:!0}),a.fn.init.call(this,e)}}),E(e,{map:N,DataSource:a,RecursiveDataSource:g,DataQuery:v,Model:p})}(jQuery,shield),function(M,e,r,k){var i,m,t,l,P,F,n,s=e.ui.Widget,v=(e.Class,e.Constants.KeyCode),b=e.error,d=document,D=Math.abs,B=Math.min,A=Math.max,V=Math.round,j=Math.floor,L=M.extend,p=M.proxy,W=M.each,G=M.isWindow,N=e.is.defined,I=e.is.func,U=e.is.number,O=e.is.object,w=(e.is.null,e.is.string),_=e.is.array,X=e.to.int,q=e.to.number,$=e.to.string,Y=/left|center|right/,K=/top|center|bottom/,J=/[\+\-]\d+(\.[\d]+)?%?/,Z=/^\w+/,Q=/%$/,g="mousedown",ee="mouseup",x="mousemove",te="touchstart",a="touchmove",o="disabled",C="px",R="left",E="right",z="top",S="bottom",T="center",ne="overflow",h="position",u="absolute",ie="relative",re="scroll",ae="horizontal",se="vertical",oe="pointer",le="intersect",he="sui-resizable",ue=he+"-"+o,c="sui-draggable",ce=c+"-"+o,fe=c+"-dragging",f="sui-unselectable",y="sui-droppable",de=y+"-"+o,pe=y+"-over",ge=0;function me(){var e,t,n;return N(i)?i:(n=(t=M('<div style="width:50px;position:absolute;overflow:hidden;height:50px;display:block;"><div style="width:auto;height:100px;"></div></div>')).children()[0],M(d.body).append(t),e=n.offsetWidth,t.css(ne,re),e===(n=n.offsetWidth)&&(n=t[0].clientWidth),t.remove(),i=e-n)}function xe(e){var e=M(e||r),t=G(e[0]),n=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:t,isDocument:n,offset:!t&&e.offset()||{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:t||n?e.width():e.outerWidth(),height:t||n?e.height():e.outerHeight()}}function ye(e,t,n){return[q(e[0])*(Q.test(e[0])?t/100:1),q(e[1])*(Q.test(e[1])?n/100:1)]}function H(e,t){e=e.css(t);return e&&X(e)||0}function ve(e,t){var n=0;return(N(t)?M(t).find(e):M(e)).each(function(e){n=A(n,H(M(this),"z-index"))}),n}function be(e){return"touch"==e.type.toLowerCase().substring(0,5)?{x:e.originalEvent.touches[0].pageX,y:e.originalEvent.touches[0].pageY}:e.pageX||e.pageY?{x:e.pageX,y:e.pageY}:{x:e.clientX+d.body.scrollLeft-d.body.clientLeft,y:e.clientY+d.body.scrollTop-d.body.clientTop}}(o={}).GetWithinInfo=xe,o.GetMaxZIndex=ve,o.GetCoordinates=be,e.ui.Util=o,(m=function(){if(ge++,t)return t;this.init(),t=this}).prototype={_pos:null,init:function(){M(d).on(x+".suiMouseTracker "+a+".suiMouseTracker",p(this._onMouseMove,this))},_onMouseMove:function(e){this._pos=this.getPosFromEvent(e)},getPosFromEvent:be,getPosition:function(e){return N(e)&&(this._pos=this.getPosFromEvent(e)),this._pos},isInWindow:function(e){var e=this.getPosition(e),t=e.x,e=e.y,n=M(r).scrollTop(),i=M(r).scrollLeft();return i<=t&&t<=i+M(r).width()&&n<=e&&e<=n+M(r).height()},destroy:function(){0<--ge||(M(d).off(x+".suiMouseTracker "+a+".suiMouseTracker"),t=null)}},e.MouseTracker=m,(l={}).Set=function(e,t,a){if(!e||!t||!a)throw"Invalid arguments passed to Position.Set";var n,s,o,l,i={my:a.source,at:a.target,collision:a.overflow,inside:a.inside},h=M(t),r=xe(i.inside),u=(d=(t=r).isWindow||t.isDocument?"":t.element.css("overflow-x"),u=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),d=d===re||"auto"===d&&t.width<t.element[0].scrollWidth,{width:u===re||"auto"===u&&t.height<t.element[0].scrollHeight?me():0,height:d?me():0}),c=(i.collision||"flip").split(" "),f={},d=9===(d=(t=h)[0]).nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:G(d)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:d.preventDefault?{width:0,height:0,offset:{top:d.pageY,left:d.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()};h[0].preventDefault&&(i.at="left top"),s=d.width,o=d.height,t=L({},l=d.offset),W(["my","at"],function(){var e,t,n=(i[this]||"").split(" ");(n=1===n.length?Y.test(n[0])?n.concat([T]):K.test(n[0])?[T].concat(n):[T,T]:n)[0]=Y.test(n[0])?n[0]:T,n[1]=K.test(n[1])?n[1]:T,e=J.exec(n[0]),t=J.exec(n[1]),f[this]=[e?e[0]:0,t?t[0]:0],i[this]=[Z.exec(n[0])[0],Z.exec(n[1])[0]]}),1===c.length&&(c[1]=c[0]),i.at[0]===E?t.left+=s:i.at[0]===T&&(t.left+=s/2),i.at[1]===S?t.top+=o:i.at[1]===T&&(t.top+=o/2),n=ye(f.at,s,o),t.left+=n[0],t.top+=n[1];var p,g,m=M(e),x=m.outerWidth(),y=m.outerHeight(),d=H(m,"marginLeft"),e=H(m,"marginTop"),v=x+d+H(m,"marginRight")+u.width,b=y+e+H(m,"marginBottom")+u.height,w=L({},t),_=ye(f.my,m.outerWidth(),m.outerHeight());i.my[0]===E?w.left-=x:i.my[0]===T&&(w.left-=x/2),i.my[1]===S?w.top-=y:i.my[1]===T&&(w.top-=y/2),w.left+=_[0],w.top+=_[1],w.left=V(w.left),w.top=V(w.top),p={marginLeft:d,marginTop:e},W([R,z],function(e,t){P[c[e]]&&P[c[e]][t](w,{targetWidth:s,targetHeight:o,elemWidth:x,elemHeight:y,collisionPosition:p,collisionWidth:v,collisionHeight:b,offset:[n[0]+_[0],n[1]+_[1]],my:i.my,at:i.at,within:r,elem:m})}),I(a.callback)&&(g=function(){var e=l.left-w.left,t=e+s-x,n=l.top-w.top,i=n+o-y,r={target:{element:h,left:l.left,top:l.top,width:s,height:o},element:{element:m,left:w.left,top:w.top,width:x,height:y},horizontal:t<0?R:0<e?E:T,vertical:i<0?z:0<n?S:"middle"};s<=x&&D(e+t)<=s&&(r.horizontal=T),o<=y&&D(n+i)<=o&&(r.vertical="middle"),A(D(e),D(t))>A(D(n),D(i))?r.important=ae:r.important=se,a.callback(r)}),m.offset(w),g&&g()},P={fit:{left:function(e,t){var n,i=t.within,r=i.isWindow?i.scrollLeft:i.offset.left,i=i.width,a=e.left-t.collisionPosition.marginLeft,s=r-a,o=a+t.collisionWidth-i-r;t.collisionWidth>i?0<s&&o<=0?(n=e.left+s+t.collisionWidth-i-r,e.left+=s-n):e.left=!(0<o&&s<=0)&&o<s?r+i-t.collisionWidth:r:0<s?e.left+=s:0<o?e.left-=o:e.left=A(e.left-a,e.left)},top:function(e,t){var n,i=t.within,i=i.isWindow?i.scrollTop:i.offset.top,r=t.within.height,a=e.top-t.collisionPosition.marginTop,s=i-a,o=a+t.collisionHeight-r-i;t.collisionHeight>r?0<s&&o<=0?(n=e.top+s+t.collisionHeight-r-i,e.top+=s-n):e.top=!(0<o&&s<=0)&&o<s?i+r-t.collisionHeight:i:0<s?e.top+=s:0<o?e.top-=o:e.top=A(e.top-a,e.top)}},flip:{left:function(e,t){var n=t.within,i=n.offset.left+n.scrollLeft,r=n.width,n=n.isWindow?n.scrollLeft:n.offset.left,a=e.left-t.collisionPosition.marginLeft,s=a-n,a=a+t.collisionWidth-r-n,o=t.my[0]===R?-t.elemWidth:t.my[0]===E?t.elemWidth:0,l=t.at[0]===R?t.targetWidth:t.at[0]===E?-t.targetWidth:0,h=-2*t.offset[0];s<0?((r=e.left+o+l+h+t.collisionWidth-r-i)<0||r<D(s))&&(e.left+=o+l+h):0<a&&(0<(i=e.left-t.collisionPosition.marginLeft+o+l+h-n)||D(i)<a)&&(e.left+=o+l+h)},top:function(e,t){var n=t.within,i=n.offset.top+n.scrollTop,r=n.height,n=n.isWindow?n.scrollTop:n.offset.top,a=e.top-t.collisionPosition.marginTop,s=a-n,a=a+t.collisionHeight-r-n,o=t.my[1]===z?-t.elemHeight:t.my[1]===S?t.elemHeight:0,l=t.at[1]===z?t.targetHeight:t.at[1]===S?-t.targetHeight:0,h=-2*t.offset[1];s<0?(r=e.top+o+l+h+t.collisionHeight-r-i,e.top+o+l+h>s&&(r<0||r<D(s))&&(e.top+=o+l+h)):0<a&&(i=e.top-t.collisionPosition.marginTop+o+l+h-n,e.top+o+l+h>a&&(0<i||D(i)<a)&&(e.top+=o+l+h))}},flipfit:{left:function(){P.flip.left.apply(this,arguments),P.fit.left.apply(this,arguments)},top:function(){P.flip.top.apply(this,arguments),P.fit.top.apply(this,arguments)}}},e.ui.Position=l,o={enabled:!0,cls:k,iframeFix:!1,resizeCls:k,delta:1,handles:["e","w","n","s","se","sw","ne","nw"],handleWidth:8,handleZIndex:105,minHeight:16,minWidth:16,maxHeight:k,maxWidth:k,events:{}},(n=s.extend({init:function(){s.fn.init.apply(this,arguments),N(this.initialOptions.handles)&&(this.options.handles=this.initialOptions.handles);var e=this,t=M(e.element),n=e.options,i=n.cls;e._eventNS=".shieldResizable"+e.getInstanceId(),e.mouseTracker=new m,t.addClass(he+(i?" "+i:"")),e._initHandles(),e.enabled(n.enabled)},_initHandles:function(){var e,t,n,i=this,r=M(i.element),a=(r.width(),r.height()),s=i.options,o=s.handles,l=s.handleWidth,h=l+C,u=l+2+C,c="-"+(l-2)+C,f=s.handleZIndex;for(i.handles=[],n=0;n<o.length;n++){switch(t={},e=$(o[n]).toLowerCase()){case"e":t={width:h,height:a+C,top:0,right:c};break;case"w":t={width:h,height:a+C,top:0,left:c};break;case"n":t={width:"100%",height:h,top:c};break;case"s":t={width:"100%",height:h,bottom:c};break;case"se":t={width:u,height:u,bottom:c,right:c};break;case"sw":t={width:u,height:u,bottom:c,left:c};break;case"ne":t={width:u,height:u,top:c,right:c};break;case"nw":t={width:u,height:u,top:c,left:c}}t.zIndex=f,i.handles[n]={type:e},i.handles[n][g]=p(i._handleMouseDown,i,n),i.handles[n].element=M('<div class="sui-resizable-handle sui-resizable-dir-'+e+'"></div>').appendTo(r).css(t).on(g,i.handles[n][g])}M(d).on(ee+i._eventNS,p(i._handleMouseUp,i)).on(x+i._eventNS,p(i._handleMouseMove,i))},_destroyHandles:function(){var e,t=this,n=t.handles;for(M(d).off(t._eventNS),e=0;e<n.length;e++)M(t.handles[e].element).off(g,t.handles[e][g]).remove();t.handles=[]},_fixIframes:function(){var e=this.options.iframeFix;e&&(e=!0===e?"iframe":e,this._fixedFrames=M(d.body).find(e).map(function(){var e=M(this);return M("<div/>").css(h,u).appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]}))},_unfixIframes:function(){this._fixedFrames&&(M(this._fixedFrames).remove(),delete this._fixedFrames)},_handleMouseDown:function(e,t){var n=this;n._enabled&&!n.resizing&&(n.resizing=!0,n.resizingHandle=e,n.oldPos=n.mouseTracker.getPosition(t),n.startSent=!1,M(n.element).addClass(f),n._fixIframes())},_handleMouseMove:function(e){var t,n,i,r,a,s,o,l,h,u=this,c=M(u.element),f=u.options,d=f.delta,p=f.minWidth,g=f.maxWidth,m=f.minHeight,x=f.maxHeight,f=f.resizeCls,y=u.resizingHandle,v=u.handles,b=u.mouseTracker,w=u.oldPos;if(b.isInWindow(e)&&u.resizing&&N(y)&&(i=(b=b.getPosition(e)).x-w.x,r=b.y-w.y,n=v[y].type,D(i)>=d||D(r)>=d)){switch(/^(se|sw|ne|nw)$/i.test(n)||(/^(e|w)$/i.test(n)?r=0:i=0),a=i=D(i)<d?0:i,s=r=D(r)<d?0:r,l=o=0,n){case"w":o=-(a=-i);break;case"n":l=-(s=-r);break;case"nw":o=-(a=-i),l=-(s=-r);break;case"sw":o=-(a=-i);break;case"ne":l=-(s=-r)}var e=c.width(),_=c.height(),b=H(c,z),w=H(c,R);if(0<a?(N(g)&&g<e+a&&(a=g-e,0!==o&&(o=-a)),w+o<0&&(o=-(a-=w-o))):a<0&&N(p)&&e+a<p&&(a=p-e,0!==o&&(o=-a)),0<s?(N(x)&&x<_+s&&(s=x-_,0!==l&&(l=-s)),b+l<0&&(l=-(s-=b-l))):s<0&&N(m)&&_+s<m&&(s=m-_,0!==l&&(l=-s)),0!==a||0!==s)if(u.startSent||(u.startSent=!0,u.trigger("start"),f&&c.addClass(f)),!u.trigger("resize",{deltaX:a,deltaY:s}).isDefaultPrevented()){if(c.width(e+a).height(_+s),0===o&&0===l||c.css({top:b+l+C,left:w+o+C}),u.oldPos.x=u.oldPos.x+i,u.oldPos.y=u.oldPos.y+r,0!==r)for(h=0;h<v.length;h++)t=v[h],/^(e|w)$/i.test(t.type)&&M(t.element).height(_+s);u.trigger("resized")}}},_handleMouseUp:function(e){var t=this,n=!!t.startSent,i=t.options.resizeCls;t._unfixIframes(),t.resizing&&(t.resizing=!1,t.resizingHandle=k,t.oldPos=k,t.startSent=!1,n&&t.trigger("stop"),M(t.element).removeClass(f+(i?" "+i:"")))},resize:function(e,t){var n=this.options;e=A(B(e,n.maxWidth),n.minWidth),t=A(B(t,n.maxHeight),n.minHeight),M(this.element).width(e).height(t)},enabled:function(){var e=M(this.element),t=[].slice.call(arguments);if(!(0<t.length))return this._enabled;(t=!!t[0])?e.removeClass(ue):e.addClass(ue),this._enabled=t},destroy:function(){var e=this,t=e.options.cls;e.mouseTracker.destroy(),e.mouseTracker=null,M(e.element).removeClass(he+(t?" "+t:"")),e._destroyHandles(),s.fn.destroy.call(e)}})).defaults=o,e.ui.plugin("Resizable",n),F={droppables:{default:[]},Register:function(e){var t=e.options.scope;F.droppables[t]=F.droppables[t]||[],F.droppables[t].push(e)},UnRegister:function(e){for(var t=e.options.scope,n=F.droppables[t],i=0;i<n.length;i++)n[i]===e&&n.splice(i,1)},PrepareOffsets:function(e,t){for(var n,i,r=F.droppables[e.options.scope]||[],a=M(e.helper||e.element),s=0;s<r.length;s++)n=r[s].enabled(),i=r[s].visible(),r[s].ddIsEnabled=n,r[s].ddIsVisible=i,!n||!i||e&&!r[s].accepts(e.element)||e&&e.element.get(0)===r[s].element.get(0)||(r[s].ddOffset=r[s].element.offset(),r[s].proportions({width:r[s].element[0].offsetWidth,height:r[s].element[0].offsetHeight}));e.proportions({width:a[0].offsetWidth,height:a[0].offsetHeight})},DragStart:function(e,t){F.PrepareOffsets(e,t)},Drag:function(e,t){for(var n=F.droppables[e.options.scope]||[],i=n.length,r=0;r<i;r++)!n[r].ddIsEnabled||!n[r].ddIsVisible||e&&!n[r].accepts(e.element)||e&&e.element.get(0)===n[r].element.get(0)||(F.Intersects(e,n[r],t)?n[r].ddIsOver||(n[r].ddIsOver=!0,n[r].over(e,t)):n[r].ddIsOver&&(n[r].ddIsOver=!1,n[r].out(e,t)))},Drop:function(e,t){for(var n,i,r,a=F.droppables[e.options.scope]||[],s=a.length,o=0;o<s;o++)!a[o].ddIsEnabled||!a[o].ddIsVisible||e&&!a[o].accepts(e.element)||e&&e.element.get(0)===a[o].element.get(0)||(a[o].stop(),r=F.Intersects(e,a[o],t),a[o].ddIsOver=!1,r&&((r=a[o].drop(e,t)).isDefaultPrevented()&&(n=!0),r.skipAnimation&&(i=!0)));return{cancelled:n,skipAnimation:i}},Intersects:function(e,t,n){var i,r,a,s,o,l,h,u=t.options.tolerance,c=O(u)?u.x:u,u=O(u)?u.y:u,f=t.proportions(),t=t.ddOffset,d=f.width,f=f.height,p=t.left,t=t.top,g=c==oe?(h=(g=new m).getPosition(n),g.destroy(),p<=h.x&&p+d>=h.x):(r=(i=e.proportions()).width,a=i.height,o=(s=M(e.helper||e.element).offset()).left,l=s.top,"fit"==c?F._linesOverlap(o,o+r,p,p+d,r):c==le?F._linesOverlap(o,o+r,p,p+d,r/2):F._linesOverlap(o,o+r,p,p+d,0));return!!g&&(p=u==oe?(h||(h=(c=new m).getPosition(n),c.destroy()),t<=h.y&&t+f>=h.y):(i||(r=(i=e.proportions()).width,a=i.height,o=(s=M(e.helper||e.element).offset()).left,l=s.top),"fit"==u?F._linesOverlap(l,l+a,t,t+f,a):u==le?F._linesOverlap(l,l+a,t,t+f,a/2):F._linesOverlap(l,l+a,t,t+f,0)),g&&p)},_linesOverlap:function(e,t,n,i,r){return N(r)||(r=0),e<n&&t<i?r<t-n:!(n<e&&i<t)||r<i-e}},e.ui.DDManager=F,o={enabled:!0,iframeFix:!1,cls:k,dragCls:k,scope:"default",handle:k,direction:k,min:k,max:k,step:k,allowedPositions:k,stack:!0,helper:k,appendTo:"parent",animation:{enabled:!0,revertDuration:200},events:{}},(n=s.extend({init:function(){s.fn.init.apply(this,arguments);var e=this,t=M(e.element),n=e.options,i=n.cls;e._destroyed&&(e._destroyed=!1),e._eventNS=".shieldDraggable"+e.getInstanceId(),e.mouseTracker=new m,t.addClass(c+(i?" "+i:"")),(i=t.css(h))!==ie&&i!==u&&(e._origPosStyle=i,t.css(h,ie)),e.enabled(n.enabled),e.startSent=!1},proportions:function(){var e=this;if(!(0<arguments.length))return e._proportions||(e._proportions={width:e.element[0].offsetWidth,height:e.element[0].offsetHeight});e._proportions=arguments[0]},_fixIframes:function(){var e=this.options.iframeFix;e&&(e=!0===e?"iframe":e,this._fixedFrames=M(d.body).find(e).map(function(){var e=M(this);return M("<div/>").css(h,u).appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]}))},_unfixIframes:function(){this._fixedFrames&&(M(this._fixedFrames).remove(),delete this._fixedFrames)},_handleMouseDown:function(e){var t=this,n=t._eventNS;!t._enabled||t._destroyed||t._dragging||(M(d.body).addClass(f),t._dragging=!0,t.startSent=!1,t.helper=t._isCustomHelper=null,t.stepPosition=t.mousePos=t.mouseTracker.getPosition(e),M(d).on(x+n+" "+a+n,p(t._handleMouseMove,t)).on(ee+n+" touchend"+n,p(t._handleMouseUp,t)).on("keydown"+n,p(t._handleKeyDown,t)),t._fixIframes())},_initHelper:function(e){var t,n=this,i=n.element,r=n.options,a=r.helper,s=r.appendTo,o=r.cls,r=r.dragCls;n._helperInitialized||(a&&"original"!==a?((t=I(a)?a.call(n,{position:n.oriPosition,event:e}):"clone"==a?i.clone():M(a)).parents("body").length||("parent"===s?i.after(t):s&&"body"!==s?t.appendTo(M(s)):t.appendTo(d.body)),/(fixed|absolute)/i.test(t.css(h))||t.css(h,u),l.Set(t,i,{source:"left top",target:"left top",overflow:"none"}),n._isCustomHelper=!0):(t=i,n._isCustomHelper=!1),(n.helper=t).addClass(f+" "+c+(o?" "+o:"")+" "+fe+(r?" "+r:"")),n.oriPosition={left:H(t,R),top:H(t,z)},n._helperInitialized=!0)},_handleMouseMove:function(e){var t,n,i,r,a,s,o,l,h,u,c=this,f=c.options,d=f.step,p=f.direction,g=f.allowedPositions,m=g!==k&&0<g.length,x=f.min,f=f.max,y=c.mouseTracker,v=y.getPosition(e);if(y.isInWindow(e)&&c._dragging){if(c._initHelper(e),h=(y=M(c.helper)).width(),u=y.height(),i=H(y,z),r=H(y,R),m){for(var b,w=k,_=k,P=k,C=k,E=r+(v.x-c.stepPosition.x),S=i+(v.y-c.stepPosition.y),T=0;T<g.length;T++)(b=g[T]).x!==k&&(P===k||P>D(E-b.x))&&(P=D(E-b.x),w=T),b.y!==k&&(C===k||C>D(S-b.y))&&(C=D(S-b.y),_=T);a=r,s=i,w!==k&&(a=g[w].x,c.stepPosition.x+=g[w].x-r),_!==k&&(s=g[_].y,c.stepPosition.y+=g[_].y-i)}else{if(o=p==se?0:v.x-c.mousePos.x,l=p==ae?0:v.y-c.mousePos.y,N(d)){if(m=I(d)?d.call(this,{deltaX:o,deltaY:l,element:y,domEvent:e,helperLeft:H(y,R),helperTop:H(y,z),mouse:v}):d,U(m)?t=n=m:O(m)&&(t=m.x,n=m.y),N(t)&&D(o)<t&&N(n)&&D(l)<n)return;N(t)&&1<t&&o%t!=0&&(o=(0<=o?1:-1)*j(D(o)/t)*t),N(n)&&1<n&&l%n!=0&&(l=(0<=l?1:-1)*j(D(l)/n)*n)}a=r+o,s=A(0,i+l)}p==ae&&(x!==k&&(a=A(x,a))===x&&(o=0),f!==k&&(a=B(f-h,a))===f-h&&(o=0)),p==se&&(x&&(s=A(x,s))===x&&(l=0),f&&(s=B(f-u,s))===f-u&&(l=0)),y.css({left:a,top:s}),c.mousePos=v,c.startSent||(c.startSent=!0,c.trigger("start",{element:y,domEvent:e}),c._adjustZIndex(),F.DragStart(c,e)),c.trigger("drag",{deltaX:o,deltaY:l,element:y,domEvent:e}),F.Drag(c,e)}},_handleMouseUp:function(e){var t,n,i=this,r=i.element,a=i.helper,s=i.options.animation;i._unfixIframes(),M(d.body).removeClass(f),i._dragging&&(i.startSent?(t=(n=F.Drop(i,e)).cancelled,n=n.skipAnimation,n=(e=i.trigger("stop",{left:H(a,R),top:H(a,z),element:a,domEvent:e,cancelled:t,skipAnimation:n})).skipAnimation,!0===e.cancelled||e.isDefaultPrevented()?M(a).animate({left:i.oriPosition.left,top:i.oriPosition.top},!n&&s&&s.enabled?s.revertDuration:0,p(i._endDrag,i)):(i._isCustomHelper&&(l.Set(r,a,{source:"left top",target:"left top",overflow:"none"}),i._adjustZIndex(r)),i._endDrag())):i._endDrag())},_adjustZIndex:function(e){var t=this.options.stack;!1!==t&&(N(e)||(e=this.helper),M(e).css("z-index",ve(!0===t?"."+c:t)+1))},_handleKeyDown:function(e){var t=this;e.keyCode===v.ESC&&t._dragging&&(t.helper.css({left:t.oriPosition.left+C,top:t.oriPosition.top+C}),t.trigger("cancel"),t._unfixIframes(),t._endDrag())},_endDrag:function(){var e=this,t=e.options.dragCls;e._dragging=!1,e._isCustomHelper?M(e.helper).remove():M(e.helper).removeClass(f+" "+fe+(t?" "+t:"")),M(d).off(e._eventNS),e.mousePos=e.oriPosition=e.helper=e._isCustomHelper=e._helperInitialized=null},enabled:function(){var e=this,t=M(e.element),n=e.options,n=n.handle?M(n.handle):t,i=[].slice.call(arguments);if(!(0<i.length))return e._enabled;(i=!!i[0])?(t.removeClass(ce),e._mouseDownProxy||(e._mouseDownProxy=p(e._handleMouseDown,e),n.on(g+" "+te,e._mouseDownProxy))):(t.addClass(ce),e._mouseDownProxy&&(n.off(g+" "+te,e._mouseDownProxy),e._mouseDownProxy=null)),e._enabled=i},destroy:function(){var e=this,t=e.options.cls;e.enabled(!1),e.mouseTracker&&(e.mouseTracker.destroy(),e.mouseTracker=null),M(e.element).removeClass(c+" "+ce+(t?" "+t:"")),e._origPosStyle&&(M(e.element).css(h,e._origPosStyle),e._origPosStyle=null),e._destroyed=!0,s.fn.destroy.call(e)}})).defaults=o,e.ui.plugin("Draggable",n),o={enabled:!0,accepts:"*",cls:k,hoverCls:k,tolerance:"intersect",scope:"default",events:{}},(n=s.extend({init:function(){s.fn.init.apply(this,arguments);var e=this,t=M(e.element),n=e.options,i=n.dieOnError,r=n.accepts,a=n.cls;w(r)||_(r)||r instanceof M||I(r)?(e._eventNS=".shieldDroppable"+e.getInstanceId(),t.addClass(y+(a?" "+a:"")),F.Register(e),e.enabled(n.enabled)):b("shieldDroppable: The accepts option must be a string, array, function or jQuery object.",i)},accepts:function(e){var t=this.options.accepts;return I(t)?t.call(this,e):M(e).is(t)},proportions:function(){var e=this;if(!(0<arguments.length))return e._proportions||(e._proportions={width:e.element[0].offsetWidth,height:e.element[0].offsetHeight});e._proportions=arguments[0]},over:function(e,t){var n=this.options.hoverCls;this.trigger("over",{draggable:e.element,droppable:this.element,domEvent:t}).isDefaultPrevented()||M(this.element).addClass(pe+(n?" "+n:""))},out:function(e,t){var n=this.options.hoverCls;this.trigger("out",{draggable:e.element,droppable:this.element,domEvent:t}),M(this.element).removeClass(pe+(n?" "+n:""))},stop:function(){var e=this.options.hoverCls;M(this.element).removeClass(pe+(e?" "+e:""))},drop:function(e,t){return this.trigger("drop",{draggable:e.element,droppable:this.element,cancelled:t.cancelled,skipAnimation:t.skipAnimation,domEvent:t})},enabled:function(){var e=[].slice.call(arguments);if(!(0<e.length))return this._enabled;(e=!!e[0])?M(this.element).removeClass(de):M(this.element).addClass(de),this._enabled=e},destroy:function(){var e=this,t=e.options.cls;F.UnRegister(e),M(e.element).removeClass(y+de+f+(t?" "+t:"")),e._enabled=e._proportions=k,s.fn.destroy.call(e)}})).defaults=o,e.ui.plugin("Droppable",n)}(jQuery,shield,this),function(o,e,L,W){function G(e){return o("<div/>").text(e).html().replace('"',""").replace(/(?:[\x00-\x08]|[\x0B-\x0C]|[\x0E-\x1F])/g,"")}function U(e){return o("<div/>").html(e).text()}function te(e){return J(e)||(M(e)&&(e=e.replace(/\s+/g,"")),e=new Date(e)),(25569+e.getTime()/864e5).toString()}function _(e){return Z(e)?J(e)?e:new Date(M(e)?e.replace(/\s+/g,""):e):new Date}function ne(e){return _(e).toISOString().replace(/\.\d+/,"")}function S(e){return Z(e)&&M(e)&&0<e.length?e.charAt(0).toUpperCase()+e.substr(1):e}function E(e){return e?1:0}function ie(e){return("FF"+e).replace("#","").toUpperCase()}function re(e,t){return function(e){for(var t,n=V(e),i="";0<n;)t=(n-1)%26,i=String.fromCharCode(65+t)+i,n=V((n-t)/26);return i}(t)+e}function T(e,t){return'<?xml version="1.0"'+(e?' encoding="UTF-8"':"")+(t?' standalone="yes"':"")+"?>\n"}function X(){return T(1,1)}var P,n,r,q,u,f,d,C,p,F,a,g,D,B,m,x,A,N,l,h=e.exp=e.exp||{},I=e.Class,t=(e.DataSource,e.support.browser),O=e.iid,y=document,$=o.extend,Y=o.map,R=o.each,i=e.is,M=i.string,k=i.array,K=i.number,ae=i.boolean,J=i.date,Z=i.defined,Q=i.null,z=i.func,H=i.object,V=e.to.int,se=e.to.key,ee=e.error,oe=e.keys,j=(e.get,e.Constants.XHTML_NS),le="application/octet-stream",he="download",ue="Untitled",ce="creator",s="helvetica",c="times",v="courier",b="normal",w="bold",fe="italic",de="bolditalic",pe=19.049976/25.4;u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Z((i=L).btoa)||(i.btoa=function(e){var t,n,i,r,a=0,s=0,o="",l=[];if(!e)return e;for(;t=(r=e.charCodeAt(a++)<<16|e.charCodeAt(a++)<<8|e.charCodeAt(a++))>>12&63,n=r>>6&63,i=63&r,l[s++]=u.charAt(r>>18&63)+u.charAt(t)+u.charAt(n)+u.charAt(i),a<e.length;);var o=l.join(""),h=e.length%3;return(h?o.slice(0,h-3):o)+"===".slice(h||3)}),Z(i.atob)||(i.atob=function(e){var t,n,i,r,a,s=0,o=0,l=[];if(!e)return e;for(e+="";t=(a=u.indexOf(e.charAt(s++))<<18|u.indexOf(e.charAt(s++))<<12|(i=u.indexOf(e.charAt(s++)))<<6|(r=u.indexOf(e.charAt(s++))))>>16&255,n=a>>8&255,a=255&a,l[o++]=64==i?String.fromCharCode(t):64==r?String.fromCharCode(t,n):String.fromCharCode(t,n,a),s<e.length;);return l.join("")}),function(){if(L.URL=L.URL||L.webkitURL,L.Blob&&L.URL)try{new L.Blob;return h.Blob=L.Blob}catch(e){}var s=L.BlobBuilder||L.WebKitBlobBuilder||L.MozBlobBuilder||function(){function o(e){return Object.prototype.toString.call(e).match(/^\[object\s(.*)\]$/)[1]}function e(){this.data=[]}function l(e,t,n){this.data=e,this.size=e.length,this.type=t,this.encoding=n}function h(e){this.code=this[this.name=e]}var t=e.prototype,n=l.prototype,u=L.FileReaderSync,i="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),r=i.length,a=L.URL||L.webkitURL||L,s=a.createObjectURL,c=a.revokeObjectURL,f=a,d=L.btoa,p=L.atob,g=L.ArrayBuffer,m=L.Uint8Array,x=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(l.fake=n.fake=!0;r--;)h.prototype[i[r]]=r+1;return(f=a.createObjectURL?f:L.URL=function(e){var t=y.createElementNS(j,"a");return t.href=e,"origin"in t||("data:"===t.protocol.toLowerCase()?t.origin=null:(e=e.match(x),t.origin=e&&e[1])),t}).createObjectURL=function(e){var t=e.type;return Q(t)&&(t=le),e instanceof l?(t="data:"+t,"base64"===e.encoding?t+";base64,"+e.data:"URI"===e.encoding?t+","+decodeURIComponent(e.data):d?t+";base64,"+d(e.data):t+","+encodeURIComponent(e.data)):s?s.call(a,e):void 0},f.revokeObjectURL=function(e){"data:"!==e.substring(0,5)&&c&&c.call(a,e)},t.append=function(e){var t=this.data;if(Z(m)&&(e instanceof g||e instanceof m)){for(var n="",i=new m(e),r=i.length,a=0;a<r;a++)n+=String.fromCharCode(i[a]);t.push(n)}else if("Blob"===o(e)||"File"===o(e)){if(!u)throw new h("NOT_READABLE_ERR");var s=new u;t.push(s.readAsBinaryString(e))}else e instanceof l?"base64"===e.encoding&&p?t.push(p(e.data)):"URI"===e.encoding?t.push(decodeURIComponent(e.data)):"raw"===e.encoding&&t.push(e.data):(e+="",t.push(L.unescape(encodeURIComponent(e))))},t.getBlob=function(e){return arguments.length||(e=null),new l(this.data.join(""),e,"raw")},t.toString=function(){return"[object BlobBuilder]"},n.slice=function(e,t,n){var i=arguments.length;return i<3&&(n=null),new l(this.data.slice(e,1<i?t:this.data.length),n,this.encoding)},n.toString=function(){return"[object Blob]"},n.close=function(){this.size=0,delete this.data},e}(),e=(h.Blob=function(e,t){var n,i,t=t&&t.type||"",r=new s,a=L.Uint8Array;if(e)for(n=0,i=e.length;n<i;n++)Z(a)&&a&&e[n]instanceof a?r.append(e[n].buffer):r.append(e[n]);return!(t=r.getBlob(t)).slice&&t.webkitSlice&&(t.slice=t.webkitSlice),t},Object.getPrototypeOf||function(e){return e.__proto__});h.Blob.prototype=e(new h.Blob)}(),l=L.saveAs||(t.ie&&t.version<10?W:(f=function(){return L.URL||L.webkitURL||L},d=y.createElementNS(j,"a"),C=he in d,p=L.webkitRequestFileSystem,F=L.requestFileSystem||p||L.mozRequestFileSystem,a=function(e){(L.setImmediate||L.setTimeout)(function(){throw e},0)},g=le,D=0,B=500,m=function(e){function t(){M(e)?f().revokeObjectURL(e):e.remove()}L.chrome?t():setTimeout(t,B)},x=function(e,t,n){for(var i,r=(t=[].concat(t)).length;r--;)if(i=e["on"+t[r]],z(i))try{i.call(e,n||e)}catch(e){a(e)}},A=function(e){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e},e=(N=function(i,n,e){e||(i=A(i));function r(){var e;!h&&s||(s=f().createObjectURL(i)),o?o.location.href=s:(e=L.open(s,"_blank"),Z(e)||"undefined"==typeof safari||(L.location.href=s)),l.readyState=l.DONE,u(),m(s)}function a(e){return function(){if(l.readyState!==l.DONE)return e.apply(this,arguments)}}var s,o,t,l=this,e=i.type,h=!1,u=function(){x(l,"writestart progress write writeend".split(" "))},c={create:!0,exclusive:!1};l.readyState=l.INIT,n=n||ue,C?(s=f().createObjectURL(i),d.href=s,d.download=n,setTimeout(function(){var e,t;e=d,t=new MouseEvent("click"),e.dispatchEvent(t),u(),m(s),l.readyState=l.DONE})):(L.chrome&&e&&e!==g&&(t=i.slice||i.webkitSlice,i=t.call(i,0,i.size,g),h=!0),p&&n!==he&&(n+="."+he),e!==g&&!p||(o=L),F?(D+=i.size,F(L.TEMPORARY,D,a(function(e){e.root.getDirectory("saved",c,a(function(e){function t(){e.getFile(n,c,a(function(n){n.createWriter(a(function(t){t.onwriteend=function(e){o.location.href=n.toURL(),l.readyState=l.DONE,x(l,"writeend",e),m(n)},t.onerror=function(){var e=t.error;e.code!==e.ABORT_ERR&&r()},"writestart progress write abort".split(" ").forEach(function(e){t["on"+e]=l["on"+e]}),t.write(i),l.abort=function(){t.abort(),l.readyState=l.DONE},l.readyState=l.WRITING}),r)}),r)}e.getFile(n,{create:!1},a(function(e){e.remove(),t()}),a(function(e){(e.code===e.NOT_FOUND_ERR?t:r)()}))}),r)}),r)):r())}).prototype,Z(navigator)&&navigator.msSaveOrOpenBlob?function(e,t,n){return n||(e=A(e)),navigator.msSaveOrOpenBlob(e,t||ue)}:(e.abort=function(){this.readyState=this.DONE,x(this,"abort")},e.readyState=e.INIT=0,e.WRITING=1,e.DONE=2,e.error=e.onwritestart=e.onprogress=e.onwrite=e.onabort=e.onerror=e.onwriteend=null,function(e,t,n){return new N(e,t,n)}))),h.saveAs=function(e){var t=e.content,n=e.contentType,i=e.name,r=e.noAutoBom,a=e.proxy,s="suidlifrm"+O();Z(l)&&!e.forceProxy?l(new h.Blob([t],{type:n}),i,r):a?(o(P).remove(),P=o('<div style="display:none;"><iframe name="'+s+'"></iframe></div>').appendTo(y.body),o('<form action="'+a+'" target="'+s+'" method="POST"><input type="hidden" name="fileName" value="'+i+'"/><input type="hidden" name="contentType" value="'+n+'"/><input type="hidden" name="base64content" value="'+L.btoa(t)+'"/></form>').appendTo(P).submit()):ee("shield.export.saveAs: No proxy url set for older browser support",e.dieOnError)},h.saveAsNative=Z(l),n=I.extend({init:function(e){this.options=$(!0,{},e)},getExt:null,getContentType:null,getContent:null,saveAs:function(e){var t,n,i,r=e.fileName,a=!Z(e.forceExt)||!!e.forceExt,s=this.getExt(),o=!h.saveAsNative||e.forceProxy?{type:"string"}:{},o=this.getContent(o);Z(o)?(r=r||ue,n=s,(t=r+="")&&n&&0<=(i=t.indexOf(n))&&i===t.length-n.length||!a||(r+=s),h.saveAs({content:o,contentType:this.getContentType(),name:r,proxy:e.proxy,forceProxy:e.forceProxy,noAutoBom:e.noAutoBom,dieOnError:e.dieOnError})):ee("shield.export.ExportBase.saveAs: Error generating content",this.options.dieOnError)},destroy:function(){}}),q=n.extend({getExt:function(){return".xml"},getContentType:function(){return"text/xml;charset=utf-8"},getContent:function(e){for(var t=this.options,n=ne(t.created||new Date),i=(t.author,t.worksheets||[]),r=20,a=[],s=[],t=U("Shield UI Framework"),n=T()+'<?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"><DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"><Created>'+n+"</Created>"+(t?"<Author>"+t+"</Author>":"")+'</DocumentProperties><ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"><ProtectStructure>False</ProtectStructure><ProtectWindows>False</ProtectWindows></ExcelWorkbook>',o=0;o<i.length;o++){for(var l,h,u,c,f,d,p,g,m,x,y=i[o],v=y.name,b=y.columns||[],w=[],_=y.rows||[],P=[],C=0;C<b.length;C++)u=b[C],w.push("<Column"+(Z(u.autoWidth)?' ss:AutoFitWidth="'+E(u.autoWidth)+'"':"")+(Z(u.width)?' ss:Width="'+u.width+'"':"")+(Z(u.index)?' ss:Index="'+u.index+'"':"")+"/>");for(C=0;C<_.length;C++){for(l=(c=_[C]).cells||[],f="<Row"+(Z(c.height)?' ss:Height="'+c.height+'"':"")+(Z(c.index)?' ss:Index="'+c.index+'"':"")+">",h=0;h<l.length;h++)p=(d=l[h]).type,m=d.value,x=d.style,g=null,"DateTime"==(p=Z(p)&&!Q(p)?p===Date?"DateTime":p===Number?"Number":p===Boolean?"Boolean":"String":J(m)?"DateTime":K(m)?"Number":ae(m)?"Boolean":"String")&&(m=ne(m)),H(x)&&(g="s"+r++,a.push('<Style ss:ID="'+g+'"><Alignment'+(x.textAlign?' ss:Horizontal="'+S(x.textAlign)+'"':"")+(x.verticalAlign?' ss:Vertical="'+S(x.verticalAlign)+'"':"")+(Z(x.wrap)?' ss:WrapText="'+E(x.wrap)+'"':"")+"/>"+(Z(x.format)?'<NumberFormat ss:Format="'+G(x.format)+'"/>':"")+"<Font"+(Z(x.bold)?' ss:Bold="'+E(x.bold)+'"':"")+(Z(x.italic)?' ss:Italic="'+E(x.italic)+'"':"")+(Z(x.color)?' ss:Color="'+x.color+'"':"")+(Z(x.fontName)?' ss:FontName="'+x.fontName+'"':"")+(Z(x.fontSize)?' ss:Size="'+x.fontSize+'"':"")+"/><Interior"+(Z(x.background)?' ss:Color="'+x.background+'" ss:Pattern="Solid"':"")+"/></Style>")),f+="<Cell"+(g?' ss:StyleID="'+g+'"':"")+(Z(d.index)?' ss:Index="'+d.index+'"':"")+(Z(d.colSpan)?' ss:MergeAcross="'+d.colSpan+'"':"")+(Z(d.rowSpan)?' ss:MergeDown="'+d.rowSpan+'"':"")+'><Data ss:Type="'+p+'">'+(Z(m)?G(m):"")+"</Data></Cell>";P.push(f+="</Row>")}s.push('<Worksheet ss:Name="'+(v?G(v):"Sheet1")+'"><Table>'+w.join("")+P.join("")+"</Table></Worksheet>")}return(n+='<Styles><Style ss:ID="Default" ss:Name="Normal"><Alignment ss:Vertical="Bottom"/><Borders/><Font/><Interior/><NumberFormat/><Protection/></Style>'+a.join("")+"</Styles>")+s.join("")+"</Workbook>"}}),i=n.extend({getExt:function(){return".xlsx"},getContentType:function(){return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},getContent:function(e){var t=this.options,n=t.dieOnError;if(!Z(L.JSZip))return t.noLegacyFallback?void ee("shield.export.OOXMLWorkbook.getContent: No ZIP library found",n):new q(t).getContent();for(var i,r,a,s,n=ne(t.created||new Date),o=(t.author,t.worksheets||[]),t=o.length,l=new L.JSZip,h=[],u={},c=[],f=100,d=['<font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font>'],p=['<fill><patternFill patternType="none"/></fill>','<fill><patternFill patternType="gray125"/></fill>'],g=['<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>'],O=X()+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>'+Y(o,function(e,t){return'<Override PartName="/xl/worksheets/sheet'+(t+1)+'.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>'}).join("")+'<Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>',t=(X(),X()+'<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>Microsoft Excel</Application><DocSecurity>0</DocSecurity><ScaleCrop>false</ScaleCrop><HeadingPairs><vt:vector size="2" baseType="variant"><vt:variant><vt:lpstr>Worksheets</vt:lpstr></vt:variant><vt:variant><vt:i4>'+t+'</vt:i4></vt:variant></vt:vector></HeadingPairs><TitlesOfParts><vt:vector size="'+t+'" baseType="lpstr">'+Y(o,function(e,t){return"<vt:lpstr>"+(e.name?G(e.name):"Sheet"+(t+1))+"</vt:lpstr>"}).join("")+"</vt:vector></TitlesOfParts><LinksUpToDate>false</LinksUpToDate><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>15.0300</AppVersion></Properties>"),m=U("Shield UI Framework"),m=X()+'<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>'+(m||"")+'</dc:creator><dcterms:created xsi:type="dcterms:W3CDTF">'+n+"</dcterms:created></cp:coreProperties>",n=X()+'<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x15" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><fileVersion appName="xl" lastEdited="6" lowestEdited="4" rupBuild="14420"/><workbookPr filterPrivacy="1" defaultThemeVersion="124226"/><sheets>'+Y(o,function(e,t){return'<sheet name="'+(e.name?G(e.name):"Sheet"+(t+1))+'" sheetId="'+(t+1)+'" r:id="rId'+(t+1)+'"/>'}).join("")+"</sheets></workbook>",x=(X(),1),R=X()+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+Y(o,function(e,t){var n=x++;return'<Relationship Id="rId'+n+'" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet'+n+'.xml"/>'}).join("")+'<Relationship Id="rId'+x+++'" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/><Relationship Id="rId'+x+++'" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/><Relationship Id="rId'+x+++'" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/></Relationships>',y=(X(),0);y<o.length;y++){for(var v=o[y],b=v.columns||[],w=b.length,_=v.rows||[],z=_.length,P="",C=[],E=[],S=0;S<z;S++){for(var T=_[S],H=[],V=T.cells||[],j=V.length,M=0;M<j;M++){var k,F,D=V[M],B=D.type,A=D.value,N=$({},D.style||{});Z(B)&&!Q(B)?B===Date?(k=W,A=te(A),N.format||(N.format="m/d/yyyy hh:mm")):k=B===Number?W:B===Boolean?"b":"inlineStr":J(A)?(k=W,A=te(A),N.format||(N.format="m/d/yyyy hh:mm")):k=K(A)?W:ae(A)?"b":"inlineStr",s=B=void 0,F="",N=!(N=N)||oe(N).length<=0?W:(B=se(N),u[B]?u[B].cellXfsIndex:(Z(N.format)&&(f++,c.push('<numFmt numFmtId="'+f+'" formatCode="'+G(N.format).replace(" ","\\ ")+'"/>'),F+=' numFmtId="'+f+'" applyNumberFormat="1"'),N.background&&(p.push('<fill><patternFill patternType="solid"><fgColor rgb="'+ie(N.background)+'"/></patternFill></fill>'),F+=' fillId="'+(p.length-1)+'" applyFill="1"'),(Z(N.bold)||Z(N.color)||Z(N.fontName)||Z(N.fontSize)||Z(N.italic))&&(d.push("<font>"+(Z(N.bold)?'<b val="'+!!N.bold+'"/>':"")+(Z(N.color)?'<color rgb="'+ie(N.color)+'"/>':"")+(Z(N.fontName)?'<name val="'+N.fontName+'"/>':"")+(Z(N.fontSize)?'<sz val="'+N.fontSize+'"/>':"")+(Z(N.italic)?'<i val="'+!!N.italic+'"/>':"")+"</font>"),F+=' fontId="'+(d.length-1)+'" applyFont="1"'),(Z(N.textAlign)||Z(N.verticalAlign)||Z(N.wrap))&&(s="<alignment"+(Z(N.textAlign)?' horizontal="'+N.textAlign+'"':"")+(Z(N.verticalAlign)?' vertical="'+N.verticalAlign+'"':"")+(Z(N.wrap)?' wrapText="'+!!N.wrap+'"':"")+"/>"),F||s?(g.push("<xf"+(F||"")+(s?">"+s+"</xf>":"/>")),u[B]={cellXfsIndex:g.length-1},g.length-1):W)),F=(A+"").length,(!Z(C[M])||C[M]<F)&&(C[M]=F),H.push("<c"+(Z(D.index)?' r="'+re(Z(T.index)?T.index:S+1,D.index)+'"':"")+(Z(k)?' t="'+k+'"':"")+(Z(N)?' s="'+N+'"':"")+">"+("inlineStr"==k?"<is><t>"+G(A)+"</t></is>":"<v>"+A+"</v>")+"</c>")}E.push("<row"+(Z(T.index)?' r="'+T.index+'"':"")+(Z(T.height)?' ht="'+T.height+'" customHeight="1"':"")+">"+H.join("")+"</row>")}if(0<w){for(P="<cols>",M=0;M<w;M++){var I=b[M];P+="<col"+(Z(I.index)?' min="'+I.index+'" max="'+I.index+'"':' min="'+(M+1)+'" max="'+(M+1)+'"')+(Z(I.width)?' width="'+(r=I.width,a=Z(a=void 0)?a:7,((r-5)/7*100+.5)/100)+'"':"")+(!0!==I.autoWidth&&Z(I.width)?"":' width="'+(C[M]*(a=Z(a=void 0)?a:7)+5)/a*256/256+'"')+(!0===I.autoWidth?' bestFit="1"':"")+(Z(I.autoWidth)||Z(I.width)?' customWidth="1"':"")+"/>"}P+="</cols>"}v=X()+'<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><dimension ref="A1"/><sheetViews><sheetView tabSelected="1" workbookViewId="0"/></sheetViews><sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>'+P+"<sheetData>"+E.join("")+'</sheetData><pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/></worksheet>',h.push(v)}for(i=X()+'<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><numFmts count="'+c.length+'">'+c.join("")+'</numFmts><fonts count="'+d.length+'" x14ac:knownFonts="1">'+d.join("")+'</fonts><fills count="'+p.length+'">'+p.join("")+'</fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="'+g.length+'">'+g.join("")+'</cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles><dxfs count="0"/><tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleMedium9"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>',l.file("[Content_Types].xml",O),l.file("_rels/.rels",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>'),l.file("docProps/app.xml",t),l.file("docProps/core.xml",m),l.file("xl/workbook.xml",n),l.file("xl/styles.xml",i),l.file("xl/sharedStrings.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"/>'),l.file("xl/_rels/workbook.xml.rels",R),l.file("xl/theme/theme1.xml",'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink><a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria" panose="020F0302020204030204"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="MS Pゴシック"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/><a:font script="Geor" typeface="Sylfaen"/></a:majorFont><a:minorFont><a:latin typeface="Calibri" panose="020F0502020204030204"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="MS Pゴシック"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Arial"/><a:font script="Hebr" typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/><a:font script="Geor" typeface="Sylfaen"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme>'),y=0;y<h.length;y++)l.file("xl/worksheets/sheet"+(y+1)+".xml",h[y]);return e&&"string"!=e.type&&L.JSZip.support.uint8array?l.generate({type:"uint8array"}):l.generate({type:"string"})},saveAs:function(e){var t=this.options;return Z(L.JSZip)?n.fn.saveAs.call(this,e):t.noLegacyFallback?void ee("shield.export.OOXMLWorkbook.saveAs: No ZIP library found",t.dieOnError):new q(t).saveAs(e)}}),r={unit:"pt",textColor:"0 g",drawColor:"0 G",fontSize:12,lineHeight:1.15,lineWidth:.200025,producer:"ShieldUI PDF Builder",created:new Date},t=n.extend({_version:"1.3",_formats:{a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],letter:[612,792],"government-letter":[576,756],legal:[612,1008],"credit-card":[153,243]},_documentProps:["title","subject","author","keywords",ce],_capJoinStyles:{0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},_noMargins:{left:0,top:0,bottom:0},init:function(e){this.options=$(!0,r,e,{});var e=this,t=e.options;t.dieOnError;e._scaleFactor=e._getScaleFactor(),e._fontSize=t.fontSize,e._textColor=t.textColor,e._objectNumber=2,e._printToDoc=!0,e._offsets=[],e._fonts={},e._fontmap={},e._pages=[],e._pagesContext=[],e._pageDim=[],e._content=[],e._additionalObjects=[],e._page=e._lineCapID=e._lineJoinID=e._contentLength=0,e._fontKey=e._tmp=e._currentPage=e._pageWidth=e._pageHeight=e._pageMode=e._zoomMode=e._layoutMode=W,e._cellPadding=3,e._cellMargin=13,e._lastCellPos={x:W,y:W,w:W,h:W,ln:W},e._cellHeaderFunction=e._tablePrintHeader=e._cellMargins=e._cellTableHeaderRow=e._cellPrintingHeaderRow=e._tableFontSize=W,e._cellPages=1,e.addFonts(),e._fontKey="F1"},getExt:function(){return".pdf"},getContentType:function(){return"application/pdf"},getContent:function(e){return e&&"string"!=e.type?this._getArrayBuffer():this._build()},_toString:function(e){return(""+e).toLowerCase()},_getScaleFactor:function(){var e=this.options.unit;switch(e){case"pt":return 1;case"mm":return 72/25.4000508;case"cm":return 72/2.54000508;case"in":return 72;case"px":return 96/72;case"pc":case"em":return 12;case"ex":return 6;default:return void ee("shieldExport: Invalid measurement unit: "+e,this.options.dieOnError)}},_setNumberPrecision:function(e,t){return e.toFixed(t)},_setPadding:function(e,t,n){return("0"+parseInt(e,t)).slice(-n)},_write:function(e){var t=this;(t._printToDoc?(t._contentLength+=e.length+1,t._content):t._pages[t._currentPage]).push(e)},_createObject:function(){var e=this;return e._objectNumber++,e._offsets[e._objectNumber]=e._contentLength,e._write(e._objectNumber+" 0 obj"),e._objectNumber},_createAdditionalObject:function(){var e={objId:2*this._pages.length+1+this._additionalObjects.length,content:""};return this._additionalObjects.push(e),e},_createObjectDeferred:function(){var e=this;return e._objectNumber++,e._offsets[e._objectNumber]=function(){return e._contentLength},e._objectNumber},_createObjectDeferredBegin:function(e){this._offsets[e]=this._contentLength},_writeStream:function(e){this._write("stream"),this._write(e),this._write("endstream")},_writePages:function(){for(var e,t,n,i,r=this,a=(r.options,r._pages,r._pageDim),s=1;s<=r._page;s++)r._createObject(),t=(r._pageWidth=a[s].width)*r._scaleFactor,n=(r._pageHeight=a[s].height)*r._scaleFactor,r._write("<</Type /Page"),r._write("/Parent 1 0 R"),r._write("/Resources 2 0 R"),r._write("/MediaBox [0 0 "+r._setNumberPrecision(t,2)+" "+r._setNumberPrecision(n,2)+"]"),r._write("/Contents "+(r._objectNumber+1)+" 0 R"),r._write(">>"),r._write("endobj"),t=r._pages[s].join("\n"),r._createObject(),r._write("<</Length "+t.length+">>"),r._writeStream(t),r._write("endobj");for(r._offsets[1]=r._contentLength,r._write("1 0 obj"),r._write("<</Type /Pages"),i="/Kids [",e=0;e<r._page;e++)i+=3+2*e+" 0 R ";r._write(i+"]"),r._write("/Count "+r._page),r._write(">>"),r._write("endobj")},_writeFont:function(e){var t=this;e.objectNumber=t._createObject(),t._write("<</BaseFont/"+e.PostScriptName+"/Type/Font"),"string"==typeof e.encoding&&t._write("/Encoding/"+e.encoding),t._write("/Subtype/Type1>>"),t._write("endobj")},_writeFonts:function(){var e,t=this._fonts;for(e in t)t.hasOwnProperty(e)&&this._writeFont(t[e])},_writeXObjectDictionary:function(){},_writeResourceDictionary:function(){var e,t=this,n=t._fonts;for(e in t._write("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"),t._write("/Font <<"),n)n.hasOwnProperty(e)&&t._write("/"+e+" "+n[e].objectNumber+" 0 R");t._write(">>"),t._write("/XObject <<"),t._writeXObjectDictionary(),t._write(">>")},_writeResources:function(){var e=this,t=e._offsets;e._writeFonts(),t[2]=e._contentLength,e._write("2 0 obj"),e._write("<<"),e._writeResourceDictionary(),e._write(">>"),e._write("endobj")},_writeAdditionalObjects:function(){for(var e,t=this,n=t._offsets,i=t._additionalObjects,r=0;r<i.length;r++)n[(e=i[r]).objId]=t._contentLength,t._write(e.objId+" 0 obj"),t._write(e.content),t._write("endobj");t._objectNumber+=i.length},_writeToFontDictionary:function(e,t,n){this._fontmap.hasOwnProperty(t)||(this._fontmap[t]={}),this._fontmap[t][n]=e},_to8bitStream:function(e,t){var n,i,r,a,s,o,l=this._fonts,h=this._fontKey,u=(t=t||{}).sourceEncoding||"Unicode",c=t.outputEncoding;if((t.autoencode||c)&&l[h].metadata&&l[h].metadata[u]&&l[h].metadata[u].encoding&&(u=l[h].metadata[u].encoding,!(c=!c&&l[h].encoding?l[h].encoding:c)&&u.codePages&&(c=u.codePages[0]),c=M(c)?u[c]:c)){for(i=!1,n=[],o=0,s=e.length;o<s;o++)(a=c[e.charCodeAt(o)])?n.push(String.fromCharCode(a)):n.push(e[o]),n[o].charCodeAt(0)>>8&&(i=!0);e=n.join("")}for(o=e.length;void 0===i&&0!==o;)e.charCodeAt(o-1)>>8&&(i=!0),o--;if(!i)return e;for(n=t.noBOM?[]:[254,255],o=0,s=e.length;o<s;o++){if((r=(a=e.charCodeAt(o))>>8)>>8)return void ee("shieldExport: Character at position "+o+" of string '"+e+"' exceeds 16bits. Cannot be encoded into UCS-2 BE",this.options.dieOnError);n.push(r),n.push(a-(r<<8))}return String.fromCharCode.apply(W,n)},_escape:function(e,t){return this._to8bitStream(e,t).replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")},_writeInfo:function(){var e,t,n,i,r,a=this,s=a.options,o=s.producer,l=s.created,h=a._documentProps;for(Z(o)&&a._write("/Producer ("+o+")"),r=0;r<h.length;r++)i=s[n=h[r]],(i="author"!==n&&n!==ce?i:U("Shield UI Framework"))&&a._write("/"+S(n)+" ("+a._escape(i)+")");t=(l=(o=_(l)).getTimezoneOffset())<0?"+":"-",e=Math.floor(Math.abs(l/60)),l=Math.abs(l%60),t=[t,a._setPadding(e,10,2),"'",a._setPadding(l,10,2),"'"].join(""),a._write(["/CreationDate (D:",o.getFullYear(),a._setPadding(o.getMonth()+1,10,2),a._setPadding(o.getDate(),10,2),a._setPadding(o.getHours(),10,2),a._setPadding(o.getMinutes(),10,2),a._setPadding(o.getSeconds(),10,2),t,")"].join(""))},_writeCatalog:function(){var e,t=this;switch(t._write("/Type /Catalog"),t._write("/Pages 1 0 R"),t._zoomMode||(t._zoomMode="fullwidth"),t._zoomMode){case"fullwidth":t._write("/OpenAction [3 0 R /FitH null]");break;case"fullheight":t._write("/OpenAction [3 0 R /FitV null]");break;case"fullpage":t._write("/OpenAction [3 0 R /Fit]");break;case"original":t._write("/OpenAction [3 0 R /XYZ null null 1]");break;default:"%"===(e=""+t._zoomMode).substr(e.length-1)&&(t._zoomMode=parseInt(t._zoomMode,10)/100),K(t._zoomMode)&&t._write("/OpenAction [3 0 R /XYZ null null "+t._setNumberPrecision(t._zoomMode,2)+"]")}switch(t._layoutMode||(t._layoutMode="continuous"),t._layoutMode){case"continuous":t._write("/PageLayout /OneColumn");break;case"single":t._write("/PageLayout /SinglePage");break;case"two":case"twoleft":t._write("/PageLayout /TwoColumnLeft");break;case"tworight":t._write("/PageLayout /TwoColumnRight")}t._pageMode&&t._write("/PageMode /"+t._pageMode)},_writeTrailer:function(){var e=this._objectNumber;this._write("/Size "+(e+1)),this._write("/Root "+e+" 0 R"),this._write("/Info "+(e-1)+" 0 R")},addFont:function(e,t,n,i){var r="F"+(oe(this._fonts).length+1).toString(10);this._fonts[r]={id:r,PostScriptName:e,fontName:t,fontStyle:n,encoding:i,metadata:{}};return this._writeToFontDictionary(r,t,n),r},addFonts:function(){for(var e,t,n=[["Helvetica",s,b],["Helvetica-Bold",s,w],["Helvetica-Oblique",s,fe],["Helvetica-BoldOblique",s,de],["Courier",v,b],["Courier-Bold",v,w],["Courier-Oblique",v,fe],["Courier-BoldOblique",v,de],["Times-Roman",c,b],["Times-Bold",c,w],["Times-Italic",c,fe],["Times-BoldItalic",c,de]],i=0,r=n.length;i<r;i++)e=this.addFont(n[i][0],n[i][1],n[i][2],"StandardEncoding"),t=n[i][0].split("-"),this._writeToFontDictionary(e,t[0],t[1]||"")},getActiveFontObj:function(){var e=this._fonts,t=this._fontKey;return e&&t&&e[t]?e[t]:W},getFontObj:function(e,t){var n=this._fonts,e=this.getFont(e,t);return n&&e&&n[e]?n[e]:W},getFont:function(e,t){var n,i=this,r=i._fonts,a=i._fontmap;switch(e=Z(e)?e:r[i._fontKey].fontName,t=Z(t)?t:i._fontKey?r[i._fontKey].fontStyle:W,Z(e)&&(e=e.toLowerCase()),t){case"sans-serif":case"verdana":case"arial":e=s;break;case"fixed":case"monospace":case"terminal":e=v;break;default:e=c}try{n=a[e][t]}catch(e){}return n||null==(n=a[c][t])&&(n=a[c][b]),n},_setPage:function(e){var t=this,n=t._pageDim;0<e&&e<=t._page&&(t._currentPage=e,t._pageWidth=n[e].width,t._pageHeight=n[e].height)},_beginPage:function(e,t){var n,i=this,r=i._formats,a=i._pages,s=i._pageDim,o=i._pagesContext,l=M(t)&&t.toLowerCase();if(M(e)&&(n=e.toLowerCase(),r.hasOwnProperty(n)&&(e=r[n][0]/i._scaleFactor,t=r[n][1]/i._scaleFactor)),k(e)&&(t=e[1],e=e[0]),l){switch(l.substr(0,1)){case"l":e<t&&(l="s");break;case"p":t<e&&(l="s")}"s"===l&&(i._tmp=e,e=t,t=i._tmp)}i._printToDoc=!1,i._page++,a[i._page]=[],s[i._page]={width:Number(e)||i._pageWidth,height:Number(t)||i._pageHeight},o[i._page]={},i._setPage(i._page)},addPage:function(){var e=this,t=e.options,n=t.drawColor,t=t.lineWidth;e._beginPage.apply(e,arguments),e._write(e._setNumberPrecision(t*e._scaleFactor,2)+" w"),e._write(n),0!==e._lineCapID&&e._write(e._lineCapID+" J"),0!==e._lineJoinID&&e._write(e._lineJoinID+" j")},deletePage:function(e){var t=this,n=t._pages,i=t._pageDim;0<e&&e<=t._page&&(n.splice(e,1),i.splice(e,1),t._page--,t._currentPage>t._page&&(t._currentPage=t._page),t._setPage(t._currentPage))},getFontSize:function(){return this._fontSize},getLineHeight:function(){return this.getFontSize()*this.options.lineHeight},getCoordinateString:function(e){return this._setNumberPrecision(e*this._scaleFactor,2)},getVerticalCoordinateString:function(e){return this._setNumberPrecision((this._pageHeight-e)*this._scaleFactor,2)},getPageSize:function(){return{width:this._pageWidth,height:this._pageHeight}},getNumberOfPages:function(){return this._pages.length-1},getPages:function(){return this._pages},getPageInfo:function(e){return{objId:2*(e-1)+3,pageNumber:e,pageContext:this._pagesContext[e]}},getCurrentPageInfo:function(){return this.getPageInfo(this._currentPage)},movePage:function(e,t){var n,i,r,a,s=this,o=s._pages,l=s._pageDim,h=s._pagesContext;if(t<e){for(n=o[e],i=l[e],r=h[e],a=e;t<a;a--)o[a]=o[a-1],l[a]=l[a-1],h[a]=h[a-1];o[t]=n,l[t]=i,h[t]=r,s._setPage(t)}else if(e<t){for(n=o[e],i=l[e],r=h[e],a=e;a<t;a++)o[a]=o[a+1],l[a]=l[a+1],h[a]=h[a+1];o[t]=n,l[t]=i,h[t]=r,s._setPage(t)}return s},insertPage:function(){var e=this,t=[].slice.call(arguments),n=t.shift();return e.addPage.apply(e,t),e.movePage(e._currentPage,n),e},setDisplayMode:function(e,t,n){return this._zoomMode=e,this._layoutMode=t,this._pageMode=n,this},_ESC:function(e,t){var n=this.options;return e=e.split("\t").join(new Array(n.TabLen||9).join(" ")),this._escape(e,t)},text:function(e,t,n,i,r,a){var s,o,l,h,u,c,f,d,p,g,m=this,x="",y="Td",v="",b=m.getCurrentPageInfo().pageContext,w=m.getLineHeight();if(M(e)&&(e=e.match(/[\n\r]/)?e.split(/\r\n|\r|\n/g):[e]),M(r)&&(a=r,r=null),M(i)&&(a=i,i=null),K(i)&&(r=i,i=null),r&&(r*=Math.PI/180,s=Math.cos(r),r=Math.sin(r),x=[m._setNumberPrecision(s,2),m._setNumberPrecision(r,2),m._setNumberPrecision(-1*r,2),m._setNumberPrecision(s,2),""].join(" "),y="Tm"),"noBOM"in(i=i||{})||(i.noBOM=!0),"autoencode"in i||(i.autoencode=!0),!0===i.stroke?!0!==b.lastTextWasStroke&&(v="1 Tr\n",b.lastTextWasStroke=!0):(b.lastTextWasStroke&&(v="0 Tr\n"),b.lastTextWasStroke=!1),Z(m._runningPageHeight)||(m._runningPageHeight=0),M(e))e=m._ESC(e,i);else{if(!(e instanceof Array))return void ee('Type of text must be string or Array. "'+e+'" is not recognized.',m.options.dieOnError);for(l=[],u=(o=e.concat()).length;u--;)l.push(m._ESC(o.shift(),i));if(Math.ceil((m._pageHeight-n-m._runningPageHeight)*m._scaleFactor/m.getLineHeight()),a){if(g=Y(e,function(e){return m._getStringWidth(e)*m.getFontSize()/m._scaleFactor}),p=Math.max.apply(Math,g),"center"===a)c=t-p/2,t-=g[0]/2;else{if("right"!==a)return void ee('Unrecognized alignment option, use "center" or "right".',m.options.dieOnError);c=t-p,t-=g[0]}for(f=t,e=l[0]+") Tj\n",h=1,u=l.length;h<u;h++)d=p-g[h],"center"===a&&(d/=2),e+=c-f+d+" -"+w+" Td ("+l[h],f=c+d,h<u-1&&(e+=") Tj\n")}else e=l.join(") Tj\nT* (")}return r=m._setNumberPrecision((m._pageHeight-n)*m._scaleFactor,2),m._write("BT\n/"+m._fontKey+" "+m.getFontSize()+" Tf\n"+m.getLineHeight()+" TL\n"+v+m._textColor+"\n"+x+m._setNumberPrecision(t*m._scaleFactor,2)+" "+r+" "+y+"\n("+e+") Tj\nET"),m},lstext:function(e,t,n,i){for(var r=0,a=e.length;r<a;r++,t+=i)this.text(e[r],t,n)},line:function(e,t,n,i){return this.lines([[n-e,i-t]],e,t)},clip:function(){this._write("W"),this._write("S")},lines:function(e,t,n,i,r,a){var s,o,l,h,u,c,f,d,p,g,m,x=this;for(K(e)&&(x._tmp=n,n=t,t=e,e=x._tmp),i=i||[1,1],x._write(x._setNumberPrecision(t*x._scaleFactor,3)+" "+x._setNumberPrecision((x._pageHeight-n)*x._scaleFactor,3)+" m "),s=i[0],o=i[1],h=e.length,g=t,m=n,l=0;l<h;l++)2===(u=e[l]).length?(g=u[0]*s+g,m=u[1]*o+m,x._write(x._setNumberPrecision(g*x._scaleFactor,3)+" "+x._setNumberPrecision((x._pageHeight-m)*x._scaleFactor,3)+" l")):(c=u[0]*s+g,f=u[1]*o+m,d=u[2]*s+g,p=u[3]*o+m,g=u[4]*s+g,m=u[5]*o+m,x._write(x._setNumberPrecision(c*x._scaleFactor,3)+" "+x._setNumberPrecision((x._pageHeight-f)*x._scaleFactor,3)+" "+x._setNumberPrecision(d*x._scaleFactor,3)+" "+x._setNumberPrecision((x._pageHeight-p)*x._scaleFactor)+" "+x._setNumberPrecision(g*x._scaleFactor)+" "+x._setNumberPrecision((x._pageHeight-m)*x._scaleFactor)+" c"));return a&&x._write(" h"),null!==r&&x._write(x.getStyle(r)),x},rect:function(e,t,n,i,r){var a=this;a.getStyle(r);return a._write([a._setNumberPrecision(e*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-t)*a._scaleFactor,2),a._setNumberPrecision(n*a._scaleFactor,2),a._setNumberPrecision(-i*a._scaleFactor,2),"re"].join(" ")),null!==r&&a._write(a.getStyle(r)),a},triangle:function(e,t,n,i,r,a,s){return this.lines([[n-e,i-t],[r-n,a-i],[e-r,t-a]],e,t,[1,1],s,!0),this},roundedRect:function(e,t,n,i,r,a,s){var o=4/3*(Math.SQRT2-1);return this.lines([[n-2*r,0],[r*o,0,r,a-a*o,r,a],[0,i-2*a],[0,a*o,-r*o,a,-r,a],[2*r-n,0],[-r*o,0,-r,-a*o,-r,-a],[0,2*a-i],[0,-a*o,r*o,-a,r,-a]],e+r,t,[1,1],s),this},ellipse:function(e,t,n,i,r){var a=this,s=4/3*(Math.SQRT2-1)*n,o=4/3*(Math.SQRT2-1)*i;return a._write([a._setNumberPrecision((e+n)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-t)*a._scaleFactor,2),"m",a._setNumberPrecision((e+n)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t-o))*a._scaleFactor,2),a._setNumberPrecision((e+s)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t-i))*a._scaleFactor,2),a._setNumberPrecision(e*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t-i))*a._scaleFactor,2),"c"].join(" ")),a._write([a._setNumberPrecision((e-s)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t-i))*a._scaleFactor,2),a._setNumberPrecision((e-n)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t-o))*a._scaleFactor,2),a._setNumberPrecision((e-n)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-t)*a._scaleFactor,2),"c"].join(" ")),a._write([a._setNumberPrecision((e-n)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t+o))*a._scaleFactor,2),a._setNumberPrecision((e-s)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t+i))*a._scaleFactor,2),a._setNumberPrecision(e*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t+i))*a._scaleFactor,2),"c"].join(" ")),a._write([a._setNumberPrecision((e+s)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t+i))*a._scaleFactor,2),a._setNumberPrecision((e+n)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-(t+o))*a._scaleFactor,2),a._setNumberPrecision((e+n)*a._scaleFactor,2),a._setNumberPrecision((a._pageHeight-t)*a._scaleFactor,2),"c"].join(" ")),null!==r&&a._write(a.getStyle(r)),a},circle:function(e,t,n,i){return this.ellipse(e,t,n,n,i)},setFontSize:function(e){return this._fontSize=e,this},setFont:function(e,t){return this._fontKey=this.getFont(e,t),this},setFontStyle:function(e){return this._fontKey=this.getFont(W,e),this},getFontList:function(){var e,t,n,i={},r=this._fontmap;for(e in r)if(r.hasOwnProperty(e))for(t in i[e]=n=[],r[e])r[e].hasOwnProperty(t)&&n.push(t);return i},addFontScriptName:function(e,t,n){this.addFont(e,t,n,"StandardEncoding")},setLineWidth:function(e){return this._write((e*this._scaleFactor).toFixed(2)+" w"),this},setDrawColor:function(e,t,n,i){var r=this,i=!Z(t)||!Z(i)&&e===t===n?M(e)?e+" G":r._setNumberPrecision(e/255,2)+" G":(Z(i)?M(e)?[e,t,n,i,"K"]:[r._setNumberPrecision(e,2),r._setNumberPrecision(t,2),r._setNumberPrecision(n,2),r._setNumberPrecision(i,2),"K"]:M(e)?[e,t,n,"RG"]:[r._setNumberPrecision(e/255,2),r._setNumberPrecision(t/255,2),r._setNumberPrecision(n/255,2),"RG"]).join(" ");return r._write(i),r},setFillColor:function(e,t,n,i){var r,a=this;return!Z(t)||!Z(i)&&e===t===n?r=M(e)?e+" g":a._setNumberPrecision(e/255,2)+" g":!Z(i)||H(i)?(r=(M(e)?[e,t,n,"rg"]:[a._setNumberPrecision(e/255,2),a._setNumberPrecision(t/255,2),a._setNumberPrecision(n/255,2),"rg"]).join(" "),i&&0===i.a&&(r=["255","255","255","rg"].join(" "))):r=(M(e)?[e,t,n,i,"k"]:[a._setNumberPrecision(e,2),a._setNumberPrecision(t,2),a._setNumberPrecision(n,2),a._setNumberPrecision(i,2),"k"]).join(" "),a._write(r),a},setTextColor:function(e,t,n){var i,r=this;return M(e)&&/^#[0-9A-Fa-f]{6}$/.test(e)&&(e=(i=parseInt(e.substr(1),16))>>16&255,t=i>>8&255,n=255&i),0===e&&0===t&&0===n||!Z(t)?r._textColor=r._setNumberPrecision(e/255,3)+" g":r._textColor=[r._setNumberPrecision(e/255,3),r._setNumberPrecision(t/255,3),r._setNumberPrecision(n/255,3),"rg"].join(" "),r},_build:function(){var e,t,n,i,r=this;for(r._printToDoc=!0,r._objectNumber=2,r._write("%PDF-"+r._version),r._writePages(),r._writeAdditionalObjects(),r._writeResources(),r._createObject(),r._write("<<"),r._writeInfo(),r._write(">>"),r._write("endobj"),r._createObject(),r._write("<<"),r._writeCatalog(),r._write(">>"),r._write("endobj"),e=r._contentLength,t="0000000000",r._write("xref"),r._write("0 "+(r._objectNumber+1)),r._write(t+" 65535 f "),i=1;i<=r._objectNumber;i++)n=r._offsets[i],z(n)?r._write((t+r._offsets[i]()).slice(-10)+" 00000 n "):r._write((t+r._offsets[i]).slice(-10)+" 00000 n ");return r._write("trailer"),r._write("<<"),r._writeTrailer(),r._write(">>"),r._write("startxref"),r._write(e),r._write("%%EOF"),r._printToDoc=!1,r._content.join("\n")},getStyle:function(e){var t="S";return"F"===e?t="F".toLowerCase():"FD"===e||"DF"===e?t="B":e!=="F".toLowerCase()&&"f*"!==e&&"both"!==e&&"B*"!==e||(t=e),t},_getArrayBuffer:function(){for(var e=this._build(),t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);t--;)i[t]=e.charCodeAt(t);return n},_getCharWidths:function(e,t){for(var n,t=t||{},i=this.getActiveFontObj(),r=t.widths||i.metadata.Unicode.widths,a=r.fof||1,s=t.kerning||i.metadata.Unicode.kerning,o=s.fof||1,l=0,h=r[0]||a,u=[],c=0,f=e.length;c<f;c++)n=e.charCodeAt(c),u.push((r[n]||h)/a+(s[n]&&s[n][l]||0)/o),l=n;return u},_sum:function(e){for(var t=e.length,n=0;t;)n+=e[--t];return n},_getStringWidth:function(e,t){return this._sum(this._getCharWidths.call(this,e,t))},_getTextDimensions:function(t){var n=this.getActiveFontObj(),e=n.fontName,i=this._tableFontSize||this.getFontSize(),n=n.fontStyle,r=y.createElement("font");try{r.style.fontStyle=n}catch(e){r.style.fontWeight=n}r.style.fontName=e,r.style.fontSize=i+"pt";try{r.textContent=t}catch(e){r.innerText=t}return y.body.appendChild(r),n={w:(r.offsetWidth+1)*pe,h:(r.offsetHeight+1)*pe},y.body.removeChild(r),n},_setLastCellPosition:function(e,t,n,i,r){this._lastCellPos={x:e,y:t,w:n,h:i,ln:r}},_getLastCellPosition:function(){return this._lastCellPos},_cellAddPage:function(){var e=this,t=e._cellMargins||e._noMargins;e.addPage(),e._setLastCellPosition(t.left,t.top),e._cellPages++},_setTableHeaderConfig:function(e){this._cellTableHeaderRow=e},_splitWord:function(e,t,n,i){for(var r,a=[],s=0,o=e.length,l=0;s!==o&&l+t[s]<n;)l+=t[s],s++;for(a.push(e.slice(0,s)),r=s,l=0;s!==o;)l+t[s]>i&&(a.push(e.slice(r,s)),l=0,r=s),l+=t[s],s++;return r!==s&&a.push(e.slice(r,s)),a},_splitParagraph:function(e,t,n){var i,r,a,s,o,l,h=this,u=n||{},c=[],f=[c],d=u.textIndent||0,p=0,g=0,m=e.split(" "),x=h._getCharWidths(" ",u)[0],y=-1===u.lineIndent?m[0].length+2:u.lineIndent||0;for(y&&(o=new Array(y).join(" "),l=[],R(m,function(e,t){1<(t=t.split(/\s*\n/)).length?l=l.concat(Y(t,function(e,t){return(t&&e.length?"\n":"")+e})):l.push(t[0])}),m=l,y=h._getStringWidth(o,u)),r=0,a=m.length;r<a;r++){var v=0,b=m[r];if(y&&"\n"==b[0]&&(b=b.substr(1),v=1),i=h._getCharWidths(b,u),t<d+p+(g=h._sum(i))||v){if(t<g){for(s=h._splitWord(b,i,t-(d+p),t),c.push(s.shift()),c=[s.pop()];s.length;)f.push([s.shift()]);g=h._sum(i.slice(b.length-c[0].length))}else c=[b];f.push(c),d=g+y}else c.push(b),d+=p+g;p=x}return Y(f,y?function(e,t){return(t?o:"")+e.join(" ")}:function(e){return e.join(" ")})},_splitText:function(e,t,n){var i,r,a=this,n=n||{},s=k(e)?e.join(" "):e,s=a._getTextDimensions(s).w/s.length,o=[],l=function(e){var t,n={0:1},i={};return e.widths&&e.kerning?{widths:e.widths,kerning:e.kerning}:(e=a.getFontObj(e.fontName,e.fontStyle)||a.getActiveFontObj()).metadata[t="Unicode"]?{widths:e.metadata[t].widths||n,kerning:e.metadata[t].kerning||i}:{widths:n,kerning:i}}.call(a,n),h=k(e)?e:e.split(/\r?\n/),u=+a._scaleFactor*t/s;for(l.textIndent=n.textIndent?+n.textIndent*a._scaleFactor/s:0,l.lineIndent=n.lineIndent,i=0,r=h.length;i<r;i++)o=o.concat(a._splitParagraph(h[i],u,l));return o},_getLineHeight:function(e,t,n){for(var i,r,a=0,s=this._cellPadding,o=0;o<e.length;o++)r=e[o],i=k(n)?n[o]:n[r],k(i)||(!Z(i)||Q(i)?i="":i+=""),i=(k(n)?(n[o]=this._splitText(i,t[r]-s),n[o]):(n[r]=this._splitText(i,t[r]-s),n[r])).length,a<(r=this.getLineHeight()*i+1.6*s)&&(a=r);return a},_cell:function(e,t,n,i,r,a,s){var o,l,h,u=this,c=u._getLastCellPosition(),f=u._cellMargins||u._noMargins,d=u._cellPadding;if(Z(c.ln)&&(t=c.ln===a?(e=c.x+c.w,c.y):(c.y+c.h+i+u._cellMargin>=u._pageHeight-f.bottom&&(u._cellAddPage(),u._tablePrintHeader&&u._cellTableHeaderRow&&u._renderHeader(a,!0)),(c=u._getLastCellPosition()).y+(c.h||0))),Z(r[0]))if(u._cellPrintingHeaderRow?u.rect(e,t,n,i,"FD"):u.rect(e,t,n,i),"right"===s)for(k(r)||(r=[r]),h=0;h<r.length;h++)o=r[h],l=u._getStringWidth(o)*u.getFontSize(),u.text(o,e+n-l-d,t+u.getLineHeight()*(h+1));else u.text(r,e+d,t+u.getLineHeight());return u._setLastCellPosition(e,t,n,i,a),u},_renderHeader:function(e,t){var n,i,r,a,s=this,o=[];if(s._cellTableHeaderRow){for(s._cellPrintingHeaderRow=!0,Z(s._cellHeaderFunction)&&(a=s._cellHeaderFunction.call(s,s._cellPages),s._setLastCellPosition(a[0],a[1],a[2],a[3],-1)),s.setFontStyle(w),i=0,r=s._cellTableHeaderRow.length;i<r;i++)s.setFillColor(236,237,238),n=s._cellTableHeaderRow[i],t&&(n[1]=s._cellMargins&&s._cellMargins.top||0,o.push(n)),n=[].concat(n),s._cell.apply(s,n.concat(e));0<o.length&&s._setTableHeaderConfig(o),s.setFontStyle(b),s._cellPrintingHeaderRow=!1}else ee("shieldExport: No table header configuration",s.options.dieOnError)},table:function(e,t,n,i,r){function a(e){return e[s]}var s,o,l,h,u,c,f,d,p,g,m,x,y,v=this,b=v._cellPadding,w=[],_=[],P={},C=[],E=!0,S=v.getFontSize(),T=v._noMargins;if(n){if(y=n.slice(0),r&&(!1===r.printHeader&&(E=!1),r.fontSize&&(S=r.fontSize),r.margins&&(T=r.margins)),v._lastCellPos={x:W,y:W,w:W,h:W,ln:W},v._cellPages=1,v._tablePrintHeader=E,v._cellMargins=T,v.setFontSize(S),v._tableFontSize=S,!Z(i)||Q(i))w=oe(y[0]);else if(i[0]&&!M(i[0]))for(l=0,h=i.length;l<h;l++)s=i[l],w.push(s.field),_.push(s.title),P[s.field]=Z(s.width)?V(s.width)*v._getScaleFactor():W;else w=i;for(l=0,h=w.length;l<h;l++)if(s=w[l],!Z(P[s])){for((d=[]).push(v._getTextDimensions(_[l]||s).w+2*b),p=0,u=(f=Y(y,a)).length;p<u;p++)c=f[p],d.push(v._getTextDimensions(c).w+2*b);P[s]=Math.max.apply(Math,d)}if(E){for(x=v._getLineHeight(w,P,_.length?_:w),l=0,h=w.length;l<h;l++)s=w[l],k(o=_.length?_[l]:s)||(o+=""),C.push([e,t,P[s],x,o]);v._setTableHeaderConfig(C),v._renderHeader(1,!1)}for(l=0,h=y.length;l<h;l++)for(g=y[l],x=v._getLineHeight(w,P,g),p=0,m=w.length;p<m;p++)s=w[p],v._cell(e,t,P[s],x,g[s],l+2,i[p].align);return v}ee("shieldExport: No data specified for PDF table",v.options.dieOnError)}}),e=n.extend({getExt:function(){return".csv"},getContentType:function(){return"text/csv;charset=utf-8"},getContent:function(e){function t(e){return(e+"").replace(c,'""')}var n,i,r,a=this.options,s=a.delimiter||",",o=a.header,l=a.records||[],h=l.length,u="",c=/\"/g;if(a.printHeader&&o){for(n=0;n<o.length;n++)u+=(0<n?s:"")+'"'+t(o[n])+'"';u+="\n"}for(n=0;n<h;n++){for(i=0,r=l[n].length;i<r;i++)u+=(0<i?s:"")+'"'+t(l[n][i])+'"';u+="\n"}return u}}),$(h,{PDFDocument:t,CSVDocument:e,OOXMLWorkbook:i,ExcelXMLSpreadsheet:q})}(jQuery,shield,this); -shield.version='1.7.44'; -!function(p,f,k,M){function i(){}var l,n,c,a,m,v,Z,K,$,q,Q,J,tt,et,it,nt,at,r,o,d,h,u=f.ui.Widget,g=f.Constants,S=document,_=Math,L=_.round,y=_.floor,rt=_.ceil,R=_.max,D=_.min,ot=_.abs,b=_.cos,w=_.sin,N=_.PI,st=2*N/360,lt="function",dt="mouseover",ct="mouseout",ht="mousemove",pt="mouseleave",ut="touchstart",gt="resize",ft="click",mt="point",xt=navigator.userAgent,yt=k.opera,vt=/msie/i.test(xt)&&!yt,bt=8===S.documentMode,wt=/AppleWebKit/.test(xt),Tt=/Firefox/.test(xt),kt=g.SVG_NS,St=!!S.createElementNS&&!!S.createElementNS(kt,"svg").createSVGRect,At=!!S.createElement("canvas").getContext,Pt=!St&&!vt&&At,Lt=S.documentElement.ontouchstart!==M,Ct={},C=p.extend,Mt=p.inArray,_t=f.error,A=f.to.int,Rt=f.is.string,Dt=f.is.object,It=f.is.array,Nt=f.is.number,Xt=(f.is.integer,f.is.float),Ot=f.is.null,I=f.is.defined,Et=f.to.array,Wt="shield-",Yt="div",X="visible",O="hidden",Ht="relative",T="px",E="L",W="M",Bt="none",Ft="absolute",zt="pointer",Gt="rgba(192,192,192,"+(St?1e-4:.002)+")",Vt="pointHoveredState",Ut="pointSelectedState",jt="MINUTE",Zt="HOUR",Kt="DAY",$t="WEEK",qt="MONTH",Qt="YEAR",Jt="stroke-width",Y={},s={};function te(t){return _.log(t)/_.LN10}function ee(t){return _.pow(10,t)}function ie(t,e){for(var i=t.length;i--;)if(t[i]===e){t.splice(i,1);break}}function P(t,e,i){var n,a,r="setAttribute";if(Rt(e))I(i)?t[r](e,i):t&&t.getAttribute&&(a=t.getAttribute(e));else if(I(e)&&Dt(e))for(n in e)e.hasOwnProperty(n)&&t[r](n,e[n]);return a}function H(){for(var t,e=arguments,i=e.length,n=0;n<i;n++)if(null!=(t=e[n]))return t}function B(t,e){vt&&e&&e.opacity!==M&&(e.filter="alpha(opacity="+100*e.opacity+")"),C(t.style,e)}function F(t,e,i,n,a){t=S.createElement(t);return e&&C(t,e),a&&B(t,{padding:0,border:Bt,margin:0}),i&&B(t,i),n&&n.appendChild(t),t}function t(t,e){function i(){}return i.prototype=new t,C(i.prototype,e),i}function e(t,e,i){var n=t[e];t[e]=function(){var t=Array.prototype.slice.call(arguments);return t.unshift(n),i.apply(this,t)}}function ne(t,e,i,n){var a,r=t/(i=H(i,1));for(e||(e=[1,2,2.5,5,10],n&&!1===n.decimalTicks&&(1===i?e=[1,2,5,10]:i<=.1&&(e=[1/i]))),a=0;a<e.length&&(t=e[a],!(r<=(e[a]+(e[a+1]||e[a]))/2));a++);return t*=i}function ae(){this.color=0,this.symbol=0}function re(t,i){for(var n,e=t.length,a=0;a<e;a++)t[a]._ssIndex=a;for(t.sort(function(t,e){return 0===(n=i(t,e))?t._ssIndex-e._ssIndex:n}),a=0;a<e;a++)delete t[a]._ssIndex}function oe(t){for(var e=t.length,i=t[0];e--;)t[e]<i&&(i=t[e]);return i}function se(t){for(var e=t.length,i=t[0];e--;)t[e]>i&&(i=t[e]);return i}function le(t,e){for(var i in t)t.hasOwnProperty(i)&&(t[i]&&t[i]!==e&&t[i].destroy&&t[i].destroy(),delete t[i])}function de(t){n=n||F(Yt),t&&n.appendChild(t),n.innerHTML=""}function ce(t){return parseFloat(t.toPrecision(14))}function he(t,e){c=H(t,Y[e.guid].applyAnimation)}ae.prototype={wrapColor:function(t){this.color>=t&&(this.color=0)},wrapSymbol:function(t){this.symbol>=t&&(this.symbol=0)}},m={MILLISECOND:1,SECOND:1e3,MINUTE:6e4,HOUR:36e5,DAY:864e5,WEEK:6048e5,MONTH:2592e6,YEAR:31556952e3},a={init:function(t,e,i){function n(t){for(o=t.length;o--;)t[o]===W&&t.splice(o+1,0,t[o+1],t[o+2],t[o+1],t[o+2])}var a,r,o,s,l,d=t.shift,c=-1<(e=e||"").indexOf("C"),h=c?7:3,p=e.split(" "),u=[].concat(i);if(c&&(n(p),n(u)),t.isArea&&(s=p.splice(p.length-6,6),l=u.splice(u.length-6,6)),d<=u.length/h)for(;d--;)u=[].concat(u).splice(0,h).concat(u);if(t.shift=0,p.length)for(a=u.length;p.length<a;)r=[].concat(p).splice(p.length-h,h),c&&(r[h-6]=r[h-2],r[h-5]=r[h-1]),p=p.concat(r);return s&&(p=p.concat(s),u=u.concat(l)),[p,u]},step:function(t,e,i,n){var a,r=[],o=t.length;if(1===i)r=n;else if(o===e.length&&i<1)for(;o--;)a=parseFloat(t[o]),r[o]=isNaN(a)?t[o]:i*parseFloat(e[o]-a)+a;else r=e;return r}},r=p.fx,o=r.step,d=p.Tween,h=d&&d.propHooks,p.extend(p.easing,{easeOutQuad:function(t,e,i,n,a){return-n*(e/=a)*(e-2)+i}}),p.each(["cur","_default","width","height"],function(e,i){var n,a,t=o;"cur"===i?t=r.prototype:"_default"===i&&d&&(t=h[i],i="set"),(n=t[i])&&(t[i]=function(t){return(a=(t=e?t:this).elem).attr?a.attr(t.prop,"cur"===i?M:t.now):n.apply(this,arguments)})}),g=function(t){var e,i=t.elem;t.started||(e=a.init(i,i.d,i.toD),t.start=e[0],t.end=e[1],t.started=!0),i.attr("d",a.step(t.start,t.end,t.pos,i.toD))},d?h.d={set:g}:o.d=g;p.getScript;function z(){return p.extend.apply(p,[].concat.apply([!0,null],arguments))}function G(t,e,i){p(t).bind(e,i)}function pe(t,e,i){var n=S.removeEventListener?"removeEventListener":"detachEvent";S[n]&&!t[n]&&(t[n]=function(){}),p(t).unbind(e,i)}function ue(t,e,i,n){var a,r,o;t instanceof f.ui.Widget?t.trigger(e,i,n):t instanceof f.Dispatcher?(a=t.trigger(e,i),typeof n!=lt||a.isDefaultPrevented()||n.call(t,a)):(a=t,t=e,e=i,i=n,o=p.Event(t),n="detached"+t,!vt&&e&&(delete e.layerX,delete e.layerY),C(o,e),a[t]&&(a[n]=a[t],a[t]=null),p.each(["preventDefault","stopPropagation"],function(t,e){var i=o[e];o[e]=function(){try{i.call(o)}catch(t){"preventDefault"===e&&(r=!0)}}}),p(a).trigger(o),a[n]&&(a[t]=a[n],a[n]=null),!i||o.isDefaultPrevented()||r||i(o))}function ge(t){p(t).stop()}var fe,V=Array.prototype.forEach?function(t,e){return Array.prototype.forEach.call(t,e)}:function(t,e){for(var i=0,n=t.length;i<n;i++)if(!1===e.call(t[i],t[i],i,t))return i},me=p.grep,xe=p.map,g={enabled:!0,align:"center",x:0,y:15,style:{color:"#7E7E7E",fontSize:"11px",lineHeight:"14px"}},x=(fe={seriesPalette:["#1E98E4","#FFC500","#FF2A00","#CACACA","#7F7F7F","#00FF9C","#6D31FF","#00B2A1","#B9FF85","#FF8000"],allowUTCFormatting:!0,primaryHeader:{text:"Shield UI Chart",align:"center",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif",y:-15,style:{color:"#4B4B4B",fontSize:"16px",top:10}},secondaryHeader:{text:"",align:"center",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif",y:5,style:{color:"#606060"}},loadingTextStyle:{fontWeight:"bold",position:Ht,top:"1em"},symbols:["circle"],chartAreaBorderColor:"#000000",chartAreaBorderWidth:0,borderColor:"#A0A0A0",borderRadius:0,borderWidth:0,seriesType:"bar",scaleAxesForHiddenSeries:!1,chartAreaPaddingTop:40,chartAreaPaddingRight:10,chartAreaPaddingBottom:20,chartAreaPaddingLeft:10,style:{fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif",fontSize:"12px"},backgroundColor:"#FFFFFF",axisX:{plotStripWidth:0,drawWidth:1,ticksWidth:1,ticksHeight:6,drawColor:"#636363",ticksColor:"#636363",lastTickTextVisible:!0,axisTickText:{style:{color:"#636363",fontSize:"11px",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif"},y:17},title:{style:{color:"#636363",fontWeight:"normal",fontSize:"11px",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif"}}},axisY:{plotStripWidth:1,drawWidth:0,tickWidth:1,tickColor:"#7E7E7E",drawColor:"#636363",plotStripDashStyle:"Solid",axisTickText:{style:{color:"#636363",fontSize:"11px",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif"}},title:{style:{color:"#636363",fontSize:"11px",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif"}}},seriesSettings:{bar:{borderWidth:0},line:{enablePointSelection:!1,allowMultiPointSelection:!0,applyAnimation:{duration:1200},events:{},drawWidth:3,shadow:!1,pointMark:{enabled:!0,drawWidth:2,drawRadius:3,drawColor:null,innerColor:null,activeSettings:{pointHoveredState:{enabled:!0,innerColor:"#FFFFFF",drawWidth:2,drawRadius:4},pointSelectedState:{color:"#7AF4F4",shadow:!1,drawWidth:2}}},point:{events:{}},dataPointText:z(g,{enabled:!1,format:"{point.y}",verticalAlign:"bottom",y:0}),pointsLimit:300,pointRange:0,addToLegend:!0,activeSettings:{pointHoveredState:{drawWidth:3,pointMark:{}},pointSelectedState:{pointMark:{}}},completeSeriesTrace:!0},polarline:{applyAnimation:{duration:500}},polararea:{applyAnimation:{duration:500}},polarbar:{applyAnimation:{duration:500}},polarspline:{applyAnimation:{duration:500}},polarsplinearea:{applyAnimation:{duration:500}},polarscatter:{applyAnimation:{duration:500}}},chartLegend:{enabled:!0,align:"center",renderDirection:"horizontal",borderWidth:0,borderColor:"#909090",borderRadius:0,shadow:!1,legendItemSettings:{disabledStyle:{color:"#CCC"},mouseOverStyle:{color:"#000"},elementStyle:{cursor:zt,color:"#3E576F",fontSize:"12px"}},checkMarkSettings:{enabled:!1,shape:"check",width:1,color:"#3E576F",mouseOverColor:M,coordinates:{x:M,y:M,width:M,height:M}},symbolWidthINTERNAL:12,drawRadius:4,legendMarkerDistance:5,verticalAlign:"bottom",x:0,y:10},tooltipSettings:{enabled:!0,customHeaderText:"{point.pointName}",customPointText:"<span>{point.dataSeries.collectionAlias}</span>: {point.y}",format:null,position:null,chartBound:!1,axisMarkers:{enabled:!1,mode:"xy",color:"#999999",width:1,zIndex:3},showDistance:Lt?25:10}}).seriesSettings,ye=x.line;$e=fe.allowUTCFormatting,Fe=$e?"getUTC":"get",Ke=$e?"setUTC":"set",v=$e?Date.UTC:function(t,e,i,n,a,r){return new Date(t,e,H(i,1),H(n,0),H(a,0),H(r,0)).getTime()},Z=Fe+"Minutes",K=Fe+"Hours",$=Fe+"Day",q=Fe+"Date",Q=Fe+"Month",J=Fe+"FullYear",tt=Ke+"Minutes",et=Ke+"Hours",it=Ke+"Date",nt=Ke+"Month",at=Ke+"FullYear";function ve(e){var t,i,n=[];return(t=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(i=e))?n=[A(t[1]),A(t[2]),A(t[3]),parseFloat(t[4],10)]:(t=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(i))&&(n=[A(t[1],16),A(t[2],16),A(t[3],16),1]),{get:function(t){return t=n&&!isNaN(n[0])?"rgb"===t?"rgb("+n[0]+","+n[1]+","+n[2]+")":"a"===t?n[3]:"rgba("+n.join(",")+")":e},brighten:function(t){if(Nt(t)&&0!==t)for(var e=0;e<3;e++)n[e]+=A(255*t),n[e]<0&&(n[e]=0),255<n[e]&&(n[e]=255);return this},setOpacity:function(t){return n[3]=t,this}}}function be(){}be.prototype={init:function(t,e){this.element="span"===e?F(e):S.createElementNS(kt,e),this.renderer=t,this.attrSetters={}},animate:function(t,e,i){var n,a,r,e=H(e,c,!0);ge(this),e?(e=z(e),i&&(e.complete=i),a=t,e=e,r=p(n=this),a.d&&(n.toD=a.d,a.d=1),r.stop(),r.animate(a,e)):(this.attr(t),i&&i())},attr:function(t,e){var i,n,a,r,o,s,l,d,c=this,h=c.element,p=h.nodeName.toLowerCase(),u=c.renderer,g=c.attrSetters,f=c.shadows,m=c;if(Rt(t)&&I(e)&&(i=t,(t={})[i]=e),Rt(t))i=t,"circle"===p?i={x:"cx",y:"cy"}[i]||i:"strokeWidth"===i&&(i="stroke-width"),m=P(h,i)||c[i]||0,"d"!==i&&"visibility"!==i&&(m=parseFloat(m));else for(i in t)if(t.hasOwnProperty(i)&&(n=t[i],(o=!1)!==(s=g[i]&&g[i].call(c,n,i)))){if(s!==M&&(n=s),"d"===i)n&&n.join&&(n=n.join(" ")),/(NaN| {2}|^$)/.test(n)&&(n="M 0 0");else if("x"===i&&"text"===p){for(a=0;a<h.childNodes.length;a++)P(r=h.childNodes[a],"x")===P(h,"x")&&P(r,"x",n);c.textAngle&&P(h,"transform","rotate("+c.textAngle+" "+n+" "+A(t.y||P(h,"y"))+")")}else if("fill"===i)n=u.color(n,h,i);else if("circle"!==p||"x"!==i&&"y"!==i)if("rect"===p&&"r"===i)P(h,{rx:n,ry:n}),o=!0;else if("translateX"===i||"translateY"===i||"textAngle"===i||"verticalAlign"===i)o=d=!0;else if("stroke"===i)n=u.color(n,h,i);else if("dashstyle"===i){if(i="stroke-dasharray","solid"===(n=n&&n.toLowerCase()))n=Bt;else if(n){for(a=(n=n.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",")).length;a--;)n[a]=A(n[a])*t["stroke-width"];n=n.join(",")}}else"isTracker"===i?c[i]=n:"width"===i?n=A(n):"align"===i?(i="text-anchor",n={left:"start",center:"middle",right:"end"}[n]):"title"===i&&((s=h.getElementsByTagName("title")[0])||(s=S.createElementNS(kt,"title"),h.appendChild(s)),s.textContent=n);else i={x:"cx",y:"cy"}[i]||i;if("strokeWidth"===i&&(i="stroke-width"),wt&&"stroke-width"===i&&0===n&&(n=1e-6),c.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(i)&&(l||(c.symbolAttr(t),l=!0),o=!0),f&&/^(width|height|visibility|x|y|d|transform)$/.test(i))for(a=f.length;a--;)P(f[a],i,"height"===i?R(n-(f[a].cutHeight||0),0):n);("width"===i||"height"===i)&&"rect"===p&&n<0&&(n=0),c[i]=n,d&&c.updateTransform(),"text"===i?(n!==c.textStr&&delete c.bBox,c.textStr=n,c.added&&u.buildText(c)):o||P(h,i,n)}return m},symbolAttr:function(e){var i=this;V(["x","y","r","start","end","width","height","innerR","anchorX","anchorY"],function(t){i[t]=H(e[t],i[t])}),i.attr({d:i.renderer.symbols[i.symbolName](i.x,i.y,i.width,i.height,i)})},clip:function(t){return this.attr("clip-path",t?"url("+this.renderer.url+"#"+t.id+")":Bt)},crisp:function(t,e,i,n,a){var r,o,s=this,l={},d={};for(r in t=t||s.strokeWidth||s.attr&&s.attr("stroke-width")||0,o=L(t)%2/2,d.x=y(e||s.x||0)+o,d.y=y(i||s.y||0)+o,d.width=y((n||s.width||0)-2*o),d.height=y((a||s.height||0)-2*o),d.strokeWidth=t,d)d.hasOwnProperty(r)&&s[r]!==d[r]&&(l[r]=d[r],Dt(s)&&(s[r]=d[r]));return l},css:function(t){function e(t,e){return"-"+e.toLowerCase()}var i,n=this,a=n.element,a=t&&t.width&&"text"===a.nodeName.toLowerCase(),r="";if(t&&t.color&&(t.fill=t.color),t=C(n.styles,t),n.styles=t,Pt&&a&&delete t.width,vt&&!St)a&&delete t.width,B(n.element,t);else{for(i in t)t.hasOwnProperty(i)&&(r+=i.replace(/([A-Z])/g,e)+":"+t[i]+";");n.attr({style:r})}return a&&n.added&&n.renderer.buildText(n),n},on:function(t,e){return this.element["on"+t]=e,this},setRadialReference:function(t){return this.element.radialReference=t,this},translate:function(t,e){return this.attr({translateX:t,translateY:e})},invert:function(){return this.isInverted=!0,this.updateTransform(),this},htmlCss:function(t){var e=this,i=e.element,i=t&&"SPAN"===i.tagName&&t.width;return i&&(delete t.width,e.textWidth=i,e.updateTransform()),e.styles=C(e.styles,t),B(e.element,t),e},htmlGetBBox:function(){var t=this.element,e=this.bBox;return e||("text"===t.nodeName&&(t.style.position=Ft),e=this.bBox={x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}),e},htmlUpdateTransform:function(){var t,e,i,n,a,r,o,s,l,d,c,h,p,u,g,f,m,x,y,v;this.added?(e=(t=this).renderer,i=t.element,n=t.translateX||0,a=t.translateY||0,r=t.x||0,o=t.y||0,l={left:0,center:.5,right:1}[s=t.textAlignINTERNAL||"left"],d=s&&"left"!==s,c=t.shadows,(n||a)&&(B(i,{marginLeft:n,marginTop:a}),c&&V(c,function(t){B(t,{marginLeft:n+1,marginTop:a+1})})),t.isInverted&&V(i.childNodes,function(t){e.invertChild(t,i)}),"SPAN"===i.tagName&&(c=t.textAngle,p=1,u=h=0,f=A(t.textWidth),m=t.xCorr||0,x=t.yCorr||0,v={},(y=[c,s,i.innerHTML,t.textWidth].join(","))!==t.cTT&&(I(c)&&(e.isSVG?v[vt?"-ms-transform":wt?"-webkit-transform":Tt?"MozTransform":yt?"-o-transform":""]=v.transform="rotate("+c+"deg)":(p=b(h=c*st),u=w(h),v.filter=c?["progid:DXImageTransform.Microsoft.Matrix(M11=",p,", M12=",-u,", M21=",u,", M22=",p,", sizingMethod='auto expand')"].join(""):Bt),B(i,v)),h=H(t.elemWidth,i.offsetWidth),v=H(t.elemHeight,i.offsetHeight),f<h&&/[ \-]/.test(i.innerText)&&(B(i,{width:f+T,display:"block",whiteSpace:"normal"}),h=f),m=p<0&&-h,x=u<0&&-v,m+=u*(f=e.fontMetrics(i.style.fontSize).b)*((g=p*u<0)?1-l:l),x-=p*f*(c?g?l:1-l:1),d&&(m-=h*l*(p<0?-1:1),c&&(x-=v*l*(u<0?-1:1)),B(i,{textAlignINTERNAL:s})),t.xCorr=m,t.yCorr=x),B(i,{left:r+m+T,top:o+x+T}),t.cTT=y)):this.alignOnAdd=!0},updateTransform:function(){var t=this,e=t.translateX||0,i=t.translateY||0,n=t.isInverted,a=t.textAngle,r=[];n&&(e+=t.attr("width"),i+=t.attr("height")),(e||i)&&r.push("translate("+e+","+i+")"),n?r.push("rotate(90) scale(-1,1)"):a&&r.push("rotate("+a+" "+(t.x||0)+" "+(t.y||0)+")"),r.length&&P(t.element,"transform",r.join(" "))},toFront:function(){var t=this.element;return t.parentNode.appendChild(t),this},align:function(t,e,i){var n=this,a=(t?(n.alignOptions=t,n.alignByTranslate=e,i||n.renderer.alignedObjects.push(n)):(t=n.alignOptions,e=n.alignByTranslate),i=H(i,n.renderer),t.align),r=t.verticalAlign,o=(i.x||0)+(t.x||0),s=(i.y||0)+(t.y||0),l={};return"right"!==a&&"center"!==a||(o+=(i.width-(t.width||0))/{right:1,center:2}[a]),l[e?"translateX":"x"]=L(o),"bottom"!==r&&"middle"!==r||(s+=(i.height-(t.height||0))/({bottom:1,middle:2}[r]||1)),l[e?"translateY":"y"]=L(s),n[n.placed?"animate":"attr"](l),n.placed=!0,n.alignAttr=l,n},getBBox:function(){var t,e=this,i=e.bBox,n=e.renderer,a=e.textAngle,r=e.element,o=e.styles,s=a*st;if(!i){if(r.namespaceURI===kt||n.forExport){try{i=r.getBBox?C({},r.getBBox()):{width:r.offsetWidth,height:r.offsetHeight}}catch(t){}(!i||i.width<0)&&(i={width:0,height:0})}else i=e.htmlGetBBox();n.isSVG&&(r=i.width,t=i.height,a&&(i.width=ot(t*w(s))+ot(r*b(s)),i.height=ot(t*b(s))+ot(r*w(s)))),vt&&o&&"11px"===o.fontSize&&22.700000762939453===t&&(i.height=14),e.bBox=i}return i},show:function(){return this.attr({visibility:X})},hide:function(){return this.attr({visibility:O})},add:function(t){var e,i,n,a,r=this.renderer,o=t||r,s=o.element||r.box,l=s.childNodes,d=this.element,c=P(d,"zIndex");if(t&&(this.parentGroup=t),this.parentInverted=t&&t.isInverted,void 0!==this.textStr&&r.buildText(this),c&&(o.handleZ=!0,c=A(c)),o.handleZ)for(n=0;n<l.length;n++)if(i=P(e=l[n],"zIndex"),e!==d&&(A(i)>c||!I(c)&&I(i))){s.insertBefore(d,e),a=!0;break}return a||s.appendChild(d),this.added=!0,ue(this,"add"),this},safeRemoveChild:function(t){var e=t.parentNode;e&&e.removeChild(t)},destroy:function(){if(!this._destroyed){var t,e,i=this,n=i.element||{},a=i.shadows;if(n.onclick=n.onmouseout=n.onmouseover=n.onmousemove=null,ge(i),i.clipPath&&(i.clipPath=i.clipPath.destroy()),i.stops){for(e=0;e<i.stops.length;e++)i.stops[e]=i.stops[e].destroy();i.stops=null}for(t in i.safeRemoveChild(n),a&&V(a,function(t){i.safeRemoveChild(t)}),i.renderer._destroyed||ie(i.renderer.alignedObjects,i),i)i.hasOwnProperty(t)&&delete i[t];return i._destroyed=!0,null}},empty:function(){for(var t=this.element,e=t.childNodes,i=e.length;i--;)t.removeChild(e[i])},shadow:function(t,e,i){var n,a,r,o,s,l,d=[],c=this.element;if(t){for(o=H(t.width,3),s=(t.opacity||.15)/o,l=this.parentInverted?"(-1,-1)":"("+H(t.offsetX,1)+", "+H(t.offsetY,1)+")",n=1;n<=o;n++)P(a=c.cloneNode(0),{isShadow:"true",stroke:t.color||"black","stroke-opacity":s*n,"stroke-width":r=2*o+1-2*n,transform:"translate"+l,fill:Bt}),i&&(P(a,"height",R(P(a,"height")-r,0)),a.cutHeight=r),e?e.element.appendChild(a):c.parentNode.insertBefore(a,c),d.push(a);this.shadows=d}return this}};function we(){this.init.apply(this,arguments)}var Te;function ke(t,e,i){var n=this;n.axis=t,n.pos=e,n.type=i||"",n.isNew=!0,i||n._label()}function Se(t,e){return this.axis=t,e&&(this.options=e,this.id=e.id),this}function Ae(t,e,i,n,a,r){var o=this,s=Y[t.chart.guid].isInverted;o.axis=t,o.isNegative=i,o.options=e,o.x=n,o.stackIndex=a,o.percent="percent"===r,o.alignOptions={align:e.align||(s?i?"left":"right":"center"),verticalAlign:e.verticalAlign||(s?"middle":i?"bottom":"top"),y:H(e.y,s?4:i?14:-6),x:H(e.x,s?i?-6:6:0)},o.textAlignINTERNAL=e.textAlignINTERNAL||(s?i?"right":"left":"center")}we.prototype={Element:be,init:function(t,e,i,n){var a,r=this,o=location,s=r.createElement("svg").attr({xmlns:kt,version:"1.1"});t.appendChild(s.element),r.isSVG=!0,r.box=s.element,r.boxWrapper=s,r.alignedObjects=[],r.url=(Tt||wt)&&S.getElementsByTagName("base").length?o.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"",r.defs=this.createElement("defs").add(),r.forExport=n,r.gradients={},r.setSize(e,i,!1),Tt&&t.getBoundingClientRect&&(r.subPixelFix=s=function(){B(t,{left:0,top:0}),a=t.getBoundingClientRect(),B(t,{left:rt(a.left)-a.left+T,top:rt(a.top)-a.top+T})},s(),G(k,gt,s))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var t,e;if(!this._destroyed)return e=(t=this).defs,t.box=null,t.boxWrapper=t.boxWrapper.destroy(),le(t.gradients||{}),t.gradients=null,e&&(t.defs=e.destroy()),t.subPixelFix&&pe(k,gt,t.subPixelFix),t.alignedObjects=null,t._destroyed=!0,null},createElement:function(t){var e=new this.Element;return e.init(this,t),e},draw:function(){},buildText:function(p){var u,g=p.element,t=H(p.textStr,"").toString().replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g),e=g.childNodes,f=/style="([^"]+)"/,m=/href="([^"]+)"/,x=/id="([^"]+)"/,y=P(g,"x"),i=p.styles,v=i&&i.width&&A(i.width),b=i&&i.lineHeight,w="getComputedStyle",n=e.length,T=[];for(;n--;)g.removeChild(e[n]);v&&!p.added&&this.box.appendChild(g),""===t[t.length-1]&&t.pop(),V(t,function(t,l){var d,c,h=0;t=t.replace(/<span/g,"|||<span").replace(/<\/span>/g,"</span>|||"),d=t.split("|||"),V(d,function(t){if(""!==t||1===d.length){var e,i={},n=S.createElementNS(kt,"tspan");if(f.test(t)&&P(n,"style",e=t.match(f)[1].replace(/(;| |^)color([ :])/,"$1fill$2")),m.test(t)&&(P(n,"onclick",'location.href="'+t.match(m)[1]+'"'),B(n,{cursor:zt})),x.test(t)&&P(n,"id",t.match(x)[1]),t=(t.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"<").replace(/>/g,">"),n.appendChild(S.createTextNode(t)),h?i.dx=3:i.x=y,h||(l&&(!St&&p.renderer.forExport&&B(n,{display:"block"}),P(n,"dy",c=(c=k[w]&&A(k[w](u,null).getPropertyValue("line-height")))&&!isNaN(c)?c:b||u.offsetHeight||(T[s=l]=g.getBBox?g.getBBox().height:p.renderer.fontMetrics(g.style.fontSize).h,L(T[s]-(T[s-1]||0))||18))),u=n),P(n,i),g.appendChild(n),h++,v)for(var a,r=t.replace(/([^\^])-/g,"$1- ").split(" "),o=[];r.length||o.length;)delete p.bBox,a=p.getBBox().width,v<a&&1!==r.length?(n.removeChild(n.firstChild),o.unshift(r.pop())):(r=o,o=[],r.length&&(P(n=S.createElementNS(kt,"tspan"),{dy:b||16,x:y}),e&&P(n,"style",e),g.appendChild(n),v<a&&(v=a))),r.length&&n.appendChild(S.createTextNode(r.join(" ").replace(/- /g,"-")))}var s})})},crispLine:function(t,e){return t[1]===t[4]&&(t[1]=t[4]=L(t[1])-e%2/2),t[2]===t[5]&&(t[2]=t[5]=L(t[2])+e%2/2),t},path:function(t){var e={fill:Bt};return It(t)?e.d=t:Dt(t)&&C(e,t),this.createElement("path").attr(e)},circle:function(t,e,i){t=Dt(t)?t:{x:t,y:e,r:i};return this.createElement("circle").attr(t)},arc:function(t,e,i,n,a,r){return Dt(t)&&(e=t.y,i=t.r,n=t.innerR,a=t.start,r=t.end,t=t.x),this.symbol("arc",t||0,e||0,i||0,i||0,{innerR:n||0,start:a||0,end:r||0})},rect:function(t,e,i,n,a,r){a=Dt(t)?t.r:a;a=this.createElement("rect").attr({rx:a,ry:a,fill:Bt});return a.attr(Dt(t)?t:a.crisp(r,t,e,R(i,0),R(n,0)))},setSize:function(t,e,i){var n=this.alignedObjects,a=n.length;for(this.width=t,this.height=e,this.boxWrapper[H(i,!0)?"animate":"attr"]({width:t,height:e});a--;)n[a].align()},g:function(t){var e=this.createElement("g");return I(t)?e.attr({class:Wt+t}):e},image:function(t,e,i,n,a){var r={preserveAspectRatio:Bt};return 1<arguments.length&&C(r,{x:e,y:i,width:n,height:a}),(r=this.createElement("image").attr(r)).element.setAttributeNS?r.element.setAttributeNS("http://www.w3.org/1999/xlink","href",t):r.element.setAttribute("sui-svg-href",t),r},symbol:function(t,e,i,n,a,r){var o,s,l,d=this.symbols[t],d=d&&d(L(e),L(i),n,a,r),c=/^url\((.*?)\)$/;return d?(o=this.path(d),C(o,{symbolName:t,x:e,y:i,width:n,height:a}),r&&C(o,r)):c.test(t)&&(l=function(t,e){t.attr({width:e[0],height:e[1]}),t.alignByTranslate||t.translate(-L(e[0]/2),-L(e[1]/2))},s=t.match(c)[1],d=Ct[s],o=this.image(s).attr({x:e,y:i}),d?l(o,d):(o.attr({width:0,height:0}),F("img",{onload:function(){l(o,Ct[s]=[this.width,this.height])},src:s}))),o},symbols:{circle:function(t,e,i,n){var a=.166*i;return[W,t+i/2,e,"C",t+i+a,e,t+i+a,e+n,t+i/2,e+n,"C",t-a,e+n,t-a,e,t+i/2,e,"Z"]},x:function(t,e,i,n){return[W,t,e,E,t+i,e+n,W,t+i,e,E,t,e+n]},v:function(t,e,i,n){return[W,t+1,e+1,E,t+i/2,e+n-1,E,t+i-1,e+1]},check:function(t,e,i,n){return[W,t+2,e+n/2-1,E,t+i/2,e+n-1,E,t+i-1,e+1]},square:function(t,e,i,n){return[W,t,e,E,t+i,e,t+i,e+n,t,e+n,"Z"]},triangle:function(t,e,i,n){return[W,t+i/2,e,E,t+i,e+n,t,e+n,"Z"]},"triangle-down":function(t,e,i,n){return[W,t,e,E,t+i,e,t+i/2,e+n,"Z"]},diamond:function(t,e,i,n){return[W,t+i/2,e,E,t+i,e+n/2,t+i/2,e+n,t,e+n/2,"Z"]},arc:function(t,e,i,n,a){var r=a.start,i=a.r||i||n,n=a.end-1e-6,o=a.innerR,s=a.open,l=b(r),d=w(r),c=b(n),n=w(n),a=a.end-r<N?0:1;return[W,t+i*l,e+i*d,"A",i,i,0,a,1,t+i*c,e+i*n,s?W:E,t+o*c,e+o*n,"A",o,o,0,a,0,t+o*l,e+o*d,s?"":"Z"]}},clipRect:function(t,e,i,n){var a=f.strid(),r=this.createElement("clipPath").attr({id:a}).add(this.defs),t=this.rect(t,e,i,n,0).add(r);return t.id=a,t.clipPath=r,t},color:function(t,e,i){var n,a,r,o,s,l,d,c,h=this,p=/^rgba/;return t&&t.linearGradient?a="linearGradient":t&&t.radialGradient&&(a="radialGradient"),a?(r=t[a],o=h.gradients,c=e.radialReference,r.id&&o[r.id]||(It(r)&&(t[a]=r={x1:r[0],y1:r[1],x2:r[2],y2:r[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===a&&c&&!I(r.gradientUnits)&&C(r,{cx:c[0]-c[2]/2+r.cx*c[2],cy:c[1]-c[2]/2+r.cy*c[2],r:r.r*c[2],gradientUnits:"userSpaceOnUse"}),r.id=f.strid(),o[r.id]=s=h.createElement(a).attr(r).add(h.defs),s.stops=[],V(t.stops,function(t){d=p.test(t[1])?(n=new ve(t[1]),l=n.get("rgb"),n.get("a")):(l=t[1],1),t=h.createElement("stop").attr({offset:t[0],"stop-color":l,"stop-opacity":d}).add(s),s.stops.push(t)})),"url("+h.url+"#"+r.id+")"):p.test(t)?(P(e,i+"-opacity",(n=new ve(t)).get("a")),n.get("rgb")):(e.removeAttribute(i+"-opacity"),t)},text:function(t,e,i,n){var a=fe.style,r=Pt||!St&&this.forExport;return n&&!this.forExport?this.html(t,e,i):(e=L(H(e,0)),i=L(H(i,0)),n=this.createElement("text").attr({x:e,y:i,text:t}).css({fontFamily:a.fontFamily,fontSize:a.fontSize}),r&&n.css({position:Ft}),n.x=e,n.y=i,n)},html:function(t,e,i){var n=fe.style,r=this.createElement("span"),a=r.attrSetters,o=r.element,s=r.renderer;return a.text=function(t){return t!==o.innerHTML&&delete this.bBox,o.innerHTML=t,!1},a.x=a.y=a.align=function(t,e){return r[e="align"===e?"textAlignINTERNAL":e]=t,r.htmlUpdateTransform(),!1},r.attr({text:t,x:L(e),y:L(i)}).css({position:Ft,whiteSpace:"nowrap",fontFamily:n.fontFamily,fontSize:n.fontSize}),r.css=r.htmlCss,s.isSVG&&(r.add=function(t){var e,i,n=s.box.parentNode,a=[];if(t){if(!(e=t.div)){for(i=t;i;)a.push(i),i=i.parentGroup;V(a.reverse(),function(t){var i;e=t.div=t.div||F(Yt,{className:P(t.element,"class")},{position:Ft,left:(t.translateX||0)+T,top:(t.translateY||0)+T},e||n),i=e.style,C(t.attrSetters,{translateX:function(t){i.left=t+T},translateY:function(t){i.top=t+T},visibility:function(t,e){i[e]=t}})})}}else e=n;return e.appendChild(o),r.added=!0,r.alignOnAdd&&r.htmlUpdateTransform(),r}),r},fontMetrics:function(t){t=(t=A(t||11))<24?t+4:L(1.2*t);return{h:t,b:L(.8*t)}},label:function(t,e,i,n,a,r,o,s,l){var d,c,h,p,u,g,f,m=this,x=m.g(l),y=m.text("",0,0,o).attr({zIndex:1}),v=0,b=3,w=0,T={},l=x.attrSetters;function k(){var t=x.styles,t=t&&t.textAlignINTERNAL,e=b*(1-v),i=s?0:f;!I(h)||"center"!==t&&"right"!==t||(e+={center:.5,right:1}[t]*(h-c.width)),e===y.x&&i===y.y||y.attr({x:e,y:i}),y.x=e,y.y=i}function S(t,e){d?d.attr(t,e):T[t]=e}function A(){y.add(x),x.attr({text:t,x:e,y:i}),I(a)&&x.attr({anchorX:a,anchorY:r})}G(x,"add",A),l.width=function(t){return h=t,!1},l.height=function(t){return p=t,!1},l.padding=function(t){return I(t)&&t!==b&&(b=t,k()),!1},l.align=function(t){return v={left:0,center:.5,right:1}[t],!1},l.text=function(t,e){return y.attr(e,t),e=y.element.style,c=(void 0===h||void 0===p||x.styles.textAlignINTERNAL)&&y.getBBox(),x.width=(h||c.width||0)+2*b,x.height=(p||c.height||0)+2*b,f=b+m.fontMetrics(e&&e.fontSize).b,d||(e=s?-f:0,x.box=d=n?m.symbol(n,-v*b,e,x.width,x.height):m.rect(-v*b,e,x.width,x.height,0,T[Jt]),d.add(x)),d.attr(z({width:x.width,height:x.height},T)),T=null,k(),!1},l[Jt]=function(t,e){return w=t%2/2,S(e,t),!1},l.stroke=l.fill=l.r=function(t,e){return S(e,t),!1},l.anchorX=function(t,e){return S(e,(a=t)+w-u),!1},l.anchorY=function(t,e){return S(e,(r=t)-g),!1},l.x=function(t){return x.x=t,t-=v*((h||c.width)+b),u=L(t),x.attr("translateX",u),!1},l.y=function(t){return g=x.y=L(t),x.attr("translateY",t),!1};var P=x.css;return C(x,{css:function(e){var i;return e&&(i={},e=z({},e),V(["fontSize","fontWeight","fontFamily","color","lineHeight","width"],function(t){e[t]!==M&&(i[t]=e[t],delete e[t])}),y.css(i)),P.call(x,e)},getBBox:function(){return d.getBBox()},shadow:function(t){return d.shadow(t),x},destroy:function(){x._destroyed||(pe(x,"add",A),pe(x.element,"mouseenter"),pe(x.element,pt),y=y&&y.destroy(),d=d&&d.destroy(),be.prototype.destroy.call(x))}})}},l=we,St||Pt||($e={Element:Te=t(be,Te={init:function(t,e){var i=["<",e,' filled="f" stroked="f"'],n=["position: ",Ft,";"];"shape"!==e&&e!==Yt||n.push("left:0;top:0;width:1px;height:1px;"),bt&&n.push("visibility: ",e===Yt?O:X),i.push(' style="',n.join(""),'"/>'),e&&(i=e===Yt||"span"===e||"img"===e?i.join(""):t.prepVML(i),this.element=F(i)),this.renderer=t,this.attrSetters={}},add:function(t){var e=this,i=e.renderer,n=e.element,a=i.box,r=t&&t.isInverted,t=t?t.element||t:a;return r&&i.invertChild(n,t),t.appendChild(n),e.added=!0,e.alignOnAdd&&!e.deferUpdateTransform&&e.updateTransform(),ue(e,"add"),e},updateTransform:be.prototype.htmlUpdateTransform,attr:function(t,e){var i,n,a,r,o,s=this,l=s.element||{},d=l.style,c=l.nodeName,h=s.renderer,p=s.symbolName,u=s.shadows,g=s.attrSetters,f=s;if(Rt(t)&&I(e)&&(i=t,(t={})[i]=e),Rt(t))f="strokeWidth"===(i=t)||"stroke-width"===i?s.strokeweight:s[i];else for(i in t)if(t.hasOwnProperty(i)&&(n=t[i],(o=!1)!==(a=g[i]&&g[i].call(s,n,i))&&null!==n)){if(a!==M&&(n=a),p&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(i))r||(s.symbolAttr(t),r=!0),o=!0;else if("d"===i){s.d=(n=n||[]).join(" ");for(var m=n.length,x=[];m--;)Nt(n[m])?x[m]=L(10*n[m])-5:"Z"===n[m]?x[m]="x":x[m]=n[m];if(n=x.join(" ")||"x",l.path=n,u)for(m=u.length;m--;)u[m].path=u[m].cutOff?this.cutOffPath(n,u[m].cutOff):n;o=!0}else if("visibility"===i){if(u)for(m=u.length;m--;)u[m].style[i]=n;"DIV"===c&&(n=n===O?"-999em":0,i="top"),d[i]=n,o=!0}else"zIndex"===i?(n&&(d[i]=n),o=!0):"width"===i||"height"===i?(n=R(0,n),this[i]=n,s.updateClipping?(s[i]=n,s.updateClipping()):d[i]=n,o=!0):"x"===i||"y"===i?(s[i]=n,d[{x:"left",y:"top"}[i]]=n):"class"===i?l.className=n:"stroke"===i?(n=h.color(n,l,i),i="strokecolor"):"stroke-width"===i||"strokeWidth"===i?(l.stroked=!!n,s[i="strokeweight"]=n,Nt(n)&&(n+=T)):"dashstyle"===i?((l.getElementsByTagName("stroke")[0]||F(h.prepVML(["<stroke/>"]),null,null,l))[i]=n||"solid",s.dashstyle=n,o=!0):"fill"===i?"SPAN"===c?d.color=n:(l.filled=n!==Bt,n=h.color(n,l,i,s),i="fillcolor"):"shape"===c&&"textAngle"===i?(s[i]=n,l.style.left=-L(w(n*st)+1)+T,l.style.top=L(b(n*st))+T):"translateX"===i||"translateY"===i||"textAngle"===i?(s[i]=n,s.updateTransform(),o=!0):"text"===i&&(this.bBox=null,l.innerHTML=n,o=!0);o||(bt?l[i]=n:P(l,i,n))}return f},clip:function(t){var e,i=this,t=(i.element.parentNode,t?((e=t.members).push(i),i.destroyClip=function(){ie(e,i)},t.getCSS(i)):(i.destroyClip&&i.destroyClip(),{clip:bt?"inherit":"rect(auto)"}));return i.css(t)},css:be.prototype.htmlCss,safeRemoveChild:function(t){t.parentNode&&de(t)},destroy:function(){if(!this._destroyed)return this.destroyClip&&this.destroyClip(),be.prototype.destroy.apply(this)},empty:function(){for(var t,e=this.element.childNodes,i=e.length;i--;)(t=e[i]).parentNode.removeChild(t)},on:function(t,e){return this.element["on"+t]=function(){var t=k.event;t.target=t.srcElement,e(t)},this},cutOffPath:function(t,e){var i;return 9!==(i=(t=t.split(/[ ,]/)).length)&&11!==i||(t[i-4]=t[i-2]=A(t[i-2])-10*e),t.join(" ")},shadow:function(t,e,i){var n,a,r,o,s,l,d=this,c=[],h=d.element,p=d.renderer,u=h.style,g=h.path,f=g=g&&"string"!=typeof g.value?"x":g;if(t){for(s=H(t.width,3),l=(t.opacity||.15)/s,n=1;n<=3;n++)r=['<shape isShadow="true" strokeweight="',o=2*s+1-2*n,'" filled="false" path="',f=i?d.cutOffPath(g.value,.5+o):f,'" coordsize="10 10" style="',h.style.cssText,'" />'],a=F(p.prepVML(r),null,{left:A(u.left)+H(t.offsetX,1),top:A(u.top)+H(t.offsetY,1)}),i&&(a.cutOff=1+o),r=['<stroke color="',t.color||"black",'" opacity="',l*n,'"/>'],F(p.prepVML(r),null,null,a),e?e.element.appendChild(a):h.parentNode.insertBefore(a,h),c.push(a);d.shadows=c}return d}}),isIE8:-1<xt.indexOf("MSIE 8.0"),init:function(t,e,i){var n,a,r=this;r.alignedObjects=[],(a=(n=r.createElement(Yt)).element).style.position=Ht,t.appendChild(n.element),r.box=a,r.boxWrapper=n,r.setSize(e,i,!1),S.namespaces.scv||(S.namespaces.add("scv","urn:schemas-microsoft-com:vml"),S.createStyleSheet().cssText="scv\\:fill, scv\\:path, scv\\:shape, scv\\:stroke{ behavior:url(#default#VML); display: inline-block; } ")},isHidden:function(){return!this.box.offsetWidth},clipRect:function(t,e,i,n){var a=this.createElement(),r=Dt(t);return C(a,{members:[],left:r?t.x:t,top:r?t.y:e,width:r?t.width:i,height:r?t.height:n,getCSS:function(t){var e=t.isInverted,i=this.top,n=this.left,a=n+this.width,r=i+this.height,i={clip:"rect("+L(e?n:i)+"px,"+L(e?r:a)+"px,"+L(e?a:r)+"px,"+L(e?i:n)+"px)"};return!e&&bt&&"IMG"!==t.element.nodeName&&C(i,{width:a+T,height:r+T}),i},updateClipping:function(){V(a.members,function(t){t.css(a.getCSS(t))})}})},color:function(t,e,i,n){var a,r,o,s,l,d,c,h,p,u,g,f,m,x,y,v,b,w,T,k,S,A,P=this,L=/^rgba/,C=Bt;return t&&t.linearGradient?o="gradient":t&&t.radialGradient&&(o="pattern"),o?(d=t.linearGradient||t.radialGradient,g="",A=t.stops,f=function(){r=['<fill colors="'+fe.seriesPalette.join(",")+'" opacity="',h,'" o:opacity2="',c,'" type="',o,'" ',g,'focus="100%" method="any" />'],F(P.prepVML(r),null,null,e)},k=A[0],S=A[A.length-1],0<k[0]&&A.unshift([0,k[1]]),S[0]<1&&A.push([1,S[1]]),V(A,function(t,e){l=L.test(t[1])?(a=new ve(t[1]),s=a.get("rgb"),a.get("a")):(s=t[1],1),fe.seriesPalette.push(100*t[0]+"% "+s),e?(h=l,p=s):(c=l,u=s)}),"fill"===i?"gradient"===o?(k=d.x1||d[0]||0,S=d.y1||d[1]||0,A=d.x2||d[2]||0,m=d.y2||d[3]||0,g='angle="'+(90-180*_.atan((m-S)/(A-k))/N)+'"',f()):(m=d.r,y=x=2*m,v=d.cx,b=d.cy,w=e.radialReference,S=function(){w&&(T=n.getBBox(),v+=(w[0]-T.x)/T.width-.5,b+=(w[1]-T.y)/T.height-.5,x*=w[2]/T.width,y*=w[2]/T.height),g='size="'+x+","+y+'" origin="0.5,0.5" position="'+v+","+b+'" color2="'+u+'" ',f()},n.added?S():G(n,"add",S),C=p):C=s):C=L.test(t)&&"IMG"!==e.tagName?(a=new ve(t),r=["<",i,' opacity="',a.get("a"),'"/>'],F(this.prepVML(r),null,null,e),a.get("rgb")):((A=e.getElementsByTagName(i)).length&&(A[0].opacity=1),t),C},prepVML:function(t){var e="display:inline-block;behavior:url(#default#VML);",i=this.isIE8;return t=t.join(""),t=i?-1===(t=t.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />')).indexOf('style="')?t.replace("/>",' style="'+e+'" />'):t.replace('style="','style="'+e):t.replace("<","<scv:")},text:we.prototype.html,path:function(t){var e={coordsize:"10 10"};return It(t)?e.d=t:Dt(t)&&C(e,t),this.createElement("shape").attr(e)},circle:function(t,e,i){return this.symbol("circle").attr({x:t-i,y:e-i,width:2*i,height:2*i})},g:function(t){var e;return t&&(e={className:Wt+t,class:Wt+t}),this.createElement(Yt).attr(e)},image:function(t,e,i,n,a){var r=this.createElement("img").attr({src:t});return 1<arguments.length&&r.attr({x:e,y:i,width:n,height:a}),r},rect:function(t,e,i,n,a,r){Dt(t)&&(e=t.y,i=t.width,n=t.height,r=t.strokeWidth,t=t.x);var o=this.symbol("rect");return o.r=a,o.attr(o.crisp(r,t,e,R(i,0),R(n,0)))},invertChild:function(t,e){e=e.style;B(t,{flip:"x",left:A(e.width)-1,top:A(e.height)-1,rotation:-90})},symbols:{arc:function(t,e,i,n,a){var r=a.start,o=a.end,i=a.r||i||n,n=b(r),s=w(r),l=b(o),d=w(o),c=a.innerR,h=.08/i,p=c&&.1/c||0;return o-r==0?["x"]:(2*N-o+r<h?l=-h:o-r<p&&(l=b(r+p)),h=["wa",t-i,e-i,t+i,e+i,t+i*n,e+i*s,t+i*l,e+i*d],a.open&&!c&&h.push("e",W,t,e),h.push("at",t-c,e-c,t+c,e+c,t+c*l,e+c*d,t+c*n,e+c*s,"x","e"),h)},circle:function(t,e,i,n){return["wa",t,e,t+i,e+n,t+i,e+n/2,t+i,e+n/2,"e"]},rect:function(t,e,i,n,a){var r,o=t+i,s=e+n,o=I(a)&&a.r?(r=D(a.r,i,n),[W,t+r,e,E,o-r,e,"wa",o-2*r,e,o,e+2*r,o-r,e,o,e+r,E,o,s-r,"wa",o-2*r,s-2*r,o,s,o,s-r,o-r,s,E,t+r,s,"wa",t,s-2*r,t+2*r,s,t+r,s,t,s-r,E,t,e+r,"wa",t,e,t+2*r,e+2*r,t,e+r,t+r,e,"x","e"]):we.prototype.symbols.square.apply(0,arguments);return o}}},(qe=function(){this.init.apply(this,arguments)}).prototype=z(we.prototype,$e),l=qe),Pt&&((Qe=function(){kt="http://www.w3.org/1999/xhtml"}).prototype.symbols={},Qe.prototype=t(we.prototype,{create:function(t,e,i,n){this.setContainer(e,i,n),this.configure(t)},setContainer:function(t,e,i){var n=t.style,a=t.parentNode,r=n.left,n=n.top,o=t.offsetWidth,s=t.offsetHeight,l={visibility:O,position:Ft},i=(this.init.apply(this,[t,e,i]),e=F("canvas",{width:o,height:s},{position:Ht,left:r,top:n},t),this.canvas=e,this.ttLine=F(Yt,null,l,a),this.ttDiv=F(Yt,null,l,a),this.ttTimer=M,F(Yt,{width:o,height:s},{visibility:O,left:r,top:n},a));(this.hiddenSvg=i).appendChild(this.box)},configure:function(t){var a=this,e=t.options.tooltipSettings,r=Y[t.guid],i=e.borderWidth,o=a.ttDiv,n=e.style,s=a.ttLine,l=parseInt(n.padding,10),n=z(n,{padding:l+T,"background-color":e.backgroundColor,"border-style":"solid","border-width":i+T,"border-drawRadius":e.borderRadius+T});e.shadow&&(n=z(n,{"box-shadow":"1px 1px 3px gray","-webkit-box-shadow":"1px 1px 3px gray"})),B(o,n),B(s,{"border-left":"1px solid darkgray"}),G(t,"tooltipRefresh",function(t){var e,i=r.container,n=i.offsetLeft,i=i.offsetTop;o.innerHTML=t.text,e=r.tooltipSettings.getPosition(o.offsetWidth,o.offsetHeight,{plotX:t.x,plotY:t.y}),B(o,{visibility:X,left:e.x+T,top:e.y+T,"border-color":t.borderColor}),B(s,{visibility:X,left:n+t.x+T,top:i+r.plotTop+T,height:r.plotHeight+T}),a.ttTimer!==M&&clearTimeout(a.ttTimer),a.ttTimer=setTimeout(function(){B(o,{visibility:O}),B(s,{visibility:O})},3e3)})},destroy:function(){var t=this;if(!t._destroyed)return de(t.canvas),t.ttTimer!==M&&clearTimeout(t.ttTimer),de(t.ttLine),de(t.ttDiv),de(t.hiddenSvg),we.prototype.destroy.apply(t)},color:function(t,e,i){return t&&t.linearGradient&&(t=t.stops[t.stops.length-1][1]),we.prototype.color.call(this,t,e,i)},draw:function(){k.canvg(this.canvas,this.hiddenSvg.innerHTML)}})),l=qe||Qe||we,ke.prototype={_label:function(){var t,e=this,i=e.axis,n=i.options,a=i.chart,r=Y[a.guid],o=i.horiz,s=i.categoricalValues,l=e.pos,d=n.axisTickText,c=i.tickPositions,o=s&&o&&s.length&&!d.step&&!d.staggerLinesINTERNAL&&!d.textAngle&&r.plotWidth/c.length||!o&&r.plotWidth/2,h=l===c[0],p=l===c[c.length-1],u=s&&I(s[l])?s[l]:l,g=e.label,c=c.info;s&&!I(s[l])&&u==l&&r.enablePolarLayout||(i.isDatetimeAxis&&c&&(t=n.axisDateFormat[c.higherRanks[l]||c.unitName]),e.isFirst=h,e.isLast=p,s=d.format?Rt(d.format)?f.format(d.format,{text:i.isDatetimeAxis?new Date(u):u,axis:i,chart:a}):d.format.call(null,u,i,a):function(){var t,e,i=this.axis,n=this.value,a=i.categoricalValues,r=this.dateTimeLabelFormat,o=null,s=i.isLog?n:i.ticksRepeat;if(a)e=n;else if(r)e=f.format("{0:"+r+"}",new Date(n));else if(o&&1e3<=s)for(;o--&&e===M;)(t=_.pow(1e3,o+1))<=s&&null!==null[o]&&(e=f.format("{0:n}",n/t)+null[o]);e===M&&(e=1e3<=n?f.format("{0:d}",n):f.format(Xt(n)?"{0:n}":"{0:d}",n));return e}.call({axis:i,chart:a,isFirst:h,isLast:p,dateTimeLabelFormat:t,value:i.isLog?ce(ee(u)):u}),n=o&&{width:R(1,L(o-2*(d.padding||10)))+T},n=C(n,d.style),d&&"x"==i.xOrY&&!i.inverseOrder&&("left"==d.align?d.align="right":"right"==d.align&&(d.align="left")),I(g)?g&&g.attr({text:s}).css(n):(l={align:d.align},Nt(d.textAngle)&&(l.textAngle=d.textAngle),e.label=I(s)&&d.enabled?r.renderer.text(s,0,0,d.htmlOutput).attr(l).css(n).add(i.labelGroup):null))},_labelSize:function(){var t=this.label,e=this.axis;return t?(this.labelBBox=t.getBBox())[e.horiz?"height":"width"]:0},_labelDim:function(){var t=this.labelBBox,e=this.axis.options.axisTickText,t=t.width,e=t*{left:0,center:.5,right:1}[e.align]-e.x;return[-e,t-e]},_overflow:function(t,e){var i,n,a,r,o=!0,s=this.axis,l=this.isFirst,d=this.isLast,c=e.x,h=s.inverseOrder,p=s.tickPositions;return(l||d)&&(i=(n=this._labelDim())[0],n=n[1],r=(a=Y[s.chart.guid].plotLeft)+s.len,p=(s=s.ticks[p[t+(l?1:-1)]])&&s.label.xy&&s.label.xy.x+s._labelDim()[l?0:1],l&&!h||d&&h?c+i<a&&(c=a-i,s&&p<c+n&&(o=!1)):r<c+n&&(c=r-n,s&&c+i<p&&(o=!1)),e.x=c),o},_position:function(t,e,i,n){var a=this.axis,r=Y[a.chart.guid],o=n&&r.oldChartHeight||r.chartHeight;return{x:t?a.translate(e+i,null,null,n)+a.transB:a.left+a.offset+(a.swapLocation?(n&&r.oldChartWidth||r.chartWidth)-a.right-a.left:0),y:t?o-a.bottom+a.offset-(a.swapLocation?a.height:0):o-a.translate(e+i,null,null,n)-a.transB}},_labelPos:function(t,e,i,n,a,r,o,s){var l=this.axis,d=l.transA,c=l.inverseOrder,l=l.staggerLinesINTERNAL;return t=t+a.x-(r&&n?r*d*(c?-1:1):0),e=e+a.y-(r&&!n?r*d*(c?1:-1):0),I(a.y)||(e+=.9*A(i.styles.lineHeight)-i.getBBox().height/2),l&&(e+=o/(s||1)%l*16),{x:t,y:e}},_markPath:function(t,e,i,n,a,r){return r.crispLine([W,t,e,E,t+(a?0:-i),e+(a?i:0)],n)},render:function(t,e){var i=this,n=i.axis,a=n.options,r=Y[n.chart.guid].renderer,o=n.horiz,s=i.type,l=i.label,d=i.pos,c=a.axisTickText,h=i.gridLine,p=s?s+"Plot":"plot",u=s?s+"Ticks":"ticks",g=a[p+"StripWidth"],f=a[p+"StripColor"],p=a[p+"StripDashStyle"],m=a[u+"Height"],x=a[u+"Width"]||0,y=a[u+"Color"],u=a[u+"Placement"],v=i.mark,b=c.step,w=!0,T=n.tickmarkOffset,k=i._position(o,d,T,e),S=k.x,A=k.y,P=n.staggerLinesINTERNAL;n.isXAxis&&null!=a.axisTickText.y&&n.inverseOrder&&(a.axisTickText.y=null),g&&(d=n._linePath(d+T,g,e),h===M&&(f={stroke:f,"stroke-width":g},p&&(f.dashstyle=p),s||(f.zIndex=1),i.gridLine=h=g?r.path(d).attr(f).add(n.gridGroup):null),!e&&h&&d&&h[i.isNew?"attr":"animate"]({d:d})),x&&m&&("inside"===u&&(m=-m),n.swapLocation&&(m=-m),"through"===u&&i.axis.isXAxis&&(i.axis.inverseOrder?S+=m:A=A-m+1,m+=m),p=i._markPath(S,A,m,x,o,r),v?v.animate({d:p}):i.mark=r.path(p).attr({stroke:y,"stroke-width":x}).add(n.axisGroup)),!l||isNaN(S)||isNaN(A)||(l.xy=k=i._labelPos(S,A,l,o,c,T,t,b),(i.isFirst&&!H(a.firstTickTextVisible,1)||i.isLast&&!H(a.lastTickTextVisible,1)||!P&&o&&c.repositionClippedText&&!i._overflow(t,k))&&(w=!1),(w=b&&t%b?!1:w)?(l[i.isNew?"attr":"animate"](k),l.show(),i.isNew=!1):l.hide())},destroy:function(){this._destroyed||(le(this,this.axis),this._destroyed=!0)}},Se.prototype={render:function(){var t,e,i,n=this,a=n.axis,r=a.horiz,o=(a.pointRange||0)/2,s=n.options,l=s.label,d=n.label,c=s.drawWidth,h=s.start,p=s.end,u=I(h)&&I(p),g=s.seriesDashStyle,f=n.svgElem,m=[],x=s.drawColor,y=s.zIndex,v=s.events,b=Y[a.chart.guid].renderer;if(a.isLog&&(h=te(h),p=te(p)),c)m=a._linePath(h,c),i={stroke:x,"stroke-width":c},g&&(i.dashstyle=g);else{if(!u)return;h=R(h,a.min-o),p=D(p,a.max+o),m=a._bandPath(h,p,s),i={fill:x},s.borderWidth&&(i.stroke=s.borderColor,i["stroke-width"]=s.borderWidth)}if(I(y)&&(i.zIndex=y),f)m?f.animate({d:m},null,f.onGetPath):(f.hide(),f.onGetPath=function(){f.show()});else if(m&&m.length&&(n.svgElem=f=b.path(m).attr(i).add(),v))for(e in t=function(e){f.on(e,function(t){v[e].apply(n,[t])})},v)v.hasOwnProperty(e)&&t(e);return l&&I(l.text)&&m&&m.length&&0<a.width&&0<a.height?(l=z({align:r&&u&&"center",x:r?!u&&4:10,verticalAlign:!r&&u&&"middle",y:r?u?16:10:u?6:-4,textAngle:r&&!u&&90},l),d||(n.label=d=b.text(l.text,0,0).attr({align:l.textAlignINTERNAL||l.align,textAngle:l.textAngle,zIndex:y}).css(l.style).add()),c=[m[1],m[4],H(m[6],m[1])],g=[m[2],m[5],H(m[7],m[2])],o=oe(c),h=oe(g),d.align(l,!1,{x:o,y:h,width:se(c)-o,height:se(g)-h}),d.show()):d&&d.hide(),n},destroy:function(){this._destroyed||(ie(this.axis.plotLinesAndBands,this),le(this,this.axis),this._destroyed=!0)}};var Pe={defaults:{axisDateFormat:{MILLISECOND:"HH:mm:ss.fff",SECOND:"HH:mm:ss",MINUTE:"HH:mm",HOUR:"HH",DAY:"d MMM",WEEK:"d MMM",MONTH:"MMM yyyy",YEAR:"yyyy"},fixedEnd:!(Ae.prototype={destroy:function(){this._destroyed||(le(this,this.axis),this._destroyed=!0)},_total:function(t){this.total=t,this.cum=t},render:function(t){var e=this,i=e.options.labelFormatFunction.call(e);e.label?e.label.attr({text:i,visibility:O}):e.label=Y[e.axis.chart.guid].renderer.text(i,0,0).css(e.options.style).attr({align:e.textAlignINTERNAL,textAngle:e.options.textAngle,visibility:O}).add(t)},_offset:function(t,e){var i=this,n=i.axis,a=n.chart,r=Y[a.guid],o=r.isInverted,s=i.isNegative,l=n.translate(i.percent?100:i.total,0,0,0,1),n=n.translate(0),n=ot(l-n),t=r.axisX[0].translate(i.x)+t,r=r.plotHeight,d=i.label;d&&(d.align(i.alignOptions,null,{x:o?s?l:l-n:t,y:o?r-t-e:s?r-l-n:r-l,width:o?n:e,height:o?e:n}),t=d.alignAttr,d.attr({visibility:!1===i.options.hideInvisible||He(a,t.x,t.y)?St?"inherit":X:O}))}}),plotStripColor:"#C0C0C0",axisTickText:g,drawColor:"#7E7E7E",drawWidth:1,minPaddingINTERNAL:1e-4,maxPaddingINTERNAL:1e-4,endOffset:.01,zoomMin:null,minorPlotStripColor:"#E0E0E0",minorPlotStripWidth:1,minorTicksColor:"#A0A0A0",minorTicksHeight:12,minorTicksPlacementINTERNAL:"outside",startOfWeekINTERNAL:1,tickOnBeginning:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacementlINTERNAL:"between",tickPixelIntervalINTERNAL:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",margin:12,style:{color:"#404040",fontWeight:"normal",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif"}},axisType:"linear"},y:{fixedEnd:!0,plotStripWidth:1,tickPixelIntervalINTERNAL:80,lastTickTextVisible:!0,axisTickText:{align:"right",x:-8,y:3},drawWidth:0,endOffset:.05,startOffset:.05,tickOnBeginning:!0,tickWidth:0,title:{textAngle:270,text:null},stackTextSettings:{enabled:!1,labelFormatFunction:function(){return this.total},style:g.style}},left:{axisTickText:{align:"right",x:-8,y:null},title:{textAngle:270}},right:{axisTickText:{align:"left",x:8,y:null},title:{textAngle:90}},bottom:{axisTickText:{align:"center",x:0,y:14},title:{textAngle:0}},top:{axisTickText:{align:"center",x:0,y:-5},title:{textAngle:0}}};function Le(t,e,i){for(var n,e=ce(y(e/t)*t),a=ce(rt(i/t)*t),r=[],o=e;o<=a&&(r.push(o),(o=ce(o+t))!==n);)n=o;return r}function Ce(t,e,i,n){var a=this,r=a.options,o=a.len,s=[];if(n||(a._minorAutoInterval=null),.5<=t)t=L(t),s=Le.call(a,t,e,i);else if(.08<=t)for(var l,d,c,h,p,u=.3<t?[1,2,4]:.15<t?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],g=y(e);g<i+1&&!p;g++)for(d=u.length,l=0;l<d&&!p;l++)e<(c=te(ee(g)*u[l]))&&s.push(h),i<h&&(p=!0),h=c;else{var f=ee(e),m=ee(i),x=r[n?"minorTicksRepeat":"ticksRepeat"],r=r.tickPixelIntervalINTERNAL/(n?5:1),o=n?o/a.tickPositions.length:o;t=ne(t=H("auto"===x?null:x,a._minorAutoInterval,(m-f)*r/(o||1)),null,_.pow(10,y(_.log(t)/_.LN10))),s=xe(Le.call(a,t,f,m),te),n||(a._minorAutoInterval=t/5)}return n||(a.ticksRepeat=t),s}function Me(){var t=this,e=Y[t.chart.guid],i=e.maxTicks,n=t.tickPositions,a=t.xOrY,i=i||{x:0,y:0};!t.isLinked&&!t.isDatetimeAxis&&n.length>i[a]&&!1!==t.options.matchTicks&&(i[a]=n.length),e.maxTicks=i}function _e(t,e,i,n,a){var r=this.chart;i=H(i,!0),a=C(a,{min:t,max:e}),this.userMin=t,this.userMax=e,this.isDirtyExtremes=!0,i&&r.redraw(n)}function Re(){var t=this,e=t.isLog;return{min:e?ce(ee(t.min)):t.min,max:e?ce(ee(t.max)):t.max,dataMin:t.dataMin,dataMax:t.dataMax,userMin:t.userMin,userMax:t.userMax}}function De(t){var e=this,i=e.isLog,n=i?ee(e.min):e.min,i=i?ee(e.max):e.max;return t<n||null===t?t=n:i<t&&(t=i),e.translate(t,0,1,0,1)}function Ie(){this.init.apply(this,arguments)}function Ne(t,e){var i,n,a=Y[this.chart.guid],r=a.isInverted,o=0,s=0;return(i=(t=Et(t))[0].tooltipPos)||(V(t,function(t){n=t.dataSeries.axisY,o+=t.plotX,s+=(t.plotLow?(t.plotLow+t.plotHigh)/2:t.plotY)+(!r&&n?n.top-a.plotTop:0)}),o/=t.length,s/=t.length,i=[r?a.plotWidth-s:o,this.chartBound&&!r&&1<t.length&&e?e.chartY-a.plotTop:r?a.plotHeight-o:s]),xe(i,L)}function Xe(e,t){var i=this;i.chart=e,i.options=t,i.axisMarkers=[],i.isHidden=!0,(/msie 7/i.test(xt)||/msie 8/i.test(xt))&&p("html").addClass("ie7"),i.labelElement=p('<div class="shield-tooltip" style="pointer-events: none"></div>').appendTo(e.element),(vt||yt)&&p(i.labelElement).bind(dt,function(t){Y[e.guid].container.onmousemove(t)}),i.chartBound=t.chartBound}function Oe(t,e){var i=this,n=Pt?"":e.zoomMode;i.zoomX=/x/.test(n),i.zoomY=/y/.test(n),i.options=e,i.chart=t,i.init(t,e.tooltipSettings)}function Ee(t,e){var i=this.options,n=t.legendItem,a=t.legendLine,r=t.legendSymbol,o=t.checkMark,s=this.disabledStyle.color,l=e?i.legendItemSettings.elementStyle.color:s,s=e?t.color:s,t=(t.options&&t.options.pointMark,{stroke:s,fill:s,"stroke-width":0});n&&n.css({fill:l}),a&&a.attr({stroke:s}),r&&r.attr(t),o&&(e?o.attr({stroke:i.checkMarkSettings.color}).css({visibility:X}):o.css({visibility:O}))}function We(t){t.legendItem&&t.legendItem.destroy(),t.legendLine&&t.legendLine.destroy(),t.legendSymbol&&t.legendSymbol.destroy(),t.legendGroup&&t.legendGroup.destroy()}function Ye(t){this.init(t)}function He(t,e,i,n){var t=Y[t.guid],a=n?i:e,n=n?e:i;return 0<=a&&a<=t.plotWidth&&0<=n&&n<=t.plotHeight}Ie.prototype={init:function(t,e){var i=e.isX,n=this,a=Y[t.guid],r=(n.horiz=a.isInverted?!i:i,n.isXAxis=i,n.xOrY=i?"x":"y",n.swapLocation=e.swapLocation,n.side=n.horiz?n.swapLocation?0:2:n.swapLocation?1:3,n.setOptions(e,t),this.options),o=r.axisType,s="datetime"===o;n.staggerLinesINTERNAL=n.horiz&&r.axisTickText.staggerLinesINTERNAL,n.userOptions=e,n.minPixelPadding=0,n.chart=t,n.inverseOrder=r.inverseOrder,n.categoricalValues=r.categoricalValues,n.isLog="logarithmic"===o,n.isLinked=I(r.linkedToINTERNAL),n.isDatetimeAxis=s,n.tickmarkOffset=r.categoricalValues&&"between"===r.tickmarkPlacementlINTERNAL?.5:0,n.ticks={},n.minorTicks={},n.plotLinesAndBands=[],n.alternateBands={},n.len=0,n.zoomMin=n.customZoomMin=r.zoomMin,n.range=r.range,n.offset=r.offset||0,n.stacks={},n.max=null,n.min=null;var l,d=n.options.events;for(l in a.axes.push(n),a[i?"axisX":"axisY"].push(n),n.dataSeries=[],a.isInverted&&i&&n.inverseOrder===M&&(n.inverseOrder=!0),d)d.hasOwnProperty(l)&&G(n,l,d[l]);n.isLog&&(n.val2lin=te,n.lin2val=ee)},setOptions:function(t,e){this.options=z(Pe.defaults,this.isXAxis?{}:Pe.y,[Pe.top,Pe.right,Pe.bottom,Pe.left][this.side],z(fe[this.isXAxis?"axisX":"axisY"],t))},translate:function(t,e,i,n,a,r){var o,s=this,l=s.len,d=1,c=0,h=n?s.oldTransA:s.transA,n=n?s.oldMin:s.min,a=s.options.ordinal||s.isLog&&a,h=h||s.transA;return i&&(d*=-1,c=l),s.inverseOrder&&(c-=(d*=-1)*l),e?(o=(t=s.inverseOrder?l-t:t)/h+n,a&&(o=s.lin2val(o))):o=d*((t=a?s.val2lin(t):t)-n)*h+c+d*s.minPixelPadding+(r?h*s.pointRange/2:0),o},_linePath:function(t,e,i){var n,a,r=this,o=Y[r.chart.guid],s=r.left,l=r.top,t=r.translate(t,null,null,i),d=i&&o.oldChartHeight||o.chartHeight,i=i&&o.oldChartWidth||o.chartWidth,c=r.transB,h=n=L(t+c),p=c=L(d-t-c);return isNaN(t)?a=!0:r.horiz?(p=l,c=d-r.bottom,(h<s||h>s+r.width)&&(a=!0)):(h=s,n=i-r.right,(p<l||p>l+r.height)&&(a=!0)),a?null:o.renderer.crispLine([W,h,p,E,n,c],e||0)},_bandPath:function(t,e){e=this._linePath(e),t=this._linePath(t);return t&&e?t.push(e[4],e[5],e[1],e[2]):t=null,t},_arrange:function(){var a,t=this,e=t.max-t.min,r=0,o=0,s=0,i=t.linkedParent,n=t.transA;t.isXAxis&&(i?(o=i.minPointOffset,s=i.pointRangePadding):V(t.dataSeries,function(t){var e=t.pointRange,i=t.options.positioningMethod,n=t.closestPointRange;r=R(r,e),o=R(o,i?0:e/2),s=R(s,"on"===i?0:e),!t.noSharedTooltip&&I(n)&&(a=I(a)?D(a,n):n)}),t.minPointOffset=o,t.pointRangePadding=s,t.pointRange=r,t.closestPointRange=a),t.oldTransA=n,t.translationSlope=t.transA=n=t.len/(e+s||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=n*o},_ticks:function(t){var e=this,i=Y[e.chart.guid],n=e.options,a=e.isLog,r=e.isDatetimeAxis,o=e.isXAxis,s=e.isLinked,l=e.options.tickPositionerlINTERNAL,d=n.endOffset,c=n.startOffset,h=n.ticksRepeat,p=n.minTickInterval,u=n.tickPixelIntervalINTERNAL,g=e.categoricalValues;if(s){if(e.linkedParent=i[o?"axisX":"axisY"][n.linkedToINTERNAL],i=Re.call(e.linkedParent),e.min=H(i.min,i.dataMin),e.max=H(i.max,i.dataMax),n.type!==e.linkedParent.options.axisType)return void _t("Axis and parent axis have different type",1)}else e.min=H(e.userMin,n.min,e.dataMin),e.max=H(e.userMax,n.max,e.dataMax);if(a){if(!t&&D(e.min,H(e.dataMin,e.min))<=0)return void _t("Negative values not supported for this axis type",1);e.min=ce(te(e.min)),e.max=ce(te(e.max))}e.range&&(e.userMin=e.min=R(e.min,e.max-e.range),e.userMax=e.max,t&&(e.range=null)),function(){var e,i,n,a,r,t,o,s,l=this,d=l.options,c=l.min,h=l.max,p=l.dataMax-l.dataMin>=l.zoomMin;l.isXAxis&&l.zoomMin===M&&!l.isLog&&(I(d.min)||I(d.max)?l.zoomMin=null:(V(l.dataSeries,function(t){for(a=t.xData,r=t.xIncrement?1:a.length-1,i=r;0<i;i--)n=a[i]-a[i-1],(e===M||n<e)&&(e=n)}),l.zoomMin=D(5*e,l.dataMax-l.dataMin))),h-c<l.zoomMin&&(s=[c-(s=((o=l.zoomMin)-h+c)/2),H(d.min,c-s)],p&&(s[2]=l.dataMin),t=[(c=se(s))+o,H(d.max,c+o)],p&&(t[2]=l.dataMax),(h=oe(t))-c<o&&(s[0]=h-o,s[1]=H(d.min,h-o),c=se(s))),l.min=c,l.max=h}.call(e),g||e.usePercentage||s||!I(e.min)||!I(e.max)||(i=e.max-e.min||1,I(n.min)||I(e.userMin)||!c||!(e.dataMin<0)&&e.ignoreMinPadding||(e.min-=i*c),I(n.max)||I(e.userMax)||!d||!(0<e.dataMax)&&e.ignoreMaxPadding||(e.max+=i*d)),e.min===e.max||e.min===M||e.max===M?e.ticksRepeat=1:s&&!h&&u===e.linkedParent.options.tickPixelIntervalINTERNAL?e.ticksRepeat=e.linkedParent.ticksRepeat:e.ticksRepeat=H(h,g?1:(e.max-e.min)*u/(e.len||1)),o&&!t&&V(e.dataSeries,function(t){t.processData(e.min!==e.oldMin||e.max!==e.oldMax)}),e._arrange(t),e._preTicks&&e._preTicks(),!h&&e.ticksRepeat<p&&(e.ticksRepeat=p),r||a||(c=_.pow(10,y(_.log(e.ticksRepeat)/_.LN10)),h||(e.ticksRepeat=ne(e.ticksRepeat,null,c,n))),e.minorTicksRepeat="auto"===n.minorTicksRepeat&&e.ticksRepeat?e.ticksRepeat/5:n.minorTicksRepeat,e.tickPositions=i=n.tickPositions||l&&l.apply(e,[e.min,e.max]),i||(i=r?function(t,e,i,n){for(var a,r,o=[],s={},l=fe.allowUTCFormatting,e=new Date(e),d=t.unitRange,c=t.count,h=(d>=m.SECOND&&(e.setMilliseconds(0),e.setSeconds(d>=m[jt]?0:c*y(e.getSeconds()/c))),d>=m[jt]&&e[tt](d>=m[Zt]?0:c*y(e[Z]()/c)),d>=m[Zt]&&e[et](d>=m.DAY?0:c*y(e[K]()/c)),d>=m.DAY&&e[it](d>=m[qt]?1:c*y(e[q]()/c)),d>=m[qt]&&(e[nt](d>=m[Qt]?0:c*y(e[Q]()/c)),r=e[J]()),d>=m[Qt]&&e[at](r-=r%c),d===m[$t]&&e[it](e[q]()-e[$]()+H(n,1)),a=1,r=e[J](),e.getTime()),p=e[Q](),u=e[q](),g=l?0:(864e5+60*e.getTimezoneOffset()*1e3)%864e5;h<i;)o.push(h),d===m[Qt]?h=v(r+a*c,0):d===m[qt]?h=v(r,p+a*c):l||d!==m.DAY&&d!==m[$t]?(h+=d*c,d<=m[Zt]&&h%m.DAY==g&&(s[h]=Kt)):h=v(r,p,u+a*c*(d===m.DAY?1:7)),a++;return o.push(h),o.info=C(t,{higherRanks:s,totalRange:d*c}),o}(function(t,e){for(var i=e||[["MILLISECOND",[1,2,5,10,20,25,50,100,200,500]],["SECOND",[1,2,5,10,15,30]],[jt,[1,2,5,10,15,30]],[Zt,[1,2,3,4,6,8,12]],[Kt,[1,2]],[$t,[1,2]],[qt,[1,2,3,4,6]],[Qt,null]],n=i[i.length-1],a=m[n[0]],r=n[1],o=0;o<i.length;o++){n=i[o],a=m[n[0]],r=n[1];if(i[o+1])if(t<=(a*r[r.length-1]+m[i[o+1][0]])/2)break}return{unitRange:a,count:ne(t/a,r=a===m[Qt]&&t<5*a?[1,2,5]:r),unitName:n[0]}}(e.ticksRepeat,n.units),e.min,e.max,n.startOfWeekINTERNAL,(e.ordinalPositions,e.closestPointRange)):(a?Ce:Le).call(e,e.ticksRepeat,e.min,e.max),e.tickPositions=i),s||(d=i[0],g=i[i.length-1],u=e.minPointOffset||0,n.tickOnBeginning?e.min=d:e.min-u>d&&i.shift(),n.fixedEnd?e.max=g:e.max+u<g&&i.pop())},_updateTicks:function(){var t=this,e=t.xOrY,i=t.tickPositions,n=Y[t.chart.guid].maxTicks;if(n&&n[e]&&!t.isDatetimeAxis&&!t.categoricalValues&&!t.isLinked&&!1!==t.options.matchTicks){var a,r=t.tickAmount,o=i.length;if(t.tickAmount=a=n[e],o<a){for(;i.length<a;)i.push(ce(i[i.length-1]+t.ticksRepeat));t.transA*=(o-1)/(a-1),t.max=i[i.length-1]}I(r)&&a!==r&&(t.isDirty=!0)}},_scale:function(){var t,e,i,n,a=this,r=a.stacks;if(a.oldMin=a.min,a.oldMax=a.max,a.oldAxisLength=a.len,a._dimensions(),n=a.len!==a.oldAxisLength,V(a.dataSeries,function(t){(t.isDirtyData||t.isDirty||t.axisX.isDirty)&&(i=!0)}),(n||i||a.isLinked||a.userMin!==a.oldUserMin||a.userMax!==a.oldUserMax)&&(!function(){var k,S=this,A=S.chart,P=S.stacks,L=[],C=[];S.hasVisibleSeries=!1,S.dataMin=S.dataMax=null,V(S.dataSeries,function(t){if(t.visible||A.options.scaleAxesForHiddenSeries){var e,i,n,a,r,o,s,l,d,c,h=t.options,p=h.baseValue,u=[],g=0;if(S.hasVisibleSeries=!0,S.isLog&&p<=0&&(p=h.baseValue=null),S.isXAxis)(o=t.xData).length&&(S.dataMin=D(H(S.dataMin,o[0]),oe(o)),S.dataMax=R(H(S.dataMax,o[0]),se(o)));else{var f,m,x,y,v=t.cropped,b=Re.call(t.axisX),w=!!t.modifyValue,T=h.stackMode;for(S.usePercentage="percent"===T,T&&(a=h.stackIndex,r="-"+(n=t.seriesType+H(a,"")),t.stackKey=n,e=L[n]||[],L[n]=e,i=C[r]||[],C[r]=i),S.usePercentage&&(S.dataMin=0,S.dataMax=99),o=t.processedXData,c=(s=t.processedYData).length,k=0;k<c;k++)if(l=o[k],d=s[k],T&&(x=(f=d<p)?r:n,d=(m=f?i:e)[l]=I(m[l])?ce(m[l]+d):d,P[x]||(P[x]={}),P[x][l]||(P[x][l]=new Ae(S,S.options.stackTextSettings,f,l,a,T)),P[x][l]._total(d)),null!==d&&d!==M&&(w&&(d=t.modifyValue(d)),v||(o[k+1]||l)>=b.min&&(o[k-1]||l)<=b.max))if(y=d.length)for(;y--;)null!==d[y]&&(u[g++]=d[y]);else u[g++]=d;!S.usePercentage&&u.length&&(S.dataMin=D(H(S.dataMin,u[0]),oe(u)),S.dataMax=R(H(S.dataMax,u[0]),se(u))),I(p)&&(S.dataMin>=p?(S.dataMin=p,S.ignoreMinPadding=!0):S.dataMax<p&&(S.dataMax=p,S.ignoreMaxPadding=!0))}}})}.call(a),a._ticks(),a.oldUserMin=a.userMin,a.oldUserMax=a.userMax,a.isDirty||(a.isDirty=n||a.min!==a.oldMin||a.max!==a.oldMax)),!a.isXAxis)for(t in r)if(r.hasOwnProperty(t))for(e in r[t])r[t].hasOwnProperty(e)&&(r[t][e].cum=r[t][e].total);Me.call(a)},_zoom:function(t,e){return _e.call(this,t,e,!1,M,{trigger:"zoom"}),!0},_dimensions:function(){var t=this,e=Y[t.chart.guid],i=t.options,n=i.offsetLeft||0,a=i.offsetRight||0;t.left=H(i.left,e.plotLeft+n),t.top=H(i.top,e.plotTop),t.width=H(i.width,e.plotWidth-n+a),t.height=H(i.height,e.plotHeight),t.bottom=e.chartHeight-t.height-t.top,t.right=e.chartWidth-t.width-t.left,t.len=R(t.horiz?t.width:t.height,0)},_offset:function(){var t,e,i,n,a=this,r=Y[a.chart.guid],o=r.renderer,s=a.options,l=a.tickPositions,d=a.ticks,c=a.horiz,h=a.side,p=0,u=0,g=s.title,f=s.axisTickText,m=0,r=r.axisOffset,x=[-1,1,1,-1][h];if(a.hasData=t=a.hasVisibleSeries||I(a.min)&&I(a.max)&&!!l,a.showAxis=e=t||H(s.showEmpty,!0),a.axisGroup||(a.gridGroup=o.g().attr({zIndex:s.gridZIndex||1}).add(),a.axisGroup=o.g().attr({zIndex:s.zIndex||2}).add(),a.labelGroup=o.g().attr({zIndex:f.zIndex||7}).add()),t||a.isLinked)V(l,function(t){d[t]?d[t]._label():d[t]=new ke(a,t)}),V(l,function(t){0!==h&&2!==h&&{1:"left",3:"right"}[h]!==f.align||(m=R(d[t]._labelSize(),m))}),a.staggerLinesINTERNAL&&(m+=16*(a.staggerLinesINTERNAL-1));else for(n in d)d.hasOwnProperty(n)&&(d[n].destroy(),delete d[n]);g&&g.text&&(a.axisTitle||(a.axisTitle=o.text(g.text,0,0,g.htmlOutput).attr({zIndex:7,textAngle:g.textAngle||0,align:g.textAlignINTERNAL||{low:"left",middle:"center",high:"right"}[g.align]}).css(g.style).add(a.axisGroup),a.axisTitle.isNew=!0),e&&(p=a.axisTitle.getBBox()[c?"height":"width"],u=H(g.margin,c?5:10),i=g.offset),a.axisTitle[e?"show":"hide"]()),a.offset=x*H(s.offset,r[h]),a.axisTitleMargin=H(i,m+u+(2!==h&&m&&x*s.axisTickText[c?"y":"x"])),r[h]=R(r[h],a.axisTitleMargin+p+x*a.offset)},_path:function(t){var e=this,i=Y[e.chart.guid],n=e.swapLocation,a=e.offset,r=e.horiz,o=e.left+(n?e.width:0)+a,n=i.chartHeight-e.bottom-(n?e.height:0)+a;return this.lineTop=n,i.renderer.crispLine([W,r?e.left:o,r?n:e.top,E,r?i.chartWidth-e.right:o,r?n:i.chartHeight-e.bottom],t)},_titlePos:function(){var t=this.horiz,e=this.left,i=this.top,n=this.len,a=this.options.title,r=t?e:i,o=this.swapLocation,s=this.offset,l=A(a.style.fontSize||12),r={low:r+(t?0:n),middle:r+n/2,high:r+(t?n:0)}[a.align],n=(t?i+this.height:e)+(t?1:-1)*(o?-1:1)*this.axisTitleMargin+(2===this.side?l:0);return{x:t?r:n+(o?this.width:0)+s+(a.x||0),y:t?n-(o?this.height:0)+s:r+(a.y||0)}},render:function(){var i,n,a=this,t=a.chart,t=Y[t.guid],e=t.renderer,r=a.options,o=a.isLog,s=a.isLinked,l=a.tickPositions,d=a.axisTitle,c=a.stacks,h=a.ticks,p=a.minorTicks,u=a.alternateBands,g=r.stackTextSettings,f=r.colorStripe,m=a.tickmarkOffset,x=r.drawWidth,y=t.hasRendered&&I(a.oldMin)&&!isNaN(a.oldMin),v=a.hasData,b=a.showAxis;if((v||s)&&(a.minorTicksRepeat&&!a.categoricalValues&&V(function(){var t,e,i,n=this,a=n.tickPositions,r=n.minorTicksRepeat,o=[];if(n.isLog)for(i=a.length,e=1;e<i;e++)o=o.concat(Ce.call(n,r,a[e-1],a[e],!0));else for(t=n.min+(a[0]-n.min)%r;t<=n.max;t+=r)o.push(t);return o}.call(a),function(t){p[t]||(p[t]=new ke(a,t,"minor")),y&&p[t].isNew&&p[t].render(null,!0),p[t].isActive=!0,p[t].render()}),V(l.slice(1).concat([l[0]]),function(t,e){e=e===l.length-1?0:e+1,(!s||t>=a.min&&t<=a.max)&&(h[t]||(h[t]=new ke(a,t)),y&&h[t].isNew&&h[t].render(e,!0),h[t].isActive=!0,h[t].render(e))}),f&&V(l,function(t,e){e%2==0&&t<a.max&&(u[t]||(u[t]=new Se(a)),i=t+m,n=l[e+1]!==M?l[e+1]+m:a.max,u[t].options={from:o?ee(i):i,to:o?ee(n):n,color:f},u[t].render(),u[t].isActive=!0)}),a._addedPlotLB||(V((r.plotLines||[]).concat(r.plotBands||[]),function(t){!function(t){return t=new Se(this,t).render(),this.plotLinesAndBands.push(t),t}.call(a,t)}),a._addedPlotLB=!0)),V([h,p,u],function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].isActive?t[e].isActive=!1:(t[e].destroy(),delete t[e]))}),x&&(v=a._path(x),a.axisLine?a.axisLine.animate({d:v}):a.axisLine=e.path(v).attr({stroke:r.drawColor,"stroke-width":x,zIndex:7}).add(a.axisGroup),a.axisLine[b?"show":"hide"]()),d&&b&&(d[d.isNew?"attr":"animate"](a._titlePos()),d.isNew=!1),g&&g.enabled){var w,T,k,S=a.stackTotalGroup;for(w in S||(a.stackTotalGroup=S=e.g().attr({visibility:X,zIndex:6}).add()),S.translate(t.plotLeft,t.plotTop),c)if(c.hasOwnProperty(w))for(k in T=c[w])T.hasOwnProperty(k)&&T[k].render(S)}a.isDirty=!1},_title:function(t,e){var i=this,n=i.chart,a=i.options,r=i.axisTitle;a.title=z(a.title,t),i.axisTitle=r&&r.destroy(),H(e,i.isDirty=!0)&&n.redraw()},redraw:function(){var t=Y[this.chart.guid].tracker;t._reset&&t._reset(!0),this.render(),V(this.plotLinesAndBands,function(t){t.render()}),V(this.dataSeries,function(t){t.isDirty=!0})},_points:function(t,e){var i=this;i.categoricalValues=i.userOptions.categoricalValues=t,V(i.dataSeries,function(t){t.translate(),t.setTooltipPoints(!0)}),H(e,i.isDirty=!0)&&i.chart.redraw()},destroy:function(){if(!this._destroyed){var t,e,i,n=this,a=n.stacks;for(t in pe(n),a)a.hasOwnProperty(t)&&(le(a[t]),a[t]=null);for(e in V([n.ticks,n.minorTicks,n.alternateBands,n.plotLinesAndBands],function(t){le(t)}),n)n.hasOwnProperty(e)&&((i=n[e])instanceof be||Te&&i instanceof Te)&&(n[e]=i.destroy());n._destroyed=!0}}},Xe.prototype={destroy:function(){this._destroyed||(V(this.axisMarkers,function(t){t&&t.destroy()}),this._destroyed=!0)},move:function(t,e,i,n){this.labelElement.css({top:e,left:t})},hide:function(){var t,e=Y[this.chart.guid];this.isHidden||(t=e.hoverPoints,this.labelElement.hide(),t&&V(t,function(t){t.setState()}),e.hoverPoints=null,this.isHidden=!0)},getPosition:function(t,e,i){var n,e=Y[e.guid],a=e.plotLeft,r=e.plotTop,o=e.plotWidth,s=e.plotHeight,l=H(this.options.distance,12),t=Ne.call(this,t,i),i=t[0],t=t[1],d=this.labelElement.width(),c=this.labelElement.height(),e=i+a+(e.isInverted?l:-d-l),h=t-c+r+15;return a+o<(e=e<7?a+R(i,0)+l:e)+d&&(e-=e+d-(a+o),h=t-c+r-l,n=!0),h<r+5&&(h=r+5,n&&h<=t&&t<=h+c&&(h=t+r+l)),{x:e,y:h=r+s<h+c?R(r,r+s-c-l):h}},refresh:function(t,e){var i,n,a,r,o=this,s=o.chart,l=o.labelElement,d=o.options,c=function(t,e){var i,n,a,r=[],o="",s=(t=Et(t))[0].dataSeries.axisX,l="f";if(s&&"datetime"===s.options.axisType&&Nt(t[0].pointName)){for(i in m)if(m.hasOwnProperty(i)&&m[i]>=s.closestPointRange){l=s.options.axisDateFormat[i];break}o=f.format("{0:"+l+"}",new Date(t[0].pointName))}else n=t[0].dataSeries.tooltipSettings&&t[0].dataSeries.tooltipSettings.customHeaderText||this.options.customHeaderText,o=Rt(n)?f.format(n,{point:t[0],chart:e}):n.call(null,t,e);return r+='<div class="shield-tooltip-header">'+o+"</div>",a=t[0].dataSeries.tooltipSettings&&t[0].dataSeries.tooltipSettings.customPointText||this.options.customPointText,"rangebar"===t[0].dataSeries.seriesType&&"<span>{point.dataSeries.collectionAlias}</span>: {point.y}"!=this.options.customPointText&&(a=this.options.customPointText),V(t,function(t){t.dataSeries,r+='<div class="shield-tooltip-value">'+(Rt(a)?f.format(a,{point:t,chart:e}):a.call(null,t,e))+"</div>"}),r},h=Y[s.guid],p=h.hoverPoints,u=d.axisMarkers,g=o.chartBound;d.format&&(c=Rt(d.format)?function(t,e){return f.format(d.format,{point:t,chart:e})}:d.format),i=(n=Ne.call(o,t,e))[0],n=n[1],!g||t.dataSeries&&t.dataSeries.noSharedTooltip?t.dataSeries.color:(h.hoverPoints=t,p&&V(p,function(t){t.setState()}),V(t,function(t){t.setState(Vt)})),p=c.call(o,t,s),c=(t=It(t)?t[0]:t).dataSeries,g=g||!c.isCartesian||c.tooltipOutsidePlot||He(s,i,n),!1!==p&&g?(o.isHidden&&l.show(),l.html(p),c=(d.position||o.getPosition).call(o,t,s,e),o.move(L(c.x),L(c.y),i+h.plotLeft,n+h.plotTop),o.isHidden=!1):this.hide(),u&&u.enabled&&(g=/x/i.test(u.mode),l=/y/i.test(u.mode),p={"stroke-width":A(u.width),stroke:u.color,zIndex:A(u.zIndex)},g&&(r=t.dataSeries.axisX)&&(a=r._linePath(t.x,1),o.axisMarkers[0]?o.axisMarkers[0].attr({d:a,visibility:X}):o.axisMarkers[0]=h.renderer.path(a).attr(p).add()),l&&(r=t.dataSeries.axisY)&&(a=r._linePath(H(t.stackY,t.y),1),o.axisMarkers[1]?o.axisMarkers[1].attr({d:a,visibility:X}):o.axisMarkers[1]=h.renderer.path(a).attr(p).add()))}},Oe.prototype={_normalize:function(t){var e,i,n;return(t=t||k.event).target||(t.target=t.srcElement),i=t.touches?t.touches.item(0):t,this.chartPosition=(n=Y[this.chart.guid].container,n=p(n).offset()),i=i.pageX===M?(e=t.x,t.y):(e=i.pageX-n.left,i.pageY-n.top),C(t,{chartX:L(e),chartY:L(i)})},_coord:function(n){var a={axisX:[],axisY:[]},r=Y[this.chart.guid];return V(r.axes,function(t){var e=t.isXAxis,i=r.isInverted?!e:e;a[e?"axisX":"axisY"].push({axis:t,value:t.translate((i?n.chartX-r.plotLeft:t.top+t.len-n.chartY)-t.minPixelPadding,!0)})}),a},_index:function(t){var e=Y[this.chart.guid];return e.isInverted?e.plotHeight+e.plotTop-t.chartY:t.chartX-e.plotLeft},_move:function(t){var e,i,n,a,r=this,o=r.chart,o=Y[o.guid],s=o.dataSeries,l=o.tooltip,d=o.hoverPoint,c=o.hoverSeries,h=o.chartWidth,p=r._index(t);if(l&&r.options.tooltipSettings.chartBound&&(!c||!c.noSharedTooltip)){for(i=[],n=s.length,a=0;a<n;a++)s[a].visible&&!1!==s[a].options.mouseInteractions&&!s[a].noSharedTooltip&&s[a].tooltipPoints.length&&((e=s[a].tooltipPoints[p])._dist=ot(p-e[s[a].axisX.tooltipPosName||"plotX"]),h=D(h,e._dist),i.push(e));for(n=i.length;n--;)i[n]._dist>h&&i.splice(n,1);i.length&&i[0].plotX!==r.hoverX&&(l.refresh(i,t),r.hoverX=i[0].plotX)}o.cachedHoverSeries&&o.cachedHoverSeries.tracker&&(e=o.cachedHoverSeries.tooltipPoints[p])&&e!==d&&e._mouseOver(t)},_reset:function(t){var e=this.chart,e=Y[e.guid],i=e.hoverSeries,n=e.hoverPoint,a=e.tooltip,e=a&&a.chartBound?e.hoverPoints:n;(t=(t=t&&a&&e)&&Et(e)[0].plotX===M?!1:t)?a.refresh(e):(n&&n._mouseOut(),i&&i._mouseOut(),a&&(a.hide(),function(){V(this.axisMarkers,function(t){t&&t.hide()})}.call(a)),this.hoverX=null)},_events:function(){var a,r=this,o=r.chart,p=Y[o.guid],e=p.container;function i(){o&&(B(e,{cursor:"auto"}),p.cancelClick=a,p.mouseIsDown=a=!1),p.container.style.cursor="default",pe(S,Lt?"touchend":"mouseup",i)}r.hideTooltipOnMouseMove=function(t){r.chartPosition&&p.hoverSeries&&p.hoverSeries.isCartesian&&!He(o,t.pageX-r.chartPosition.left-p.plotLeft,t.pageY-r.chartPosition.top-p.plotTop)&&r._reset()},r.hideTooltipOnMouseLeave=function(t){r.chartPosition&&!He(o,t.pageX-r.chartPosition.left-p.plotLeft,t.pageY-r.chartPosition.top-p.plotTop)&&(r._reset(),r.chartPosition=null)},e.onmousedown=function(t){t=r._normalize(t),!Lt&&t.preventDefault&&t.preventDefault(),p.mouseIsDown=!0,p.cancelClick=!1,p.mouseDownX=r.mouseDownX=t.chartX,r.mouseDownY=t.chartY,p.isZoomed&&(p.container.style.cursor="move"),G(S,Lt?"touchend":"mouseup",i)};function n(t){var e,i,n;if(!(t&&t.touches&&1<t.touches.length))return t=r._normalize(t),Lt||(t.returnValue=!1),e=t.chartX,i=t.chartY,n=!He(o,e-p.plotLeft,i-p.plotTop),Lt&&t.type===ut&&(P(t.target,"isTracker")?p.runTrackerClick||t.preventDefault():o.events.click||n||t.preventDefault()),n&&(e<p.plotLeft?e=p.plotLeft:e>p.plotLeft+p.plotWidth&&(e=p.plotLeft+p.plotWidth),i<p.plotTop?i=p.plotTop:i>p.plotTop+p.plotHeight&&(i=p.plotTop+p.plotHeight)),p.mouseIsDown&&t.type!==ut&&10<(a=_.sqrt(_.pow(r.mouseDownX-e,2)+_.pow(r.mouseDownY-i,2)))&&(He(o,r.mouseDownX-p.plotLeft,r.mouseDownY-p.plotTop),p.isZoomed&&(o._viewport(r.mouseDownX-e,i-r.mouseDownY),r.mouseDownX=e,r.mouseDownY=i)),n||r._move(t),n||!p.hasCartesianSeries}e.onmousemove=n,G(e,pt,r.hideTooltipOnMouseLeave),G(S,ht,r.hideTooltipOnMouseMove),e.ontouchstart=function(t){(r.zoomX||r.zoomY)&&e.onmousedown(t),n(t)},e.ontouchmove=n,e.ontouchend=function(){a&&r._reset()},e.onclick=function(t){var e,i,n=p.hoverPoint;(t=r._normalize(t)).cancelBubble=!0,p.cancelClick||(n&&(P(t.target,"isTracker")||P(t.target.parentNode,"isTracker"))?(e=n.plotX,i=n.plotY,C(n,{pageX:r.chartPosition.left+p.plotLeft+(p.isInverted?p.plotWidth-i:e),pageY:r.chartPosition.top+p.plotTop+(p.isInverted?p.plotHeight-e:i)}),n.trigger("seriesClick",t)):(C(t,r._coord(t)),He(o,t.chartX-p.plotLeft,t.chartY-p.plotTop)&&o.trigger(ft,t)))},G(e,"mousewheel",function(s,l,t,e){s=r._normalize(s),C(s,r._coord(s)),l=0<l?1:-1;var d,i,c={axisX:[],axisY:[]},h=0;if(V(p.axes,function(t){var e,i,n,a,r,o=t.isXAxis;p.tracker[o?"zoomX":"zoomY"]&&(n=p.isInverted?!o:o,i=t.dataMax/5,0<l?(r=(n=t.translate((n?s.chartX-p.plotLeft:t.top+t.len-s.chartY)-t.minPixelPadding,!0))-(a=t.max-t.min-i)/2<t.dataMin?(e=t.dataMin,t.dataMin+a):n+a/2>t.dataMax?(e=t.dataMax-a,t.dataMax):(e=n-a/2,n+a/2),e<t.dataMin&&(e=t.dataMin,r=t.dataMin+a)):(e=R(t.dataMin,t.min-i/2),r=D(t.dataMax,t.max+i/2),e<=t.dataMin&&r>=t.dataMax&&h++),r<e?c[o?"axisX":"axisY"].push({axis:t,min:e,max:r}):isNaN(e)||isNaN(r)||(c[o?"axisX":"axisY"].push({axis:t,min:D(e,r),max:R(e,r)}),d=!0))}),d)return(i={axisX:[],axisY:[]}).axisX=c.axisX,i.axisY=c.axisY,c.axisX[0]&&c.axisX[0].min>=c.axisX[0].max&&(i.axisX=[],c.axisX[0].min=D(c.axisX[0].min,c.axisX[0].max),c.axisX[0].max=R(c.axisX[0].min,c.axisX[0].max)),c.axisY[0]&&c.axisY[0].min>=c.axisY[0].max&&(i.axisY=[],c.axisY[0].min=D(c.axisY[0].min,c.axisY[0].max),c.axisY[0].max=R(c.axisY[0].min,c.axisY[0].max)),ue(o,"zoom",c,function(t){o._zoom(i)}),h==p.axes.length?p.isZoomed=!1:p.isZoomed=!0,s.stopPropagation(),s.returnValue=!1})},destroy:function(){var t,e;this._destroyed||(t=this.chart,e=(t=Y[t.guid]).container,t.trackerGroup&&(t.trackerGroup=t.trackerGroup.destroy()),pe(e,pt,this.hideTooltipOnMouseLeave),pe(S,ht,this.hideTooltipOnMouseMove),e.onclick=e.onmousedown=e.onmousemove=e.ontouchstart=e.ontouchend=e.ontouchmove=null,this._destroyed=!0)},init:function(t,e){var i=Y[t.guid];i.trackerGroup||(i.trackerGroup=i.renderer.g().attr({zIndex:9}).add()),e.enabled&&(i.tooltip=new Xe(t,e)),this._events()}},Ye.prototype={init:function(t){var e,i,n,a=this,r=a.options=t.options.chartLegend;r.enabled&&(e=r.legendItemSettings.elementStyle,i=H(r.padding,8),n=r.legendItemSettings.topSpacing||0,a.baseline=A(e.fontSize)+3+n,a.elementStyle=e,a.disabledStyle=z(e,r.legendItemSettings.disabledStyle),a.topSpacing=n,a.padding=i,a.initialItemX=i,a.initialItemY=i-5,a.maxelementWidth=0,a.chart=t,a.itemHeight=0,a.lastLineHeight=0,a.render())},destroy:function(){var t,e,i;this._destroyed||(e=(t=this).group,(i=t.box)&&(t.box=i.destroy()),e&&(t.group=e.destroy()),t._destroyed=!0)},render:function(){var i,t,e,n,a=this,r=a.chart,r=Y[r.guid],o=r.renderer,s=a.group,l=a.box,d=a.options,c=a.padding,h=d.borderWidth,p=d.backgroundColor;a.itemX=a.initialItemX,a.itemY=a.initialItemY,a.offsetWidth=0,a.lastItemY=0,s||(a.group=s=o.g().attr({zIndex:7}).add(),a.contentGroup=o.g().attr({zIndex:1}).add(s),a.scrollGroup=o.g().add(a.contentGroup),a.clipRect=o.clipRect(0,0,9999,r.chartHeight),a.contentGroup.clip(a.clipRect)),i=[],V(r.dataSeries,function(t){var e=t.options;e.addToLegend&&(i=i.concat(t.legendItems||(e.legendType===mt?t.data:t)))}),re(i,function(t,e){return(t.options&&t.options.orderIndex||0)-(e.options&&e.options.orderIndex||0)}),d.inverseOrder&&i.reverse(),a.allItems=i,a.display=t=!!i.length,V(i,function(t){!function(e){var i,t=this,n=t.chart,a=Y[n.guid],r=a.renderer,o=t.options,s=o.legendItemSettings,l=o.checkMarkSettings,d=l.mouseOverColor,c="horizontal"===o.renderDirection,h=o.symbolWidthINTERNAL,p=o.legendMarkerDistance,u=t.elementStyle,g=t.disabledStyle,f=t.padding,m=!o.rtlLayout,x=o.width,y=s.bottomSpacing||0,v=t.topSpacing,b=t.initialItemX,w=e.legendItem,T=e.dataSeries||e;T.options,w||(e.legendGroup=r.g().attr({zIndex:1}).add(t.scrollGroup),T.drawLegendSymbol(t,e),e.legendItem=w=r.text(e.collectionAlias,m?h+p:-p,t.baseline,o.htmlOutput).css(z(e.visible?u:g)).attr({align:m?"left":"right",zIndex:2}).add(e.legendGroup),i=e.checkMark,e.legendGroup.on(dt,function(t){n.trigger("legendSeriesMouseOver",{item:e}).isDefaultPrevented()||(s.proxyHoverEvents&&e._mouseOver(t),e.setState(Vt),w.css(s.mouseOverStyle),i&&d&&i.attr({stroke:d}))}).on(ct,function(t){n.trigger("legendSeriesMouseOut",{item:e}).isDefaultPrevented()||(s.proxyHoverEvents&&e._mouseOut(t),w.css(e.visible?u:g),i&&i.attr({stroke:l.color}),e.setState())}).on(ft,function(t){n.trigger("legendSeriesClick",{item:e}).isDefaultPrevented()||e.toggle()}),Ee.call(t,e,e.visible)),T=w.getBBox(),r=e.legendelementWidth=s.elementWidth||h+p+T.width+f,t.itemHeight=o=T.height,c&&t.itemX-b+r>(x||a.chartWidth-2*f-b)&&(t.itemX=b,t.itemY+=v+t.lastLineHeight+y,t.lastLineHeight=0),t.maxelementWidth=R(t.maxelementWidth,r),t.lastItemY=v+t.itemY+y,t.lastLineHeight=R(o,t.lastLineHeight),e._legendItemPos=[t.itemX,t.itemY],c?t.itemX+=r:(t.itemY+=v+o+y,t.lastLineHeight=o),t.offsetWidth=x||R(c?t.itemX-b:r,t.offsetWidth)}.call(a,t)}),e=d.width||a.offsetWidth,n=a.lastItemY+a.lastLineHeight,n=function(t){var e=this.chart,i=((e=Y[e.guid]).renderer,this.options),n=i.y,a="top"===i.verticalAlign,e=e.spacingBox.height+(a?-n:n)-this.padding,a=this.clipRect;return"horizontal"===i.renderDirection&&(e/=2),e<t&&(this.clipHeight=e,a.attr({height:n=e}),t=e),t}.call(a,n),(h||p)&&(e+=c,n+=c,l?0<e&&0<n&&(l[l.isNew?"attr":"animate"](l.crisp(null,null,null,e,n)),l.isNew=!1):(a.box=l=o.rect(0,0,e,n,d.borderRadius,h||0).attr({stroke:d.borderColor,"stroke-width":h||0,fill:p||Bt}).add(s).shadow(d.shadow),l.isNew=!0),l[t?"show":"hide"]()),a.legendWidth=e,a.legendHeight=n,V(i,function(t){!function(t){var e=(i=this.options).legendMarkerDistance,i=!i.rtlLayout,n=(a=t._legendItemPos)[0],a=a[1];t.legendGroup&&t.legendGroup.translate(i?n:this.legendWidth-n-2*e-4,a)}.call(a,t)}),t&&s.align(C({width:e,height:n},d),!0,r.spacingBox)}};var Be,Fe=u.extend({init:function(t,e){var i=this,n=i.guid=f.guid(),n=Y[n]={},a=e.dataSeries,a=(e.dataSeries=null,u.fn.init.apply(i,arguments),i.options.dataSeries=i.initialOptions.dataSeries=a,n.cachedHoverSeries=null,i.options),r=a.margin,r=It(r)?r:[r,r,r,r];n.optionsMarginTop=H(a.chartMarginTop,r[0]),n.optionsMarginRight=H(a.chartMarginRight,r[1]),n.optionsMarginBottom=H(a.chartMarginBottom,r[2]),n.optionsMarginLeft=H(a.chartMarginLeft,r[3]),n.isResizing=0,n.axes=[],n.dataSeries=[],n.hasCartesianSeries=!1,n.axisX=[],n.axisY=[],n.applyAnimation=!Pt&&H(a.applyAnimation,!0),n.pointCount=0,n.counters=new ae,U._initRender.call(i)},_series:function(t){var e,i=this.options,i=t.seriesType||i.seriesType;if(s[i])return(e=new s[i]).init(this,t),e;_t(f.format("Invalid series type '{0}'",i),1)},redraw:function(t){var e,i,n=this,a=Y[n.guid],r=a.axes,o=a.dataSeries,s=a.tracker,l=a.chartLegend,d=a.isDirtyLegend,c=a.isDirtyBox,h=o.length,p=h,u=a.renderer,g=u.isHidden();for(he(t,n),g&&U._shiftRendering.call(n);p--;)if((i=o[p]).isDirty&&i.options.stackMode){e=!0;break}if(e)for(p=h;p--;)(i=o[p]).options.stackMode&&(i.isDirty=!0);V(o,function(t){t.isDirty&&t.options.legendType===mt&&(d=!0)}),d&&l.options.enabled&&(l.render(),a.isDirtyLegend=!1),a.hasCartesianSeries&&(a.isResizing||(a.maxTicks=null,V(r,function(t){t._scale()})),U._updateTicks.call(n),n._spacing(),V(r,function(t){t.isDirtyExtremes&&(t.isDirtyExtremes=!1),(t.isDirty||c||e)&&(t.redraw(),c=!0)})),c&&U._renderBox.call(n),V(o,function(t){t.isDirty&&t.visible&&(!t.isCartesian||t.axisX)&&t.redraw()}),s&&s._reset&&s._reset(!0),u.draw(),g&&U._shiftRendering.call(n,!0),V([],function(t){t.call()})},_axes:function(){var e=this,t=this.options,i=t.axisX||{},t=t.axisY||{},i=Et(i);V(i,function(t,e){t.index=e,t.isX=!0}),t=Et(t),V(t,function(t,e){t.index=e}),i=i.concat(t),V(i,function(t){new Ie(e,t)}),U._updateTicks.call(e)},_zoom:function(t){var i,n=Y[this.guid];t&&!t.resetSelection&&(V(t.axisX.concat(t.axisY),function(t){var e=t.axis;n.tracker[e.isXAxis?"zoomX":"zoomY"]&&(i=e._zoom(t.min,t.max))}),i&&this.redraw(H(this.options.applyAnimation,n.pointCount<100)))},_viewport:function(n,a){var r=Y[this.guid],o=!1;V(r.axes,function(t){var e,i=t.isXAxis,i=r.isInverted?!i:i,i=function(t,e,i,n,a,r){var o=this;return 0<t?o.translate(o.dataMin+t,e,i,n,a,r)-o.translate(o.dataMin,e,i,n,a,r):t<0?o.translate(o.dataMax+t,e,i,n,a,r)-o.translate(o.dataMax,e,i,n,a,r):0}.call(t,i?n:a,!0);0!==i&&(e=t.min+i,i=t.max+i,e>t.dataMin&&i<t.dataMax&&(_e.call(t,e,i,!1),o=!0))}),o&&this.redraw(!1)},_size:function(){var t=Y[this.guid],e=this.options,i=t.renderToClone||this.element;t.containerWidth=i.width(),t.containerHeight=i.height(),t.chartWidth=e.width||t.containerWidth||600,t.chartHeight=e.height||(19<t.containerHeight?t.containerHeight:400)},_wrapper:function(){var t,e,i=this,n=Y[i.guid],a=i.options,r=i.element,o=f.strid();r.empty(),r.width()||U._shiftRendering.call(i),i._size(),t=n.chartWidth,e=n.chartHeight,n.container=o=p("<div />").attr("id",o).addClass(Wt+"container"+(a.className?" "+a.className:"")).css(C({position:Ht,overflow:O,width:t+T,height:e+T,textAlignINTERNAL:"left",lineHeight:"normal",zIndex:0},a.style)).appendTo(n.renderToClone||r)[0],n.renderer=a.forExport?new we(o,t,e,!0):new l(o,t,e),Pt&&n.renderer.create(i,o,t,e)},_spacing:function(){var t,e=this,i=Y[e.guid],n=e.options,a=n.chartAreaPaddingTop,r=n.chartAreaPaddingRight,o=n.chartAreaPaddingBottom,n=n.chartAreaPaddingLeft,s=i.chartLegend,l=i.optionsMarginTop,d=i.optionsMarginLeft,c=i.optionsMarginRight,h=i.optionsMarginBottom,p=i.chartTitleOptions,u=i.chartSubtitleOptions,g=e.options.chartLegend,f=H(g.chartDistance,10),m=g.x,x=g.y,y=g.align,v=g.verticalAlign;U._marginValues.call(e),t=i.axisOffset,!i.title&&!i.subtitle||I(i.optionsMarginTop)||(p=R(i.title&&!p.ignoreChartLayout&&!p.verticalAlign&&p.y||0,i.subtitle&&!u.ignoreChartLayout&&!u.verticalAlign&&u.y||0))&&(i.plotTop=R(i.plotTop,p+15+a)),s.display&&!g.ignoreChartLayout&&("right"===y?I(c)||(i.chartMarginRight=R(i.chartMarginRight,s.legendWidth-m+f+r)):"left"===y?I(d)||(i.plotLeft=R(i.plotLeft,s.legendWidth+m+f+n)):"top"===v?I(l)||(i.plotTop=R(i.plotTop,s.legendHeight+x+f+a)):"bottom"!==v||I(h)||(i.chartMarginBottom=R(i.chartMarginBottom,s.legendHeight-x+f+o))),i.extraBottomMargin&&(i.chartMarginBottom+=i.extraBottomMargin),i.extraTopMargin&&(i.plotTop+=i.extraTopMargin),i.hasCartesianSeries&&V(i.axes,function(t){t._offset()}),I(d)||(i.plotLeft+=t[3]),I(l)||(i.plotTop+=t[0]),I(h)||(i.chartMarginBottom+=t[2]),I(c)||(i.chartMarginRight+=t[1]),U._saveSize.call(e)},_layout:function(){var e,i,n,a=Y[this.guid],r=this.options,o=this.options.dataSeries;V(["isInverted","angular","enablePolarLayout"],function(t){for(e=s[r.seriesType],n=a[t]||r[t]||e&&e.prototype[t],i=o&&o.length;!n&&i--;)(e=s[o[i].seriesType])&&e.prototype[t]&&(n=!0);a[t]=n})},_render:function(){var t,e=this,a=Y[e.guid],i=a.axes,r=a.renderer,o=e.options.axisTickText,n={text:"Demo Version",isr:0};if(U.setTitle.call(e),a.chartLegend=new Ye(e),V(i,function(t){t._scale()}),e._spacing(),V(i,function(t){if(t.radial)return e._spacing(),!1}),a.maxTicks=null,V(i,function(t){t._ticks(!0),Me.call(t)}),n.style={cursor:zt,color:"#999999",fontSize:"16px"},U._updateTicks.call(e),e._spacing(),U._renderBox.call(e),a.hasCartesianSeries&&V(i,function(t){t.render()}),n.dest="http://www.shieldui.com",a.seriesGroup||(a.seriesGroup=r.g().attr({zIndex:3}).add()),V(a.dataSeries,function(t){t.translate(),t.setTooltipPoints(),t.render()}),o&&o.items&&V(o.items,function(t){var e=C(o.style,t.style),i=A(e.left)+a.plotLeft,n=A(e.top)+a.plotTop+12;delete e.left,delete e.top,r.text(t.html,i,n).attr({zIndex:2}).css(e).add()}),n&&!a.dsisf){function s(t){return p("<div/>").html(t).text()}var l,d,c,h,i=f.guid();for(St&&(i=r.createElement("filter").attr({id:i,height:"120%"}),r.createElement("feGaussianBlur").attr({in:"SourceAlpha",stdDeviation:3}).add(i),h=r.createElement("feComponentTransfer"),r.createElement("feFuncA").attr({type:"linear",slope:"0.2"}).add(h),h.add(i),h=r.createElement("feMerge"),r.createElement("feMergeNode").add(h),r.createElement("feMergeNode").attr({in:"SourceGraphic"}).add(h),h.add(i),i.add(r.defs)),t=s(n.dest),!n.isr&&a.chartWidth<=400&&(n.text=s("Demo")),n.text=s(n.text),l=[{align:"left",verticalAlign:"top",x:a.plotLeft+5,y:a.plotTop+20},{align:"right",verticalAlign:"top",x:-1*(a.chartWidth-(a.plotLeft+a.plotWidth)+5),y:a.plotTop+20},{align:"left",verticalAlign:"top",x:a.plotLeft+5,y:a.plotTop+a.plotHeight-5},{align:"right",verticalAlign:"top",x:-1*(a.chartWidth-(a.plotLeft+a.plotWidth)+5)+(n.isr?5:0),y:a.plotTop+a.plotHeight-5}],c=function(){t&&(location.href=t)},d=0;d<l.length;d++)n.isr&&3!=d||(n.isr&&a.chartWidth<=400&&(n.style.fontSize="13px"),r.text(n.text,0,0).on(ft,c).attr({align:l[d].align,zIndex:8,filter:void 0}).css(n.style).add().align(l[d]));a.dsisf=!0}a.hasRendered=!0},destroy:function(){var t,e,i,n=Y[this.guid],a=n.axes,r=n.dataSeries,o=n.container,s=o&&o.parentNode;for(ue(this,"destroy"),pe(this),t=a.length;t--;)a[t]=a[t].destroy();for(t=r.length;t--;)r[t]=r[t].destroy();for(e in n)n.hasOwnProperty(e)&&(i=n[e])&&typeof i.destroy==lt&&i.destroy();for(t in o&&(o.innerHTML="",pe(o),s&&de(o)),n)n.hasOwnProperty(t)&&delete n[t];delete Y[this.guid]}}),U={_updateTicks:function(){var t=Y[this.guid];!1!==this.options.matchTicks&&V(t.axes,function(t){t._updateTicks()}),t.maxTicks=null},_shiftRendering:function(t){var e=Y[this.guid],i=this.element,n=e.renderToClone;e.container;t?n&&(n.remove(),delete e.renderToClone):e.renderToClone=i.clone().css({position:Ft,top:"-9999px",display:"block"}).appendTo(S.body)},_renderBox:function(){var t=Y[this.guid],e=this.options,i=t.renderer,n=t.chartWidth,a=t.chartHeight,r=t.chartBackground,o=t.plotBackground,s=t.plotBorder,l=t.plotBGImage,d=e.borderWidth||0,c=e.backgroundColor,h=e.chartAreaBackgroundColor,p=e.chartAreaBackgroundImage,u=e.chartAreaBorderWidth||0,g=t.plotLeft,f=t.plotTop,m=t.plotWidth,x=t.plotHeight,y=t.chartAreaBox,v=t.clipRect,b=t.clipBox,w=d+(e.shadow?8:0);(d||c)&&(r?r.animate(r.crisp(null,null,null,n-w,a-w)):(r={fill:c||Bt},d&&(r.stroke=e.borderColor,r["stroke-width"]=d),t.chartBackground=i.rect(w/2,w/2,n-w,a-w,e.borderRadius,d).attr(r).add().shadow(e.shadow))),h&&(o?o.animate(y):t.plotBackground=i.rect(g,f,m,x,0).attr({fill:h}).add().shadow(e.chartAreaShadow)),p&&(l?l.animate(y):t.plotBGImage=i.image(p,g,f,m,x).add()),v?v.animate({width:b.width,height:b.height}):t.clipRect=i.clipRect(b),u&&(s?s.animate(s.crisp(null,g,f,m,x)):t.plotBorder=i.rect(g,f,m,x,0,u).attr({stroke:e.chartAreaBorderColor,"stroke-width":u,zIndex:1}).add()),t.isDirtyBox=!1},_initRender:function(){var n,a=this,r=Y[a.guid],o=a.options,t=r.callback,s=a.element,e="onreadystatechange",i="complete";(!St&&k==k.top&&S.readyState!==i||Pt&&!k.canvg)&&!Pt?S.attachEvent(e,a._onDocReady=function(){S.readyState===i&&(S.detachEvent(e,a._onDocReady),U._initRender.call(a),a._onDocReady=null)}):(a._wrapper(),s.addClass("shield-chart"),ue(a,"init"),U._marginValues.call(a),U._saveSize.call(a),a._layout(),a._axes(),V(o.dataSeries||[],function(t){a._series(t)}),r.tracker=new Oe(a,o),a._render(),r.renderer.draw(),t&&t.apply(a,[a]),V(ze,function(t){t.apply(a,[a])}),U._shiftRendering.call(a,!0),!1!==o.enableAutoFit&&(a._eafFunc=function(t){var e=o.width||s.width(),i=o.height||s.height(),t=t?t.target:k;e&&i&&(t===k||t===S)&&(e===r.containerWidth&&i===r.containerHeight||(clearTimeout(n),r.reflowTimeout=n=setTimeout(function(){r.container&&U._resize.call(a,e,i,!1)},100)),r.containerWidth=e,r.containerHeight=i)},G(k,gt,a._eafFunc),G(a,"destroy",function(){pe(k,gt,a._eafFunc),a._eafFunc=null})),a.trigger("load"))},_selected:function(){var e=[];return V(Y[this.guid].dataSeries,function(t){e=e.concat(me(t.points,function(t){return t.selected}))}),e},_marginValues:function(){var t=Y[this.guid],e=this.options,i=e.chartAreaPaddingTop,n=e.chartAreaPaddingRight,a=e.chartAreaPaddingBottom,e=e.chartAreaPaddingLeft;t.plotTop=H(t.optionsMarginTop,i),t.chartMarginRight=H(t.optionsMarginRight,n),t.chartMarginBottom=H(t.optionsMarginBottom,a),t.plotLeft=H(t.optionsMarginLeft,e),t.axisOffset=[0,0,0,0]},_resize:function(t,e,i){var n,a,r,o=this,s=Y[o.guid],l=s.title,d=s.subtitle;s.isResizing+=1,r=function(){o&&ue(o,"endResize",null,function(){--s.isResizing})},he(i,o),s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,I(t)&&(s.chartWidth=n=L(t)),I(e)&&(s.chartHeight=a=L(e)),B(s.container,{width:n+T,height:a+T}),s.renderer.setSize(n,a,i),s.plotWidth=n-s.plotLeft-s.chartMarginRight,s.plotHeight=a-s.plotTop-s.chartMarginBottom,s.maxTicks=null,V(s.axes,function(t){t.isDirty=!0,t._scale()}),V(s.dataSeries,function(t){t.isDirty=!0}),s.isDirtyLegend=!0,s.isDirtyBox=!0,o._spacing(),t=s.spacingBox,l&&l.align(null,null,t),d&&d.align(null,null,t),o.redraw(i),s.oldChartHeight=null,ue(o,gt),!1===c?r():setTimeout(r,c&&c.duration||500)},_saveSize:function(){var t,e,i,n,a=Y[this.guid],r=a.isInverted,o=a.chartWidth,s=a.chartHeight,l=this.options,d=l.chartAreaPaddingTop,c=l.chartAreaPaddingRight,h=l.chartAreaPaddingBottom,p=l.chartAreaPaddingLeft;a.plotLeft=t=L(a.plotLeft),a.plotTop=e=L(a.plotTop),a.plotWidth=i=L(o-t-a.chartMarginRight),a.plotHeight=n=L(s-e-a.chartMarginBottom),a.plotSizeX=r?n:i,a.plotSizeY=r?i:n,a.chartAreaBorderWidth=r=l.chartAreaBorderWidth||0,a.spacingBox={x:p,y:d,width:o-p-c,height:s-d-h},a.chartAreaBox={x:t,y:e,width:i,height:n},a.clipBox={x:r/2,y:r/2,width:a.plotSizeX-r,height:a.plotSizeY-r},V(a.axes,function(t){t._dimensions(),t._arrange()})},setTitle:function(t,e){var i,a=Y[this.guid],n=this.options;a.chartTitleOptions=i=z(n.primaryHeader,t),a.chartSubtitleOptions=n=z(n.secondaryHeader,e),V([["title",t,i],["subtitle",e,n]],function(t){var e=t[0],i=a[e],n=t[1],t=t[2];i&&n&&(a[e]=i=i.destroy()),t&&t.text&&!i&&(a[e]=a.renderer.text(t.text,0,0,t.htmlOutput).attr({align:t.align,zIndex:t.zIndex||4}).css(t.style).add().align(t,!1,a.spacingBox))})}},ze=[];function Ge(t){return{id:t.id,name:t.pointName,x:t.x,y:t.y}}function Ve(t){return{type:t.xOrY,values:t.categoricalValues,min:t.min,max:t.max}}function Ue(t){if(Dt(t)||It(t)){var e,i,n=Dt(t)?{}:[];for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&((i=t[e])&&i instanceof Ze?n[e]=Ge(i):i&&(i instanceof j||"dataSeries"===e)?n[e]={seriesType:(a=i).seriesType,collectionAlias:a.collectionAlias,color:a.color,axisX:a.axisX?Ve(a.axisX):null,axisY:a.axisY?Ve(a.axisY):null,id:a.options.id,points:xe(a.points,Ge)}:i&&i instanceof Ie?n[e]=Ve(i):i&&f.is.event(i)?n[e]=p.Event(i):i&&(i instanceof p.Event||"domEvent"===e)?n[e]=i:n[e]="target"==e||"srcElement"==e?i:Ue(i));return n}return t;var a}function je(){for(var t,e=["graphic","tracker","dataLabel","group","connector","shadowGroup"],i=6;i--;)this[t=e[i]]&&(this[t]=this[t].destroy())}Fe.defaults=fe,Fe.themes={default:{}},f.ui.plugin("Chart",Fe),Be=Fe.prototype.trigger,Fe.prototype.trigger=function(t,e,i){var n=Ue(e),t=Be.call(this,t,n);return typeof i!=lt||t.isDefaultPrevented()||i.call(this,e),t};var Ze=function(){},j=(Ze.prototype={init:function(t,e,i){var n=this,a=t.chart,r=Y[a.guid],o=r.counters;return n.dataSeries=t,n.setOptions(e,i),n.pointAttr={},t.options.separateColors&&(e=a.options.seriesPalette,n.color=n.color||e[o.color++],o.wrapColor(e.length)),r.pointCount++,n},setOptions:function(t,e){var i=this,n=i.dataSeries,a=typeof t;i.config=t,"number"==a||null===t?i.y=t:"number"==typeof t[0]?(i.x=t[0],i.y=t[1]):"object"==a&&"number"!=typeof t.length?(C(i,t),(i.options=t).dataPointText&&(n._hasPointLabels=!0),t.pointMark&&(n._hasPointMarkers=!0)):"string"==typeof t[0]&&(i.collectionAlias=t[0],i.y=t[1]),i.x===M&&(i.x=e===M?n.autoIncrement():e)},destroy:function(){if(!this._destroyed){var t,e=this,i=e.dataSeries,i=Y[i.chart.guid],n=i.hoverPoints;for(t in i.pointCount--,n&&(e.setState(),ie(n,e),n.length||(i.hoverPoints=null)),e===i.hoverPoint&&e._mouseOut(),(e.graphic||e.dataLabel)&&(pe(e),je.call(e)),e.legendItem&&We.call(i.chartLegend,e),e)e.hasOwnProperty(t)&&(e[t]=null);e._destroyed=!0}},_selected:function(t,e){var i=this,n=i.dataSeries.chart;t=H(t,!i.selected),i.trigger(t?"pointSelect":"pointDeselect",{accumulate:e},function(){i._destroyed||(i.selected=t,i.setState(t?Ut:""),e||V(U._selected.call(n),function(t){t.selected&&t!==i&&(t.selected=!1,t.setState(""),t.trigger("pointDeselect"))}))})},_mouseOver:function(t){var e=this,i=e.dataSeries,n=Y[i.chart.guid],a=n.tooltip,r=n.hoverPoint;r&&r!==e&&r._mouseOut(t),e.trigger("seriesMouseOver",t),!a||a.chartBound&&!i.noSharedTooltip||a.refresh(e),e.setState(Vt),n.hoverPoint=e},_mouseOut:function(t){var e=Y[this.dataSeries.chart.guid],i=e.hoverPoints;i&&-1!==Mt(this,i)||(this.trigger("seriesMouseOut",t),this.setState(),e.hoverPoint=null)},trigger:function(t,e,i){var n=this,a=n.dataSeries,r=a.options;"seriesClick"===t&&r.enablePointSelection&&(i=function(t){n._selected(null,!1!==r.allowMultiPointSelection&&(e.ctrlKey||e.metaKey||e.shiftKey))}),ue(n,t,{domEvent:e,dataSeries:a},function(){a.chart.trigger(t,{domEvent:e,point:n,dataSeries:a},i)})},setState:function(t){var e,i=this,n=i.plotX,a=i.plotY,r=i.dataSeries,o=r.options.activeSettings,s=x[r.seriesType].pointMark&&r.options.pointMark,l=s&&!s.enabled,d=s&&s.activeSettings[t],c=d&&!1===d.enabled,h=r.stateMarkerGraphic,p=r.chart,u=Y[p.guid],g=i.pointAttr;(t=t||"")===i.state||i.selected&&t!==Ut||o[t]&&!1===o[t].enabled||t&&(c||l&&!d.enabled)||(i.graphic?(e=s&&i.graphic.symbolName&&g[t].r,i.graphic.attr(z(g[t],e?{x:n-e,y:a-e,width:2*e,height:2*e}:{}))):(t&&d&&(e=d.drawRadius,h?h.attr({x:n-e,y:a-e}):r.stateMarkerGraphic=h=u.renderer.symbol(r.symbol,n-e,a-e,2*e,2*e).attr(g[t]).add(r.markerGroup)),h&&h[t&&He(p,n,a)?"show":"hide"]()),i.state=t)}},function(){}),Ke=(j.prototype={isCartesian:!0,seriesType:"line",pointClass:Ze,sorted:!0,pointAttrToOptions:{stroke:"drawColor","stroke-width":"drawWidth",fill:"innerColor",r:"drawRadius"},init:function(t,e){var i,n,a=this,r=Y[t.guid];for(i in a.chart=t,a.options=e=a.setOptions(e),a.bindAxes(),C(a,{collectionAlias:e.collectionAlias,state:"",pointAttr:{},visible:!1!==e.visible,selected:!0===e.selected}),Pt&&(e.applyAnimation=!1),n=e.events)n.hasOwnProperty(i)&&G(a,i,n[i]);(n&&n.click||e.point&&e.point.events&&e.point.events.click||e.enablePointSelection)&&(r.runTrackerClick=!0),a.getColor(),a.getSymbol(),a.setItemSource(e.data,!1),a.isCartesian&&(r.hasCartesianSeries=!0),r.dataSeries.push(a),re(r.dataSeries,function(t,e){return(t.options.index||0)-(e.options.index||0)}),V(r.dataSeries,function(t,e){t.index=e,t.collectionAlias=t.collectionAlias||"Series "+(e+1)})},bindAxes:function(){var i,n=this,a=n.options,t=Y[n.chart.guid];n.isCartesian&&V(["axisX","axisY"],function(e){V(t[e],function(t){i=t.options,(a[e]===i.index||a[e]===M&&0===i.index)&&(t.dataSeries.push(n),(n[e]=t).isDirty=!0)})})},autoIncrement:function(){var t=this,e=t.options,i=H(t.xIncrement,e.dataStart,0);return t.dataStep=H(t.dataStep,e.dataStep,1),t.xIncrement=i+t.dataStep,i},getSegments:function(){var t,e=-1,i=[],n=this.points,a=n.length,r=this.options.drawNullValues;if(a)if(/bar/.test(this.seriesType)&&r)for(t=0;t<a;t++)i.push(n[t]);else if(r){for(t=a;t--;)null===n[t].y&&n.splice(t,1);n.length&&(i=[n])}else for(t=0;t<a;t++)null===n[t].y?(e+1<t&&i.push(n.slice(e+1,t)),e=t):t===a-1&&i.push(n.slice(e+1,t+1));this.segments=i},setOptions:function(t){var e=this.chart,i=e.options,n=i.seriesSettings,a=n[this.seriesType],r=t.data;return t.data=null,(n=z(a,n.dataSeries,t)).data=t.data=r,this.tooltipSettings=z(i.tooltipSettings,n.tooltipSettings,e.initialOptions.tooltipSettings),null===a.pointMark&&delete n.pointMark,n},getColor:function(){var t=this.options,e=this.chart.options.seriesPalette,i=Y[this.chart.guid].counters;this.color=t.color||!t.separateColors&&e[i.color++]||"gray",i.wrapColor(e.length)},getSymbol:function(){var t=this.options.pointMark,e=this.chart,i=e.options.symbols,e=Y[e.guid].counters;this.symbol=t.symbol||i[e.symbol++],/^url/.test(this.symbol)&&(t.drawRadius=0),e.wrapSymbol(i.length)},drawLegendSymbol:function(t,e){this.options.pointMark;var i=t.options,n=i.legendItemSettings,a=i.checkMarkSettings,r=a.coordinates,i=i.symbolWidthINTERNAL,o=Y[this.chart.guid].renderer,s=e.legendGroup,t=t.baseline;e.legendSymbol=o.symbol("square",i/2-5,t-4-5,10,10).add(s),a&&a.enabled&&(e.checkMark=o.symbol(a.shape,i/2-5+H(r.x,0),t-4-5+H(r.y,0),I(r.width)?r.width:10,I(r.height)?r.height:10).add(s).attr({"stroke-width":a.width})),n&&n.elementStyle&&n.elementStyle.cursor&&(e.legendSymbol.css({cursor:n.elementStyle.cursor}),e.checkMark&&e.checkMark.css({cursor:n.elementStyle.cursor}))},addPointINTERNAL:function(t,e,i,n){var a=this,r=a.data,o=a.graph,s=a.area,l=a.chart,d=a.xData,c=a.yData,h=o&&o.shift||0,p=a.options.data,u=a.pointClass.prototype;he(n,l),o&&i&&(o.shift=h+1),s&&(i&&(s.shift=h+1),s.isArea=!0),e=H(e,!0),u.setOptions.apply(n={dataSeries:a},[t]),d.push(n.x),c.push(u.toArray?u.toArray.call(n):n.y),p.push(t),i&&(r[0]&&r[0].remove?function(t,e){var i,n=this.dataSeries,a=n.chart,r=n.data,o=r.length;for(he(e,a),t=H(t,!0),i=0;i<o;i++)if(r[i]===this){r.splice(i,1),n.options.data.splice(i,1),n.xData.splice(i,1),n.yData.splice(i,1);break}this.destroy(),n.isDirty=!0,n.isDirtyData=!0,t&&a.redraw()}.call(r[0],!1):(r.shift(),d.shift(),c.shift(),p.shift())),a.getAttribs(),a.isDirty=!0,a.isDirtyData=!0,e&&l.redraw()},setItemSource:function(t,e){var i,n=this,a=n.points,r=n.options,o=n.initialColor,s=n.chart,l=Y[s.guid],d=null,c=n.axisX,h=n.pointClass.prototype,p=(n.xIncrement=null,n.pointRange=c&&c.categoricalValues?1:r.pointRange,I(o)&&(l.counters.color=o),[]),u=[],g=t?t.length:[],o=n.pointArrayMap,f=o&&o.length;if(1e4<g){for(y=0;null===d&&y<g;)d=t[y],y++;if(Nt(d)){for(var m=H(r.dataStart,0),x=H(r.dataStep,1),y=0;y<g;y++)p[y]=m,u[y]=t[y],m+=x;n.xIncrement=m}else if(It(d))if(f)for(y=0;y<g;y++)i=t[y],p[y]=i[0],u[y]=ti.call(i,1,f+1);else for(y=0;y<g;y++)i=t[y],p[y]=i[0],u[y]=i[1]}else for(y=0;y<g;y++)h.setOptions.apply(i={dataSeries:n},[t[y]]),p[y]=i.x,u[y]=h.toArray?h.toArray.call(i):i.y;if(Rt(u[0]))_t("Data cannot be a string",1);else{for(n.data=[],n.options.data=t,n.xData=p,n.yData=u,y=a&&a.length||0;y--;)a[y]&&a[y].destroy&&a[y].destroy();c&&(c.zoomMin=c.customZoomMin),H(e,n.isDirty=n.isDirtyData=l.isDirtyBox=!0)&&s.redraw(!1)}},removeSeries:function(t,e){var i=this,n=i.chart,a=Y[n.guid];t=H(t,!0),i.isRemoving||(i.isRemoving=!0,i.destroy(),a.isDirtyLegend=a.isDirtyBox=!0,t&&n.redraw(e)),i.isRemoving=!1},processData:function(t){var e,i,n,a,r=this,o=r.xData,s=r.yData,l=o.length,d=0,c=l,h=r.axisX,p=r.options,u=p.pointsLimit,g=r.isCartesian;if(g&&!r.isDirty&&!h.isDirty&&!r.axisY.isDirty&&!t)return!1;if(g&&r.sorted&&(!u||u<l||r.forceCrop)){var t=Re.call(h),f=t.min,m=t.max;if(o[l-1]<f||o[0]>m)o=[],s=[];else if(o[0]<f||o[l-1]>m){for(a=0;a<l;a++)if(o[a]>=f){d=R(0,a-1);break}for(;a<l;a++)if(o[a]>m){c=a+1;break}o=o.slice(d,c),s=s.slice(d,c),e=!0}}for(a=o.length-1;0<a;a--)0<(i=o[a]-o[a-1])&&(n===M||i<n)&&(n=i);r.cropped=e,r.cropStart=d,r.processedXData=o,r.processedYData=s,null===p.pointRange&&(r.pointRange=n||1),r.closestPointRange=n},generatePoints:function(){var t,e,i,n,a,r=this,o=r.options.data,s=r.data,l=r.processedXData,d=r.processedYData,c=r.pointClass,h=l.length,p=r.cropStart||0,u=r.hasGroupedData,g=[];for(s||u||((a=[]).length=o.length,s=r.data=a),n=0;n<h;n++)e=p+n,u?g[n]=(new c).init(r,[l[n]].concat(Et(d[n]))):(s[e]?i=s[e]:o[e]!==M&&(s[e]=i=(new c).init(r,o[e],l[n])),g[n]=i);if(s&&(h!==(t=s.length)||u))for(n=0;n<t;n++)n!==p||u||(n+=h),s[n]&&(je.call(s[n]),s[n].plotX=M);r.data=s,r.points=g},translate:function(){this.processedXData||this.processData(),this.generatePoints();for(var t,e=this,i=e.chart,n=Y[i.guid],a=e.options,r=a.stackMode,o=e.axisX,s=o.categoricalValues,l=e.axisY,d=e.points,c=d.length,h=!!e.modifyValue,p=l.dataSeries,u=p.length,g="between"===a.positioningMethod,f=a.drawNullValues,m=/bar/i.test(e.seriesType);u--;)if(p[u].visible){p[u]===e&&(t=!0);break}for(u=0;u<c;u++){var x=d[u],y=x.x,v=Ot(x.y)&&m&&f?0:x.y,b=x.low,w=l.stacks[(v<a.baseValue?"-":"")+e.stackKey];x.plotX=o.translate(y,0,0,0,1,g),r&&e.visible&&w&&w[y]&&(y=(w=w[y]).total,w.cum=b=w.cum-v,v=b+v,t&&(b=H(a.baseValue,l.min)),l.isLog&&b<=0&&(b=null),"percent"===r&&(b=y?100*b/y:0,v=y?100*v/y:0),x.percentage=y?100*x.y/y:0,x.total=x.stackTotal=y,x.stackY=v),x.yBottom=I(b)?l.translate(b,0,1,0,1):null,h&&(v=e.modifyValue(v,x)),x.plotY="number"==typeof v?L(10*l.translate(v,0,1,0,1))/10:M,x.clientX=n.isInverted?n.plotHeight-x.plotX:x.plotX,x.pointName===M&&(s&&s[u]!==M?x.pointName=s[u]:x.pointName=x.x)}e.getSegments()},setTooltipPoints:function(t){var e,i,n,a,r,o=this,s=[],l=o.axisX,d=l?l.tooltipLen||l.len:Y[o.chart.guid].plotSizeX,c=l&&l.tooltipPosName||"plotX",h=[];if(!1!==o.options.mouseInteractions){for(t&&(o.tooltipPoints=null),V(o.segments||o.points,function(t){s=s.concat(t)}),e=(s=l&&l.inverseOrder?s.reverse():s).length,r=0;r<e;r++)for(a=s[r],i=s[r-1]?n+1:0,n=s[r+1]?R(0,y((a[c]+(s[r+1]?s[r+1][c]:d))/2)):d;0<=i&&i<=n;)h[i++]=a;o.tooltipPoints=h}},_mouseOver:function(t){var e=this,i=Y[e.chart.guid],n=i.hoverSeries;n&&n!==e&&n._mouseOut(t),e.setState(Vt),i.cachedHoverSeries=e,i.hoverSeries=e},_mouseOut:function(t){var e=this.options,i=Y[this.chart.guid],n=i.tooltip,a=i.hoverPoint;a&&a._mouseOut(t),!n||e.completeSeriesTrace||n.chartBound||n.hide(),this.setState(),i.hoverSeries=null},animate:function(t){var e,i=this,n=Y[i.chart.guid],a=n.renderer,r=i.options.applyAnimation,o=n.clipBox,s=n.isInverted,l="_sharedClip"+(r=r&&!Dt(r)?x[i.seriesType].applyAnimation:r).duration+r.easing;t?(e=n[l],t=n[l+"m"],e||(n[l]=e=a.clipRect(C(o,{width:0})),n[l+"m"]=t=a.clipRect(-99,s?-n.plotLeft:-n.plotTop,99,s?n.chartWidth:n.chartHeight)),i.group.clip(e),i.markerGroup.clip(t),i.sharedClipKey=l):((e=n[l])&&(e.animate({width:n.plotSizeX},r),n[l+"m"].animate({width:n.plotSizeX+99},r)),i.animate=null,i.animationTimeout=setTimeout(function(){i.afterAnimate()},r.duration))},afterAnimate:function(){var t=this,e=Y[t.chart.guid],i=t.sharedClipKey,n=t.group;n&&!1!==t.options.clip&&(n.clip(e.clipRect),t.markerGroup.clip()),setTimeout(function(){i&&e[i]&&(e[i]=e[i].destroy(),e[i+"m"]=e[i+"m"].destroy())},100)},drawPoints:function(){var t,e,i,n,a,r,o,s,l,d,c=this,h=c.points,p=c.chart,u=Y[p.guid],g=c.options.pointMark,f=c.markerGroup;if(g.enabled||c._hasPointMarkers)for(i=h.length;i--;)t=(n=h[i]).plotX,e=n.plotY,o=n.graphic,s=n.pointMark||{},l=g.enabled&&s.enabled===M||s.enabled,d=He(p,t,e,u.isInverted),l&&e!==M&&!isNaN(e)?(a=(l=n.pointAttr[n.selected?Ut:""]).r,r=0===(s=H(s.symbol,c.symbol)).indexOf("url"),o?o.attr({visibility:d?St?"inherit":X:O}).animate(C({x:t-a,y:e-a},o.symbolName?{width:2*a,height:2*a}:{})):d&&(0<a||r)&&(n.graphic=o=u.renderer.symbol(s,t-a,e-a,2*a,2*a).attr(l).add(f))):o&&(n.graphic=o.destroy())},convertAttribs:function(t,e,i,n){var a,r,o=this.pointAttrToOptions,s={};for(a in t=t||{},e=e||{},i=i||{},n=n||{},o)o.hasOwnProperty(a)&&(r=o[a],s[a]=H(t[r],e[a],i[a],n[a]));return s},getAttribs:function(){var t,e,i,n,a,r,o=this,s=x[o.seriesType].pointMark?o.options.pointMark:o.options,l=s.activeSettings,d=l[Vt],c=o.color,h={stroke:c,fill:c},p=o.points||[],u=[],g=o.pointAttrToOptions;for(o.options.pointMark?(d.drawRadius=d.drawRadius||s.drawRadius+2,d.drawWidth=d.drawWidth||s.drawWidth+1):d.color=d.color||new ve(d.color||c).brighten(d.brightness).get(),u[""]=o.convertAttribs(s,h),V([Vt,Ut],function(t){u[t]=o.convertAttribs(l[t],u[""])}),o.pointAttr=u,e=p.length;e--;){if((s=(i=p[e]).options&&i.options.pointMark||i.options)&&!1===s.enabled&&(s.drawRadius=0),a=o.options.separateColors,i.options)for(r in g)g.hasOwnProperty(r)&&I(s[g[r]])&&(a=!0);a?(n=[],t=(l=(s=s||{}).activeSettings||{})[Vt]=l[Vt]||{},o.options.pointMark||(t.color=new ve(t.color||i.color).brighten(t.brightness||d.brightness).get()),n[""]=o.convertAttribs(C({color:i.color},s),u[""]),n[Vt]=o.convertAttribs(l[Vt],u[Vt],n[""]),n[Ut]=o.convertAttribs(l[Ut],u[Ut],n[""])):n=C(!0,{},u),i.pointAttr=n}},destroy:function(){if(!this._destroyed){var t,e,i,n,a,r,o=this,s=Y[o.chart.guid],l=o.data||[];if(!o._destroyed){for(ue(o,"destroy"),pe(o),V(["axisX","axisY"],function(t){(n=o[t])&&(ie(n.dataSeries,o),n.isDirty=!0)}),o.legendItem&&We.call(s.chartLegend,o),t=l.length;t--;)(e=l[t])&&e.destroy&&e.destroy();for(a in o.points=null,clearTimeout(o.animationTimeout),o)o.hasOwnProperty(a)&&((r=o[a])instanceof be||Te&&r instanceof Te)&&(o[a]=r.destroy());for(i in s.hoverSeries===o&&(s.hoverSeries=null),ie(s.dataSeries,o),o)o.hasOwnProperty(i)&&delete o[i];o._destroyed=!0}}},drawDataLabels:function(){var o,s,l,d=this,c=d.options.dataPointText,t=d.points;(c.enabled||d._hasPointLabels)&&(d.dlProcessOptions&&d.dlProcessOptions(c),l=d.plotGroup("dataLabelsGroup","data-axisTickText",d.visible?X:O,6),o=c,V(t,function(t){var e,i,n,a=t.dataLabel,r=!0;if(s=t.options&&t.options.dataPointText,n=o.enabled||s&&s.enabled,a&&!n)t.dataLabel=a.destroy();else if(n){if(n=c.textAngle,c=z(o,s),s=Rt(c.format)?f.format(c.format,{point:t,chart:t.dataSeries.chart}):c.format.call(null,t,t.dataSeries.chart),c.style.color=H(c.color,c.style.color,d.color,"black"),a)a.attr({text:s}),r=!1;else if(I(s)){for(i in e={fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":c.borderWidth,r:c.borderRadius||0,textAngle:n,padding:c.padding,zIndex:1})e.hasOwnProperty(i)&&e[i]===M&&delete e[i];a=t.dataLabel=Y[d.chart.guid].renderer[n?"text":"label"](s,0,-999,null,null,null,c.htmlOutput).attr(e).css(c.style).add(l).shadow(c.shadow)}a&&d.alignDataLabel(t,a,c,null,r)}}))},alignDataLabel:function(t,e,i,n,a){var r,o=this.chart,s=Y[o.guid],l=s.isInverted,d=H(t.plotX,-999),t=H(t.plotY,-999),c=e.getBBox();n=C({x:l?s.plotWidth-t:d,y:L(l?s.plotHeight-d:t),width:0,height:0},n),C(i,{width:c.width,height:c.height}),i.textAngle?(r={align:i.align,x:n.x+i.x+n.width/2,y:n.y+i.y+n.height/2},e[a?"attr":"animate"](r)):(e.align(i,null,n),r=e.alignAttr),e.attr({visibility:!1===i.hideInvisible||He(o,r.x,r.y)||He(o,d,t,l)?St?"inherit":X:O})},getSegmentPath:function(i){var n=this,a=[];return V(i,function(t,e){n.getPointSpline?a.push.apply(a,n.getPointSpline(i,t,e)):(a.push(e?E:W),e&&n.options.step&&(e=i[e-1],a.push(t.plotX,e.plotY)),a.push(t.plotX,t.plotY))}),a},getGraphPath:function(){var e,i=this,n=[],a=[];return V(i.segments,function(t){e=i.getSegmentPath(t),1<t.length?n=n.concat(e):a.push(t[0])}),i.singlePoints=a,i.graphPath=n},drawGraph:function(){var t=this,e=t.options,i=t.graph,n=t.group,a=e.drawColor||t.color,r=e.drawWidth,o=e.seriesDashStyle,s=t.getGraphPath();i?(ge(i),i.animate({d:s})):r&&(i={stroke:a,"stroke-width":r,zIndex:1},o&&(i.dashstyle=o),t.graph=Y[t.chart.guid].renderer.path(s).attr(i).add(n).shadow(e.shadow))},invertGroups:function(){var i=this,t=i.chart;function e(){var e={width:i.axisY.len,height:i.axisX.len};V(["group","trackerGroup","markerGroup"],function(t){i[t]&&i[t].attr(e).invert()})}G(t,gt,e),G(i,"destroy",function(){pe(t,gt,e)}),e(),i.invertGroups=e},plotGroup:function(t,e,i,n,a){var r=this,o=r[t],s=Y[r.chart.guid],l=r.axisX,d=r.axisY;return o||(r[t]=o=s.renderer.g().attr({visibility:i,zIndex:n||.1}).add(a)),o.translate(l?l.left:s.plotLeft,d?d.top:s.plotTop),o},render:function(){var t=this,e=Y[t.chart.guid],i=t.options,n=i.applyAnimation&&!!t.animate,a=t.visible?X:O,r=i.zIndex,o=t.hasRendered,s=e.seriesGroup,l=t.plotGroup("group","dataSeries",a,r,s);t.markerGroup=t.plotGroup("markerGroup","markers",a,r,s),n&&t.animate(!0),t.getAttribs(),l.isInverted=e.isInverted,t.drawGraph&&t.drawGraph(),t.drawPoints(),t.drawDataLabels(),!1!==t.options.mouseInteractions&&t.drawTracker(),e.isInverted&&t.invertGroups(),!1===i.clip||t.sharedClipKey||o||(l.clip(e.clipRect),this.trackerGroup&&this.trackerGroup.clip(e.clipRect)),n?t.animate():o||t.afterAnimate(),t.isDirty=t.isDirtyData=!1,t.hasRendered=!0},redraw:function(){var t=this,e=Y[t.chart.guid],i=(t.isDirtyData,t.group);i&&(e.isInverted&&i.attr({width:e.plotWidth,height:e.plotHeight}),i.animate({translateX:t.axisX.left,translateY:t.axisY.top})),t.translate(),t.setTooltipPoints(!0),t.render()},setState:function(t){var e=this.options,i=this.graph,n=e.activeSettings,e=e.drawWidth;this.state===(t=t||"")||n[this.state=t]&&!1===n[t].enabled||(t&&(e=n[t].drawWidth||e+1),i&&!i.dashstyle&&i.attr({"stroke-width":e},t?0:500))},toggle:function(t,e){var i,n,a,r=this,o=r.chart,s=Y[o.guid],l=r.legendItem,d=r.group,c=r.tracker,h=r.dataLabelsGroup,p=r.markerGroup,u=r.points,g=o.options.scaleAxesForHiddenSeries,f=r.visible;if(r.visible=t=t===M?!f:t,i=t?"show":"hide",d&&d[i](),p&&p[i](),c)c[i]();else if(u)for(n=u.length;n--;)(a=u[n]).tracker&&a.tracker[i]();h&&h[i](),l&&Ee.call(s.chartLegend,r,t),r.isDirty=!0,r.options.stackMode&&V(s.dataSeries,function(t){t.options.stackMode&&t.visible&&(t.isDirty=!0)}),g||(s.isDirtyBox=!0),!1!==e&&o.redraw(),o.trigger("seriesVisibilityChange",{dataSeries:r})},showDataSeries:function(){this.toggle(!0)},hideDataSeries:function(){this.toggle(!1)},drawTracker:function(){var t,e,i=this,n=i.options,a=n.areaInteractivity,r=[].concat(a?i.areaPath:i.graphPath),o=r.length,s=i.chart,l=Y[i.chart.guid],d=l.renderer,c=s.options.tooltipSettings.showDistance,s=i.tracker,h=n.cursor,h=h&&{cursor:h},p=i.singlePoints,u=i.isCartesian&&i.plotGroup("trackerGroup",null,X,n.zIndex||1,l.trackerGroup);if(o&&!a)for(e=o+1;e--;)r[e]===W&&r.splice(e+1,0,r[e+1]-c,r[e+2],E),(e&&r[e]===W||e===o)&&r.splice(e,0,E,r[e-2]+c,r[e-1]);for(e=0;e<p.length;e++)t=p[e],r.push(W,t.plotX-c,t.plotY,E,t.plotX+c,t.plotY);s?s.attr({d:r}):i.tracker=d.path(r).attr({isTracker:!0,"stroke-linejoin":"bevel",visibility:i.visible?X:O,stroke:Gt,fill:a?Gt:Bt,"stroke-width":n.drawWidth+(a?0:2*c)}).on(ut,function(t){l.hoverSeries!==i&&(i._fromTOUCHSTART=1,i._mouseOver(t))}).on(dt,function(t){l.hoverSeries!==i&&(1===i._fromTOUCHSTART?delete i._fromTOUCHSTART:i._mouseOver(t))}).on(ct,function(t){n.completeSeriesTrace||i._mouseOut(t)}).css(h).add(u)}},t(j)),$e=t(s.line=Ke,{seriesType:"stepline"}),qe=(s.stepline=$e,x.stepline=z(x.line,{step:"left"}),x.area=z(ye,{baseValue:0,drawWidth:2,pointMark:{enabled:!1}}),t(j,{seriesType:"area",getSegmentPath:function(t){var e,i=this,n=j.prototype.getSegmentPath.call(i,t),a=[].concat(n),r=i.options;if(3===n.length&&a.push(E,n[1],n[2]),r.stackMode&&!i.closedStacks)for(e=t.length-1;0<=e;e--)e<t.length-1&&r.step&&a.push(t[e+1].plotX,t[e].yBottom),a.push(t[e].plotX,t[e].yBottom);else i.closeSegment(a,t);return i.areaPath=i.areaPath.concat(a),n},closeSegment:function(t,e){var i=De.call(this.axisY,this.options.baseValue);t.push(E,e[e.length-1].plotX,i,E,e[0].plotX,i)},drawGraph:function(){var t=this,e=(t.areaPath=[],j.prototype.drawGraph.apply(t),t.areaPath),i=t.options,n=t.area;n?n.animate({d:e}):t.area=Y[t.chart.guid].renderer.path(e).attr({fill:H(i.innerColor,new ve(t.color).setOpacity(i.fillOpacity||.75).get()),zIndex:0}).add(t.group)}})),Qe=t(s.area=qe,{seriesType:"steparea"}),g=(s.steparea=Qe,x.steparea=z(x.area,{step:"left"}),x.spline=z(ye),t(j,{seriesType:"spline",getPointSpline:function(t,e,i){var n,a,r,o,s,l,d,c=e.plotX,h=e.plotY,p=t[i-1],t=t[i+1];return p&&t&&(r=p.plotX,a=p.plotY,s=t.plotX,d=((l=(1.5*h+(t=t.plotY))/2.5)-(o=(1.5*h+a)/2.5))*((s=(1.5*c+s)/2.5)-c)/(s-(r=(1.5*c+r)/2.5))+h-l,l+=d,a<(o+=d)&&h<o?l=2*h-(o=R(a,h)):o<a&&o<h&&(l=2*h-(o=D(a,h))),t<l&&h<l?o=2*h-(l=R(t,h)):l<t&&l<h&&(o=2*h-(l=D(t,h))),e.rightContX=s,e.rightContY=l),i?(n=["C",p.rightContX||p.plotX,p.rightContY||p.plotY,r||c,o||h,c,h],p.rightContX=p.rightContY=null):n=[W,c,h],n}})),Ke=(s.spline=g,x.splinearea=z(x.area),qe.prototype),$e=t(g,{seriesType:"splinearea",closedStacks:!0,getSegmentPath:Ke.getSegmentPath,closeSegment:Ke.closeSegment,drawGraph:Ke.drawGraph}),Qe=(s.splinearea=$e,x.bar=z(ye,{borderColor:"#FFFFFF",borderWidth:0,borderRadius:0,groupPadding:.15,pointMark:null,barOffset:.1,minPointLength:0,pointsLimit:50,pointRange:null,activeSettings:{pointHoveredState:{brightness:.1,shadow:!1},pointSelectedState:{color:"#7AF4F4",shadow:!1}},dataPointText:{align:null,verticalAlign:null,y:null},baseValue:0}),t(j,{seriesType:"bar",tooltipOutsidePlot:!0,pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color",r:"borderRadius"},isInverted:!1,init:function(){j.prototype.init.apply(this,arguments);var e=this,t=Y[e.chart.guid];t.hasRendered&&V(t.dataSeries,function(t){t.seriesType===e.seriesType&&(t.isDirty=!0)})},translate:function(){var i,s=this,l=Y[s.chart.guid],t=s.enablePolarLayout,e=s.options,d=e.stackMode,c=e.borderWidth,n=0,a=s.axisX,r=a.inverseOrder,o={},h=(j.prototype.translate.apply(s),!1===e.divideSeries?n=1:V(l.dataSeries,function(t){var e=t.options;t.seriesType===s.seriesType&&t.visible&&s.options.group===e.group&&(e.stackMode?(i=t.stackKey,o[i]===M&&(o[i]=n++),i=o[i]):!1!==e.divideSeries&&(i=n++),t.columnIndex=i)}),s.points),a=ot(a.transA)*(a.ordinalSlope||e.pointRange||a.closestPointRange||1),p=a*e.groupPadding,u=(a-2*p)/n,g=e.dataPointWidth,f=I(g)?(u-g)/2:u*e.barOffset,f=t?f:A(f),g=H(g,u-2*f),m=t?g:A(g),x=rt(R(m,1+2*c)),g=f+(p+((r?n-s.columnIndex:s.columnIndex)||0)*u-a/2)*(r?-1:1),y=t?g:A(g),f=e.baseValue,v=s.translatedThreshold=De.call(s.axisY,f),b=H(e.minPointLength,5);V(h,function(t){var e=t.plotY,i=H(t.yBottom,v),n=t.plotX+y,a=rt(D(e,i)),r=rt(R(e,i)-a),o=s.axisY.stacks[(t.y<0?"-":"")+s.stackKey];d&&s.visible&&o&&o[t.x]&&o[t.x]._offset(y,x),ot(r)<b&&b&&(r=b,a=ot(a-v)>b?i-b:v-(e<=v?b:0)),t.barX=n,t.dataPointWidth=m,t.shapeType="rect",t.shapeArgs=o=l.renderer.Element.prototype.crisp.call(0,c,n,a,x,r),c%2&&(--o.y,o.height+=1),t.trackerArgs=ot(r)<3&&z(t.shapeArgs,{height:6,y:a-3})})},getSymbol:i,drawGraph:i,drawPoints:function(){var n,a=this,r=a.options,o=Y[a.chart.guid].renderer;V(a.points,function(t){var e=t.plotY,i=t.graphic;e===M||isNaN(e)||null===t.y?i&&(t.graphic=i.destroy()):(n=t.shapeArgs,i?(ge(i),i.animate(z(n))):t.graphic=i=o[t.shapeType](n).attr(t.pointAttr[t.selected?Ut:""]).add(a.group).shadow(r.shadow,null,r.stackMode&&!r.borderRadius))})},drawTracker:function(){var t,i,n,a,r=this,o=Y[r.chart.guid],s=o.renderer,l=+new Date,d=r.options,e=d.cursor,c=e&&{cursor:e},h=r.isCartesian&&r.plotGroup("trackerGroup",null,X,d.zIndex||1,o.trackerGroup);V(r.points,function(e){i=e.tracker,t=e.trackerArgs||e.shapeArgs,a=e.plotY,a=!r.isCartesian||a!==M&&!isNaN(a),delete t.strokeWidth,null!==e.y&&a&&(i?i.attr(t):e.tracker=s[e.shapeType](t).attr({isTracker:l,fill:Gt,visibility:r.visible?X:O}).on(ut,function(t){e._fromTOUCHSTART=1,n=t.relatedTarget||t.fromElement,o.hoverSeries!==r&&P(n,"isTracker")!==l&&r._mouseOver(t),e._mouseOver(t)}).on(dt,function(t){1===e._fromTOUCHSTART?delete e._fromTOUCHSTART:(n=t.relatedTarget||t.fromElement,o.hoverSeries!==r&&P(n,"isTracker")!==l&&r._mouseOver(t),e._mouseOver(t))}).on(ct,function(t){d.completeSeriesTrace||P(n=t.relatedTarget||t.toElement,"isTracker")!==l&&r._mouseOut(t)}).css(c).add(e.group||h))})},alignDataLabel:function(t,e,i,n,a){var r=Y[this.chart.guid],o=r.isInverted,s=t.below||t.plotY>(this.translatedThreshold||r.plotSizeY),l=this.options.stackMode||i.inside;t.shapeArgs&&(n=z(t.shapeArgs),o&&(n={x:r.plotWidth-n.y-n.height,y:r.plotHeight-n.x-n.width,width:n.height,height:n.width}),l||(o?(n.x+=s?0:n.width,n.width=0):(n.y+=s?n.height:0,n.height=0))),i.align=H(i.align,!o||l?"center":s?"right":"left"),i.verticalAlign=H(i.verticalAlign,o||l?"middle":s?"top":"bottom"),j.prototype.alignDataLabel.call(this,t,e,i,n,a)},animate:function(t){var a=this,e=a.points,r=a.options;t||(V(e,function(t){var e=t.graphic,t=t.shapeArgs,i=a.axisY,n=r.baseValue;e&&(e.attr({height:0,y:I(n)?De.call(i,n):i.translate(Re.call(i).min,0,1,0,1)}),e.animate({height:t.height,y:t.y},r.applyAnimation))}),a.animate=null)},remove:function(){var e=this,t=Y[e.chart.guid];t.hasRendered&&V(t.dataSeries,function(t){t.seriesType===e.seriesType&&(t.isDirty=!0)}),j.prototype.remove.apply(e,arguments)}})),Je=(s.bar=Qe,x.scatter=z(ye,{drawWidth:0,activeSettings:{pointHoveredState:{drawWidth:0}},tooltipSettings:{customHeaderText:"{point.pointName}",customPointText:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b>"}}),t(j,{seriesType:"scatter",sorted:!1,translate:function(){var e=this;j.prototype.translate.apply(e),V(e.points,function(t){t.shapeType="circle",t.shapeArgs={x:t.plotX,y:t.plotY,r:e.chart.options.tooltipSettings.showDistance}})},drawTracker:function(){for(var t,e=this,i=e.options.cursor,i=i&&{cursor:i},n=e.points,a=n.length;a--;)(t=n[a].graphic)&&(t.element._i=a);e._hasTracking?e._hasTracking=!0:e.markerGroup.attr({isTracker:!0}).on(ut,function(t){e._fromTOUCHSTART=1,e._mouseOver(t),t.target._i!==M&&n[t.target._i]._mouseOver(t)}).on(dt,function(t){1===e._fromTOUCHSTART?delete e._fromTOUCHSTART:(e._mouseOver(t),t.target._i!==M&&n[t.target._i]._mouseOver(t))}).on(ct,function(t){e.options.completeSeriesTrace||e._mouseOut(t)}).css(i)}})),qe=(s.scatter=Je,x.bubble=z(x.scatter,{pointMark:{drawWidth:1,activeSettings:{pointHoveredState:{innerColor:null},pointSelectedState:{innerColor:null}}},tooltipSettings:{customHeaderText:"{point.pointName}",customPointText:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>size: <b>{point.size}</b>"}}),t(Je,{seriesType:"bubble",translate:function(){var e,i,n,a,r,t=this,o=t.chart,o=Y[o.guid],s=R(10,A(D(o.plotHeight,o.plotWidth)/5))-10;Je.prototype.translate.apply(t),V(t.points,function(t){t._rad=a=_.sqrt(t.size/N),(e===M||a<e)&&(e=a),(i===M||i<a)&&(i=a)}),n=i-e,e<10&&(r=e,e=i=M,V(t.points,function(t){t._rad=a=10*t._rad/r,(e===M||a<e)&&(e=a),(i===M||i<a)&&(i=a)}),n=i-e),s<=n&&V(t.points,function(t){t._rad=10+(t._rad-e)*s/n})},drawPoints:function(){V(this.points,function(e){V(["",Vt,Ut],function(t){C(e.pointAttr[t],{r:e._rad,fill:new ve(e.pointAttr[t].fill).setOpacity(""==t?.75:1).get()})})}),j.prototype.drawPoints.apply(this)}}));function ti(t,e,i){var n=this,a=n.dataSeries.chart,r=Y[a.guid],o=n.slicedTranslation;he(i,a),e=H(e,!0),i={translateX:(t=n.sliced=I(t)?t:!n.sliced)?o[0]:r.plotLeft,translateY:t?o[1]:r.plotTop},n.group.animate(i),n.shadowGroup&&n.shadowGroup.animate(i)}s.bubble=qe,x.pie=z(ye,{borderColor:"#FFFFFF",borderWidth:0,center:["50%","50%"],separateColors:!0,dataPointText:{distance:30,enabled:!0,format:function(t,e){return e&&e.options&&e.options.axisX&&e.options.axisX.categoricalValues&&e.options.axisX.categoricalValues[t.x]!==M?e.options.axisX.categoricalValues[t.x]:t.y}},legendType:mt,pointMark:null,size:"75%",addToLegend:!1,slicedOffset:10,activeSettings:{pointHoveredState:{brightness:.1,shadow:!1}},tooltipSettings:{customHeaderText:"{point.dataSeries.collectionAlias}",customPointText:function(t,e){e=e&&e.options&&e.options.axisX&&e.options.axisX.categoricalValues&&e.options.axisX.categoricalValues[t.x]!==M?e.options.axisX.categoricalValues[t.x]:t.pointName||t.collectionAlias||t.dataSeries.collectionAlias;return"<span>"+e+"</span>: "+t.y}}});var g={seriesType:"pie",isCartesian:!1,pointClass:t(Ze,{init:function(){Ze.prototype.init.apply(this,arguments);var t,e=this;return C(e,{visible:!1!==e.visible,collectionAlias:H(e.collectionAlias,"Sector")}),I(e.selected)?e.selected=e.sliced=!!e.selected:I(e.sliced)&&(e.selected=e.sliced=!!e.sliced),G(e,"pointSelect",t=function(){ti.call(e)}),G(e,"pointDeselect",t),e},toggle:function(t){var e,i=this,n=i.dataSeries,a=n.chart,r=Y[n.chart.guid],o=i.tracker,s=i.dataLabel,l=i.connector,d=i.shadowGroup;i.visible=t=t===M?!i.visible:t,i.group[e=t?"show":"hide"](),o&&o[e](),s&&s[e](),l&&l[e](),d&&d[e](),i.legendItem&&Ee.call(r.chartLegend,i,t),!n.isDirty&&n.options.ignoreHiddenPoint&&(n.isDirty=!0,a.redraw())}}),pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:function(){this.initialColor=Y[this.chart.guid].counters.color},animate:function(){var n=this,t=n.points;V(t,function(t){var e=t.graphic,t=t.shapeArgs,i=-N/2;e&&(e.attr({r:0,start:i,end:i}),e.animate({r:t.r,start:t.start,end:t.end},n.options.applyAnimation))}),n.animate=null},setItemSource:function(t,e){j.prototype.setItemSource.call(this,t,!1),this.processData(),this.generatePoints(),H(e,!0)&&this.chart.redraw()},getCenter:function(){var t=this.options,e=Y[this.chart.guid],i=e.plotWidth,n=e.plotHeight,e=t.center.concat([t.size,t.innerSize||0]),a=D(i,n);return xe(e,function(t,e){return/%$/.test(t)?[i,n,a,a][e]*A(t)/100:t})},translate:function(){this.generatePoints();var i,n,t,e,a,r,o,s=0,l=this,d=-.25,c=l.options,h=c.slicedOffset,p=h+c.borderWidth,u=Y[l.chart.guid],g=l.points,f=2*N,m=c.dataPointText.distance,x=c.ignoreHiddenPoint,y=g.length;for(l.center=i=l.getCenter(),l.getX=function(t,e){return n=_.asin((t-i[1])/(i[2]/2+m)),i[0]+(e?-1:1)*(b(n)*(i[2]/2+m))},r=0;r<y;r++)o=g[r],s+=x&&!o.visible?0:o.y;for(r=0;r<y;r++)o=g[r],t=s?o.y/s:0,a=L(d*f*1e3)/1e3,x&&!o.visible||(d+=t),e=L(d*f*1e3)/1e3,o.shapeType="arc",o.shapeArgs={x:i[0],y:i[1],r:i[2]/2,innerR:i[3]/2,start:a,end:e},n=(e+a)/2,o.slicedTranslation=xe([b(n)*h+u.plotLeft,w(n)*h+u.plotTop],L),e=b(n)*i[2]/2,a=w(n)*i[2]/2,o.tooltipPos=[i[0]+.7*e,i[1]+.7*a],o.labelPos=[i[0]+e+b(n)*m,i[1]+a+w(n)*m,i[0]+e+b(n)*p,i[1]+a+w(n)*p,i[0]+e,i[1]+a,m<0?"center":n<f/4?"left":"right",n],o.percentage=100*t,o.total=s;l.setTooltipPoints()},render:function(){var t=this;t.getAttribs(),t.drawPoints(),!1!==t.options.mouseInteractions&&t.drawTracker(),t.drawDataLabels(),t.options.applyAnimation&&t.animate&&t.animate(),t.isDirty=!1},drawPoints:function(){var e,i,n,a,r,o=this,s=Y[o.chart.guid],l=s.renderer,d=o.options.shadow;V(o.points,function(t){i=t.graphic,r=t.shapeArgs,n=t.group,a=t.shadowGroup,d&&!a&&(a=t.shadowGroup=l.g().attr({zIndex:4}).add()),n=n||(t.group=l.g().attr({zIndex:5}).add()),e=t.sliced?t.slicedTranslation:[s.plotLeft,s.plotTop],n.translate(e[0],e[1]),a&&a.translate(e[0],e[1]),i?i.animate(r):t.graphic=i=l.arc(r).setRadialReference(o.center).attr(C(t.pointAttr[""],{"stroke-linejoin":"round"})).add(t.group).shadow(d,a),!1===t.visible&&t.toggle(!1)})},drawDataLabels:function(){var t,e,i,n,a,r=this,o=r.data,s=Y[r.chart.guid],l=r.options.dataPointText,d=H(l.connectorPadding,10),c=H(l.connectorWidth,1),h=l.distance,p=r.center,u=p[2]/2,g=p[1],f=0<h,m=[[],[]],x=2;if(l.enabled||r._hasPointLabels)for(j.prototype.drawDataLabels.apply(r),V(o,function(t){t.dataLabel&&m[t.labelPos[7]<N/2?0:1].push(t)}),m[1].reverse(),n=function(t,e){return e.y-t.y},t=m[0][0]&&m[0][0].dataLabel&&(m[0][0].dataLabel.getBBox().height||21);x--;){var y,v,b,w,T,k,S,A=[],P=[],L=m[x],C=L.length;if(0<h){for(v=g-u-h;v<=g+u+h;v+=t)A.push(v);if((y=A.length)<C){for((i=[].concat(L)).sort(n),a=C;a--;)i[a].rank=a;for(a=C;a--;)L[a].rank>=y&&L.splice(a,1);C=L.length}for(a=0;a<C;a++){for(var M,_,R=(M=L[a]).labelPos,D=9999,I=0;I<y;I++)(_=ot(A[I]-R[1]))<D&&(D=_,b=I);if(b<a&&null!==A[a])b=a;else if(y<C-a+b&&null!==A[a])for(b=y-C+a;null===A[b];)b++;else for(;null===A[b];)b++;P.push({i:b,y:A[b]}),A[b]=null}P.sort(n)}for(a=0;a<C;a++)R=(M=L[a]).labelPos,T=M.dataLabel,e=!1===M.visible?O:X,S=R[1],(!(0<h)||(b=(w=P.pop()).i,(w=w.y)<S&&null!==A[b+1]||S<w&&null!==A[b-1]))&&(w=S),S=l.justify?p[0]+(x?-1:1)*(u+h):r.getX(0===b||b===A.length-1?S:w,x),T.attr({visibility:e,align:R[6]})[T.moved?"animate":"attr"]({x:S+l.x+({left:d,right:-d}[R[6]]||0),y:w+l.y-10}),T.moved=!0,f&&c&&(T=M.connector,S=S+("left"===R[6]?8:-8),S=[W,S,k=w,E,S+("left"===R[6]?-10:10),k,E,R[4],R[5]],T?(T.animate({d:S}),T.attr("visibility",e)):M.connector=T=s.renderer.path(S).attr({"stroke-width":c,stroke:l.connectorColor||M.color||"#606060",visibility:e,zIndex:3}).translate(s.plotLeft,s.plotTop).add())}},alignDataLabel:i,drawTracker:Qe.prototype.drawTracker,getSymbol:i},g=t(j,g),Ke=(s.pie=g,x.donut=z(x.pie,{innerSize:"45%"}),t(g,{seriesType:"donut"})),ei=(s.donut=Ke,{_init:function(){var t=this;t.container=p("<div class='shield-lightbox' />"),t.mask=p("<div class='shield-lightbox-mask' />").appendTo(t.container),t.imageBox=p("<div class='shield-lightbox-imagebox' />").appendTo(t.container),t.image=p("<img />").appendTo(t.imageBox),t.caption=p("<p>Right-click and save image to disk. Left-click to dismiss.</p>").appendTo(t.imageBox),t.window=p(k),t.document=p(S),t.body=p(S.body)},show:function(t){var e=this;function i(){e.visible&&(e.container.appendTo(e.body),e.window.on(gt+e.ns,n),e.window.on("keydown"+e.ns,function(t){27===t.keyCode&&e.hide()}),e.container.on(ft+e.ns,p.proxy(e.hide,e)),setTimeout(n,1e3/60))}function n(){e.mask.css({height:e.document.innerHeight()}),e.image.css({maxWidth:e.mask.width()-(e.image.outerWidth()-e.image.width())-2*e.margin,maxHeightINTERNAL:e.mask.height()-(e.image.outerHeight()-e.image.height())-2*e.margin}),e.imageBox.css({left:(e.document.innerWidth()-e.imageBox.outerWidth())/2,top:(e.window.innerHeight()-e.imageBox.outerHeight())/2+e.document.scrollTop()}),e.caption.css({left:(e.imageBox.width()-e.caption.outerWidth())/2+"px"})}e.visible||(e.visible=!0,e.container||e._init(),e.image.attr("src")===t?i():e.image.on("load"+e.ns,i).attr("src",t).attr("alt","Right-click and save image to disk"))},hide:function(){this.container.detach(),this.window.off(this.ns),this.visible=!1},ns:".shield",visible:!1,container:null,mask:null,imageBox:null,image:null,caption:null,window:null,document:null,body:null,margin:40}),ii=(Fe.defaults.exportOptions={image:!0,print:!0,exportTooltip:"Export the chart to an image",printTooltip:"Print the chart"},C(Fe.prototype,{exportToImage:function(){if(At){var t=p(Y[this.guid].container),e=t.html(),t=p("<canvas />").attr("width",t.width()).attr("height",t.height())[0];if(typeof canvg!=lt)throw"Export requires canvg: https://code.google.com/p/canvg/";e=(e=(e=e.replace(/(xmlns="[^\"]*")(.*?)\1/,"$1$2")).replace(/<(filter)\b[^>]*>.*?<\/\1>/gim,"")).replace(/\bfilter\b=(["']).*?\1/gim,""),canvg(t,e),ei.show(t.toDataURL())}},print:function(){var t=p("<iframe />").css({position:"absolute",left:"-10000px",top:"-10000px"}).appendTo(S.body)[0],e=t.contentWindow.document;e.open("text/html","replace"),e.write(Y[this.guid].container.innerHTML),e.close(),t.contentWindow.print(),setTimeout(function(){S.body.removeChild(t),t=null},100)}}),ze.push(function(t){var e,i=t.options.exportOptions,n=[];!1!==i&&((i.image&&At||i.print)&&(e=p('<div class="shield-buttons" />').appendTo(t.element)),i.image&&At&&n.push(p('<button class="shield-chart-button" type="button" title="'+i.exportTooltip+'"><div class="sui-sprite shield-export-button-img" /></button>').on("click.shield",p.proxy(t.exportToImage,t)).appendTo(e)),i.print&&n.push(p('<button class="shield-chart-button" type="button" title="'+i.printTooltip+'"><div class="sui-sprite shield-print-button-img" /></button>').on("click.shield",p.proxy(t.print,t)).appendTo(e)),p(t).bind("destroy",function(t){p(n).each(function(t,e){e.off(".shield").remove()})}))}),s.bar.prototype);function ni(t,e,i){this.init.call(this,t,e,i)}C(ni.prototype,{init:function(t,e,i){var n=this,a=n.defaults;n.chart=e,Y[e.guid].angular&&(a.background={}),n.options=t=z(a,t),(e=t.background)&&V([].concat(Et(e)).reverse(),function(t){var e=t.backgroundColor;t=z(n.defaultBackgroundOptions,t),e&&(t.backgroundColor=e),t.color=t.backgroundColor,i.options.plotBands.unshift(t)})},defaults:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"silver",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#FFF"],[1,"#DDD"]]},from:Number.MIN_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});var ai=Ie.prototype,$e=ke.prototype,ri={_offset:i,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},_scale:i,_points:i,_title:i},oi={radialGauge:{axisTickText:{align:"center",x:0,y:null},minorPlotStripWidth:0,minorTicksRepeat:"auto",minorTicksHeight:10,minorTicksPlacementINTERNAL:"inside",minorTickWidth:1,plotBands:[],tickLength:10,tickPosition:"inside",tickWidth:2,title:{textAngle:0},zIndex:2},radialX:{plotStripWidth:1,axisTickText:{align:null,distance:15,x:0,y:null},endOffset:0,startOffset:0,plotBands:[],lastTickTextVisible:!1,tickLength:0},radialY:{gridLineInterpolationINTERNAL:"circle",axisTickText:{align:"right",x:-3,y:-2},plotBands:[],lastTickTextVisible:!1,title:{x:4,text:null,textAngle:90}}},si={radial:!0,setOptions:function(t,e){this.options=z(Pe.defaults,t,this.defaultRadialOptions,this.isXAxis?e.initialOptions.axisX:e.initialOptions.axisY)},_offset:function(){var t=this;ai._offset.call(t),Y[t.chart.guid].axisOffset[t.side]=0,t.center=t.pane.center=s.pie.prototype.getCenter.call(t.pane)},_path:function(t,e){var i=this,n=i.center;return e=H(e,n[2]/2-i.offset),Y[i.chart.guid].renderer.symbols.arc(i.left+n[0],i.top+n[1],e,e,{start:i.startAngleRad,end:i.endAngleRad,open:!0,innerR:0})},_arrange:function(){var t=this;ai._arrange.call(t),t.center&&(t.isCircular?t.transA=(t.endAngleRad-t.startAngleRad)/(t.max-t.min||1):t.transA=t.center[2]/2/(t.max-t.min||1),t.isXAxis&&(t.minPixelPadding=t.transA*t.minPointOffset+(t.inverseOrder?(t.endAngleRad-t.startAngleRad)/4:0)))},_preTicks:function(){var t=this;t.autoConnect&&(t.max+=(t.categoricalValues?1:t.pointRange)||t.closestPointRange)},_dimensions:function(){var t=this;ai._dimensions.call(t),t.center&&(t.len=t.width=t.height=t.isCircular?t.center[2]*(t.endAngleRad-t.startAngleRad)/2:t.center[2]/2)},_position:function(t,e){var i=this;return i.isCircular||(e=i.translate(t),t=i.min),i.postTranslate(i.translate(t),H(e,i.center[2]/2)-i.offset)},postTranslate:function(t,e){var i=Y[this.chart.guid],n=this.center;return t=this.startAngleRad+t,{x:i.plotLeft+n[0]+b(t)*e,y:i.plotTop+n[1]+w(t)*e}},_bandPath:function(t,e,i){var n,a,r,o=this,s=o.center,l=o.startAngleRad,d=s[2]/2,c=[H(i.outerRadius,"100%"),i.innerRadius,H(i.thickness,10)],h=/%$/,p=o.isCircular,i="polygon"===o.options.gridLineInterpolationINTERNAL?o._linePath(t).concat(o._linePath(e,!0)):(p||(c[0]=o.translate(t),c[1]=o.translate(e)),c=xe(c,function(t){return t=h.test(t)?A(t,10)*d/100:t}),"circle"!==i.shape&&p?(n=l+o.translate(t),a=l+o.translate(e)):(n=-N/2,a=1.5*N,r=!0),Y[o.chart.guid].renderer.symbols.arc(o.left+s[0],o.top+s[1],c[0],c[0],{start:n,end:a,innerR:H(c[1],c[0]-c[2]),open:r}));return i},_linePath:function(i,t){var n,a,r,e=this,o=e.center,s=Y[e.chart.guid],l=e._position(i);return e.isCircular?r=["M",o[0]+s.plotLeft,o[1]+s.plotTop,"L",l.x,l.y]:"circle"===e.options.gridLineInterpolationINTERNAL?(i=e.translate(i))&&(r=e._path(0,i)):(n=s.axisX[0],r=[],i=e.translate(i),o=n.tickPositions,n.autoConnect&&(o=o.concat([o[0]])),t&&(o=[].concat(o).reverse()),V(o,function(t,e){a=n._position(t,i),r.push(e?"L":"M",a.x,a.y)})),r},_titlePos:function(){var t=this.center,e=Y[this.chart.guid],i=this.options.title;return{x:e.plotLeft+t[0]+(i.x||0),y:e.plotTop+t[1]-{high:.5,middle:.25,low:0}[i.align]*t[2]+(i.y||0)}}},qe=(s.polarline=t(s.line,{seriesType:"polarline",enablePolarLayout:!0}),x.polarline=z(x.line,x.polarline),s.polararea=t(s.area,{seriesType:"polararea",enablePolarLayout:!0}),x.polararea=z(x.area,x.polararea),s.polarbar=t(s.bar,{seriesType:"polarbar",enablePolarLayout:!0}),x.polarbar=z(x.bar,x.polarbar,{pointRange:0}),s.polarspline=t(s.spline,{seriesType:"polarspline",enablePolarLayout:!0}),x.polarspline=z(x.spline,x.polarspline),s.polarsplinearea=t(s.splinearea,{seriesType:"polarsplinearea",enablePolarLayout:!0}),x.polarsplinearea=z(x.splinearea,x.polarsplinearea),s.polarscatter=t(s.scatter,{seriesType:"polarscatter",enablePolarLayout:!0}),x.polarscatter=z(x.scatter,x.polarscatter),e(ai,"init",function(t,e,i){var n,a=this,r=Y[e.guid],o=r.angular,s=r.enablePolarLayout,l=i.isX,d=o&&l,c=e.options,h=i.pane||0;o?(C(a,d?ri:si),(n=!l)&&(a.defaultRadialOptions=oi.radialGauge)):s&&(C(a,si),a.defaultRadialOptions=(n=l)?oi.radialX:z(Pe.y,oi.radialY)),t.call(a,e,i),d||!o&&!s||(l=a.options,r.panes||(r.panes=[]),a.pane=r.panes[h]=t=new ni(Et(c.pane)[h],e,a),d=t.options,r.inverted=!1,c.zoomType=null,a.startAngleRad=o=(d.startAngle-90)*N/180,a.endAngleRad=s=(H(d.endAngle,d.startAngle+360)-90)*N/180,a.offset=l.offset||0,(a.isCircular=n)&&i.max===M&&s-o==2*N&&(a.autoConnect=!0))}),e($e,"_position",function(t,e,i,n,a){var r=this.axis;return r._position?r._position(i):t.call(this,e,i,n,a)}),e($e,"_labelPos",function(t,e,i,n,a,r,o,s,l){var d,c=this.axis,h=r.y,p=r.align,u=(c.translate(this.pos)+c.startAngleRad+N/2)/N*180;return c.radial?(d=c._position(this.pos,c.center[2]/2+H(r.distance,-25)),"auto"===r.textAngle?n.attr({textAngle:u}):null===h&&(h=.9*A(n.styles.lineHeight)-n.getBBox().height/2),null===p&&(p=c.isCircular?20<u&&u<160?"left":200<u&&u<340?"right":"center":"center",n.attr({align:p})),d.x+=r.x,d.y+=h):d=t.call(this,e,i,n,a,r,o,s,l),d}),e($e,"_markPath",function(t,e,i,n,a,r,o){var s=this.axis,s=s.radial?["M",e,i,"L",(s=s._position(this.pos,s.center[2]/2+n)).x,s.y]:t.call(this,e,i,n,a,r,o);return s}),x.rangearea=z(x.area,{drawWidth:1,pointMark:null,baseValue:null,tooltipSettings:{customPointText:'<span style="color:{point.dataSeries.color}">{point.dataSeries.collectionAlias}</span>: <b>{point.low}</b> - <b>{point.high}</b><br/>'},areaInteractivity:!0,dataPointText:{verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},shadow:!1}),t(Ze,{setOptions:function(t,e){var i=this,n=i.dataSeries,a=n.pointArrayMap,r=0,o=0,s=a.length;if("object"==typeof t&&"number"!=typeof t.length)C(i,t),i.options=t;else if(t.length)for(t.length>s&&("string"==typeof t[0]?i.collectionAlias=t[0]:"number"==typeof t[0]&&(i.x=t[0]),r++);o<s;)i[a[o++]]=t[r++];return i.y=i[n.pointValKey],i.x===M&&n&&(i.x=e===M?n.autoIncrement():e),i},toArray:function(){return[this.low,this.high]}})),li=(s.rangearea=t(s.area,{seriesType:"rangearea",pointArrayMap:["low","high"],pointClass:qe,pointValKey:"low",translate:function(){var e=this.axisY;s.area.prototype.translate.apply(this),V(this.points,function(t){null!==t.y&&(t.plotLow=t.plotY,t.plotHigh=e.translate(t.high,0,1,0,1))})},getSegmentPath:function(t){for(var e,i,n=this,a=[],r=t.length,o=j.prototype.getSegmentPath,s=n.options,l=s.step;r--;)e=t[r],a.push({plotX:e.plotX,plotY:e.plotHigh});return i=o.call(n,t),l&&(s.step={left:"right",center:"center",right:"left"}[l=!0===l?"left":l]),o=o.call(n,a),s.step=l,s=[].concat(i,o),o[0]="L",n.areaPath=n.areaPath.concat(i,o),s},drawDataLabels:function(){var t,e,i=this,n=i.data,a=n.length,r=[],o=j.prototype,s=i.options.dataPointText,l=Y[i.chart.guid].inverted;if(s.enabled||i._hasPointLabels){for(t=a;t--;)(e=n[t]).y=e.high,e.plotY=e.plotHigh,r[t]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=!1,l?(s.align="left",s.x=s.xHigh):s.y=s.yHigh;for(o.drawDataLabels.apply(i,arguments),t=a;t--;)(e=n[t]).dataLabelUpper=e.dataLabel,e.dataLabel=r[t],e.y=e.low,e.plotY=e.plotLow,e.below=!0,l?(s.align="right",s.x=s.xLow):s.y=s.yLow;o.drawDataLabels.apply(i,arguments)}},alignDataLabel:s.bar.prototype.alignDataLabel,getSymbol:s.bar.prototype.getSymbol,drawPoints:i}),x.rangesplinearea=z(x.rangearea),s.rangesplinearea=t(s.rangearea,{seriesType:"rangesplinearea",getPointSpline:s.spline.prototype.getPointSpline}),x.rangebar=z(x.bar,x.rangearea,{drawWidth:1,pointRange:null}),s.rangebar=t(s.rangearea,{seriesType:"rangebar",translate:function(){var i,n=this.axisY;ii.translate.apply(this),V(this.points,function(t){var e=t.shapeArgs;t.plotHigh=i=n.translate(t.high,0,1,0,1),t.plotLow=t.plotY,e.y=i,e.height=t.plotY-i,t.trackerArgs=e})},drawGraph:i,pointAttrToOptions:ii.pointAttrToOptions,drawPoints:ii.drawPoints,drawTracker:ii.drawTracker,animate:ii.animate}),j.prototype),ye=Oe.prototype;function di(t,e,i){var n=this,a=Y[e.guid];t.call(n,e,i),a.enablePolarLayout&&(n.closeSegment=function(t){var e=n.axisX.center;t.push("L",e[0],e[1])},n.closedStacks=!0)}function ci(t,e){var i,n=this,a=Y[n.chart.guid],r=n.options.applyAnimation,o=n.group,s=n.markerGroup,l=n.axisX.center,d=a.plotLeft,c=a.plotTop;a.enablePolarLayout?a.renderer.isSVG&&!vt&&(!0===r&&(r={}),e?(o.attrSetters.scaleX=o.attrSetters.scaleY=function(t,e){var i=this;return i[e]=t,i.scaleX!==M&&i.scaleY!==M&&i.element.setAttribute("transform","translate("+i.translateX+","+i.translateY+") scale("+i.scaleX+","+i.scaleY+")"),!1},i={translateX:l[0]+d,translateY:l[1]+c,scaleX:0,scaleY:0},o.attr(i),s&&(s.attrSetters=o.attrSetters,s.attr(i))):(o.animate(i={translateX:d,translateY:c,scaleX:1,scaleY:1},r),s&&s.animate(i,r),n.animate=null)):t.call(n,e)}li.toXY=function(t){var e=Y[this.chart.guid],i=t.plotX,n=t.plotY;t.rectPlotX=i,t.rectPlotY=n,t.deg=i/N*180,i=this.axisX.postTranslate(t.plotX,this.axisY.len-n),t.plotX=t.polarPlotX=i.x-e.plotLeft,t.plotY=t.polarPlotY=i.y-e.plotTop},e(s.area.prototype,"init",di),e(s.splinearea.prototype,"init",di),e(s.spline.prototype,"getPointSpline",function(t,e,i,n){var a,r,o,s,l,d,c,h,p,u,g,f;return Y[this.chart.guid].enablePolarLayout?(r=i.plotX,o=i.plotY,s=e[n-1],h=e[n+1],this.connectEnds&&(s=s||e[e.length-2],h=h||e[1]),s&&h&&(l=s.plotX,d=(1.5*o+s.plotY)/2.5,c=(1.5*r+h.plotX)/2.5,h=(1.5*o+h.plotY)/2.5,p=_.sqrt(_.pow((l=(1.5*r+l)/2.5)-r,2)+_.pow(d-o,2)),u=_.sqrt(_.pow(c-r,2)+_.pow(h-o,2)),f=_.atan2(d-o,l-r),g=_.atan2(h-o,c-r),ot(f-(f=N/2+(f+g)/2))>N/2&&(f-=N),l=r+b(f)*p,d=o+w(f)*p,c=r+b(N+f)*u,h=o+w(N+f)*u,i.rightContX=c,i.rightContY=h),n?(a=["C",s.rightContX||s.plotX,s.rightContY||s.plotY,l||r,d||o,r,o],s.rightContX=s.rightContY=null):a=["M",r,o]):a=t.call(this,e,i,n),a}),e(li,"translate",function(t){var e=this;if(t.call(e),Y[e.chart.guid].enablePolarLayout&&!e.preventPostTranslate)for(var i=e.points,n=i.length;n--;)e.toXY(i[n])}),e(li,"getSegmentPath",function(t,e){var i=this,n=i.points;return Y[i.chart.guid].enablePolarLayout&&!1!==i.options.connectEnds&&e[e.length-1]===n[n.length-1]&&null!==n[0].y&&(i.connectEnds=!0,e=[].concat(e,[n[0]])),t.call(i,e)}),e(li,"animate",ci),e(ii,"animate",ci),e(li,"setTooltipPoints",function(t,e){return Y[this.chart.guid].enablePolarLayout&&C(this.axisX,{tooltipLen:360,tooltipPosName:"deg"}),t.call(this,e)}),e(ii,"translate",function(t){var e,i,n,a,r=this,o=r.axisX,s=r.axisY.len,l=o.center,d=o.startAngleRad,c=Y[r.chart.guid].renderer;if(r.preventPostTranslate=!0,t.call(r),o.radial)for(a=(i=r.points).length;a--;)e=(n=i[a]).barX+d,n.shapeType="path",n.shapeArgs={d:c.symbols.arc(l[0],l[1],s-n.plotY,null,{start:e,end:e+n.dataPointWidth,innerR:s-H(n.yBottom,s)})},r.toXY(n)}),e(ii,"alignDataLabel",function(t,e,i,n,a,r){var o;(Y[this.chart.guid].enablePolarLayout?(o=e.rectPlotX/N*180,null===n.align&&(n.align=20<o&&o<160?"left":200<o&&o<340?"right":"center"),null===n.verticalAlign&&(n.verticalAlign=o<45||315<o?"bottom":135<o&&o<225?"top":"middle"),li.alignDataLabel):t).call(this,e,i,n,a,r)}),e(ye,"_index",function(t,e){var i,n,a=Y[this.chart.guid],a=a.enablePolarLayout?(n=a.axisX[0].center,i=e.chartX-n[0]-a.plotLeft,n=e.chartY-n[1]-a.plotTop,180-L(_.atan2(i,n)/N*180)):t.call(this,e);return a}),e(ye,"_coord",function(t,a){var r=Y[this.chart.guid],o={axisX:[],axisY:[]};return r.enablePolarLayout?V(r.axes,function(t){var e=t.isXAxis,i=t.center,n=a.chartX-i[0]-r.plotLeft,i=a.chartY-i[1]-r.plotTop;o[e?"axisX":"axisY"].push({axis:t,value:t.translate(e?N-_.atan2(n,i):_.sqrt(_.pow(n,2)+_.pow(i,2)),!0)})}):o=t.call(this,a),o})}(jQuery,shield,this),shield.ui.Chart.themes.bootstrap={seriesPalette:["#428BCA","#F0AD4E","#5CB85C","#D9534F","#5BC0DE","#474949","#84B3DC","#DDC01A","#878989","#DFF0D8"],primaryHeader:{style:{color:"#333333"}},secondaryHeader:{style:{color:"#333333"}},backgroundColor:"",borderWidth:0,chartAreaBackgroundColor:"",chartAreaShadow:!1,chartAreaBorderWidth:0,seriesSettings:{scatter:{activeSettings:{pointHoveredState:{drawWidth:4}},pointMark:{enabled:!0,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:null,activeSettings:{pointHoveredState:{innerColor:"#FFFFFF"}}}},area:{drawWidth:2,pointMark:{enabled:!1,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#FFFFFF",activeSettings:{pointHoveredState:{innerColor:null}}}},splinearea:{drawWidth:2,pointMark:{enabled:!1,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#FFFFFF",activeSettings:{pointHoveredState:{innerColor:null}}}},line:{drawWidth:3,shadow:!1,mouseInteractions:!0,pointMark:{enabled:!0,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#FFFFFF",activeSettings:{pointHoveredState:{innerColor:null}}}},spline:{drawWidth:3,shadow:!1,activeSettings:{pointHoveredState:{drawWidth:4}},pointMark:{enabled:!0,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#FFFFFF",activeSettings:{pointHoveredState:{innerColor:null}}}},pie:{dataPointText:{style:{color:"#333333"}}},donut:{dataPointText:{style:{color:"#333333"}}}},axisX:{drawWidth:1,drawColor:"#888888",ticksColor:"#888888",axisTickText:{style:{color:"#333333"},y:17},title:{style:{color:"#333333"}}},axisY:{drawColor:"#888888",ticksColor:"#888888",plotStripColor:"#888888",axisTickText:{style:{color:"#333333"}},title:{style:{color:"#333333"}}},chartLegend:{legendItemSettings:{elementStyle:{color:"#333333"},mouseOverStyle:{color:"#000"},disabledStyle:{color:"#aaaaaa"}}}},shield.ui.Chart.themes.dark={seriesPalette:["#1E97E3","#FF8000","#00FF9C","#FF2A00","#FFC500","#C9C9C9","#FC2150","#0077C6","#99c900","#cc6e38"],primaryHeader:{style:{color:"#FFFFFF"}},secondaryHeader:{style:{color:"#F2F2F2"}},backgroundColor:"#2D2D2D",borderWidth:0,chartAreaBackgroundColor:"#2D2D2D",chartAreaShadow:!1,chartAreaBorderWidth:0,seriesSettings:{scatter:{activeSettings:{pointHoveredState:{drawWidth:4}},pointMark:{enabled:!0,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#2D2D2D",activeSettings:{pointHoveredState:{innerColor:null}}}},area:{drawWidth:2,pointMark:{enabled:!1,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#2D2D2D",activeSettings:{pointHoveredState:{enabled:!1,drawRadius:4}}}},splinearea:{drawWidth:2,pointMark:{enabled:!1,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#2D2D2D",activeSettings:{pointHoveredState:{innerColor:null}}}},line:{drawWidth:3,shadow:!1,mouseInteractions:!0,pointMark:{enabled:!0,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#2D2D2D",activeSettings:{pointHoveredState:{innerColor:null}}}},spline:{drawWidth:3,shadow:!1,activeSettings:{pointHoveredState:{drawWidth:4}},pointMark:{enabled:!0,drawWidth:2,drawRadius:2.5,drawColor:null,innerColor:"#2D2D2D",activeSettings:{pointHoveredState:{innerColor:null}}}},pie:{dataPointText:{style:{color:"#7E7E7E"}}},donut:{dataPointText:{style:{color:"#7E7E7E"}}}},axisX:{drawColor:"#7E7E7E",ticksColor:"#7E7E7E",axisTickText:{style:{color:"#7E7E7E"},y:17},title:{style:{color:"#7E7E7E"}}},axisY:{drawColor:"#7E7E7E",ticksColor:"#7E7E7E",plotStripColor:"#7E7E7E",plotStripDashStyle:"LongDash",axisTickText:{style:{color:"#7E7E7E"}},title:{style:{color:"#7E7E7E"}}},chartLegend:{legendItemSettings:{elementStyle:{color:"#A5A5A5"},mouseOverStyle:{color:"#FFFFFF"},disabledStyle:{color:"#7E7E7E"}}}}; -!function(s,u){for(var l=u.ui.Widget,t=u.Constants,e=u.Class,n=document,E=t.SVG_NS,A=!!n.createElementNS&&!!n.createElementNS(E,"svg").createSVGRect,f=s.map,B=u.to.int,a=u.error,t="CODABAR",o="CODE-11",r="CODE-39",i="CODE-93",c="CODE-128",d="CODE-128-A",h="CODE-128-B",p="CODE-128-C",C="CODE-25-STANDARD",g="CODE-25-INTERLEAVED",y="EAN-8",m="EAN-13",x="UPC-A",O="UPC-E",v="MSI-10",b="MSI-10-10",k="MSI-11",T="MSI-11-10",S={types:[],addType:function(t){this.types[t.prototype.type]=t},byType:function(t){return this.types[t]?new this.types[t]:null}},_=e.extend({type:null,validateRegExp:null,validate:function(t){return!this.validateRegExp||new RegExp(this.validateRegExp).test(t)},encode:null,checksum:null}),w=_.extend({type:o,validateRegExp:"^[\\d\\-]+$",encode:function(t,e){e&&(t+=this.checksum(t)),t="*"+t+"*";for(var n="",o={0:"101011",1:"1101011",2:"1001011",3:"1100101",4:"1011011",5:"1101101",6:"1001101",7:"1010011",8:"1101001",9:"110101","-":"101101","*":"1011001"},r=0;r<t.length;r++)0<n.length&&(n+="0"),n+=o[t.charAt(r)];return[n]},checksum:function(t){var e=this._checksum(t,10,11);return 10<t.length&&(e+=this._checksum(t+e,9,11)+""),e},_checksum:function(t,e,n){for(var o=0,r=1,i=t.length-1;0<=i;i--)o+=r*("-"==t.charAt(i)?10:B(t.charAt(i))),r=e<=r?1:r+1;return o%n+""}}),I=(S.addType(w),_.extend({type:m,validateRegExp:"^[\\d]{12}$",encodingTable:{0:{lo:"0001101",le:"0100111",r:"1110010"},1:{lo:"0011001",le:"0110011",r:"1100110"},2:{lo:"0010011",le:"0011011",r:"1101100"},3:{lo:"0111101",le:"0100001",r:"1000010"},4:{lo:"0100011",le:"0011101",r:"1011100"},5:{lo:"0110001",le:"0111001",r:"1001110"},6:{lo:"0101111",le:"0000101",r:"1010000"},7:{lo:"0111011",le:"0010001",r:"1000100"},8:{lo:"0110111",le:"0001001",r:"1001000"},9:{lo:"0001011",le:"0010111",r:"1110100"}},parityTable:{0:["lo","lo","lo","lo","lo","lo"],1:["lo","lo","le","lo","le","le"],2:["lo","lo","le","le","lo","le"],3:["lo","lo","le","le","le","lo"],4:["lo","le","lo","lo","le","le"],5:["lo","le","le","lo","lo","le"],6:["lo","le","le","le","lo","lo"],7:["lo","le","lo","le","lo","le"],8:["lo","le","lo","le","le","lo"],9:["lo","le","le","lo","le","lo"]},encode:function(t,e){e&&(t+=this.checksum(t));var n,o=t.substring(0,1),r=t.substring(1,7),i=t.substring(7),c="",e=[],d=this.encodingTable,h=this.parityTable;for(c+="101",e.push(0,1,2),n=0;n<r.length;n++)c+=d[r.charAt(n)][h[o][n]];for(t=(c+="01010").length,e.push(t-5,t-4,t-3,t-2,t-1),n=0;n<i.length;n++)c+=d[i.charAt(n)].r;return t=(c+="101").length,e.push(t-3,t-2,t-1),[c,e]},checksum:function(t){for(var e=0,n=1,o=t.length-1;0<=o;o--)e+=B(t.charAt(o))*(n++%2?3:1);return 10-e%10+""}})),w=(S.addType(I),I.extend({type:y,validateRegExp:"^[\\d]{7}$",encode:function(t,e){e&&(t+=this.checksum(t));var n,o=t.substring(0,4),r=t.substring(4),i="",e=[],c=this.encodingTable;this.parityTable;for(i+="101",e.push(0,1,2),n=0;n<o.length;n++)i+=c[o.charAt(n)].lo;for(t=(i+="01010").length,e.push(t-5,t-4,t-3,t-2,t-1),n=0;n<r.length;n++)i+=c[r.charAt(n)].r;return t=(i+="101").length,e.push(t-3,t-2,t-1),[i,e]}})),N=(S.addType(w),I.extend({type:x,validateRegExp:"^\\d{11}$",encode:function(t,e){t=I.prototype.encode.call(this,"0"+t,e),e=t[0].length;return t[1].push(3,4,5,6,7,8,9,e-4,e-5,e-6,e-7,e-8,e-9,e-10),t},checksum:function(t){return 11==t.length&&(t="0"+t),I.prototype.checksum.call(this,t)}})),w=(S.addType(N),N.extend({type:O,validateRegExp:"^[0|1]\\d{6}$",_upce2upca:function(t){var e=t.substring(t.length-1);return"0"==e||"1"==e||"2"==e?t.substring(0,2)+t.charAt(5)+"0000"+t.substring(2,5):"3"==e?t.substring(0,3)+"00000"+t.substring(4,6):"4"==e?t.substring(0,4)+"00000"+t.charAt(4):t.substring(0,5)+"0000"+e},encode:function(t,e){for(var n=this.checksum(t),o="",r=t.charAt(0),i=t.substring(1),c=[["EEEOOO","OOOEEE"],["EEOEOO","OOEOEE"],["EEOOEO","OOEEOE"],["EEOOOE","OOEEEO"],["EOEEOO","OEOOEE"],["EOOEEO","OEEOOE"],["EOOOEE","OEEEOO"],["EOEOEO","OEOEOE"],["EOEOOE","OEOEEO"],["EOOEOE","OEEOEO"]][B(n)][B(r)],d=0;d<i.length;d++)o+=this.encodingTable[i.charAt(d)]["O"==c.charAt(d)?"lo":"le"];return["101"+o+"010101",[0,1,2,45,46,47,48,49,50]]},checksum:function(t){var e=t.charAt(0),t=t.substring(1);return N.prototype.checksum.call(this,e+this._upce2upca(t))}})),w=(S.addType(w),_.extend({type:r,validateRegExp:"^[0-9A-Z\\-\\. \\$\\/\\+\\%\\*]+$",encode:function(t,e){e&&(t+=this.checksum(t)),t="*"+t+"*";for(var n="",o={0:"101001101101",1:"110100101011",2:"101100101011",3:"110110010101",4:"101001101011",5:"110100110101",6:"101100110101",7:"101001011011",8:"110100101101",9:"101100101101",A:"110101001011",B:"101101001011",C:"110110100101",D:"101011001011",E:"110101100101",F:"101101100101",G:"101010011011",H:"110101001101",I:"101101001101",J:"101011001101",K:"110101010011",L:"101101010011",M:"110110101001",N:"101011010011",O:"110101101001",P:"101101101001",Q:"101010110011",R:"110101011001",S:"101101011001",T:"101011011001",U:"110010101011",V:"100110101011",W:"110011010101",X:"100101101011",Y:"110010110101",Z:"100110110101","-":"100101011011",".":"110010101101"," ":"100110101101",$:"100100100101","/":"100100101001","+":"100101001001","%":"101001001001","*":"100101101101"},r=0;r<t.length;r++)0<r&&(n+="0"),n+=o[t.charAt(r)];return[n]},checksum:function(t){for(var e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*",n=0,o=0;o<t.length;o++)n+=e.indexOf(t.charAt(o));return e.charAt(n%43)}})),w=(S.addType(w),_.extend({type:i,validateRegExp:"^[0-9A-Z\\-\\. \\$\\/\\+\\%\\*]+$",encode:function(t,e){e&&(t+=this.checksum(t)),t="*"+t+"*";for(var n="",o={0:"100010100",1:"101001000",2:"101000100",3:"101000010",4:"100101000",5:"100100100",6:"100100010",7:"101010000",8:"100010010",9:"100001010",A:"110101000",B:"110100100",C:"110100010",D:"110010100",E:"110010010",F:"110001010",G:"101101000",H:"101100100",I:"101100010",J:"100110100",K:"100011010",L:"101011000",M:"101001100",N:"101000110",O:"100101100",P:"100010110",Q:"110110100",R:"110110010",S:"110101100",T:"110100110",U:"110010110",V:"110011010",W:"101101100",X:"101100110",Y:"100110110",Z:"100111010","-":"100101110",".":"111010100"," ":"111010010",$:"111001010","/":"101101110","+":"101110110","%":"110101110","@":"100100110","#":"111011010","&":"111010110","~":"100110010","*":"101011110"},r=0;r<t.length;r++)n+=o[t.charAt(r)];return[n+="1"]},checksum:function(t){var e=t.length;return(t=(t+=this._checksum(t,20,47))+this._checksum(t,15,47)).substring(e,e+2)},_checksum:function(t,e,n){for(var o="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%@#&~*",r=0,i=1,c=t.length-1;0<=c;c--)r+=o.indexOf(t.charAt(c))*i++,e<i&&(i=1);return o.charAt(r%n)}})),w=(S.addType(w),_.extend({type:"POSTNET",validate:function(t){return/^\d+$/.test(t)&&(5==t.length||9==t.length||11==t.length)},encode:function(t,e){e&&(t+=this.checksum(t));for(var n="",o=["11000","00011","00101","00110","01001","01010","01100","10001","10010","10100"],r=0;r<t.length;r++)n+=o[t.charAt(r)];return["1"+n+"1"]},checksum:function(t){for(var e=0,n=0;n<t.length;n++)e+=B(t.charAt(n));return 10-e%10+""}})),w=(S.addType(w),_.extend({validateRegExp:"^\\d+$",encode:function(t,e){e&&(t+=this.checksum(t));for(var n="",o=["100100100100","100100100110","100100110100","100100110110","100110100100","100110100110","100110110100","100110110110","110100100100","110100100110"],r=0;r<t.length;r++)n+=o[t.charAt(r)];return["110"+n+"1001"]},_mod10Checksum:function(t){for(var e=0,n=0,o=t.length-1;0<=o;o--){var r=B(t.charAt(o))*(n%2?1:2);e+=9<r?B((r+="").charAt(0))+B(r.charAt(1)):r,n++}return 9*e%10+""},_mod11Checksum:function(t){for(var e=0,n=2,o=t.length-1;0<=o;o--)e+=B(t.charAt(o))*n,n=7<=n?2:n+1;return 11-e%11+""}})),R=w.extend({type:v,checksum:function(t){return this._mod10Checksum(t)}}),R=(S.addType(R),w.extend({type:b,checksum:function(t){var e=this._mod10Checksum(t);return e+this._mod10Checksum(t+e)}})),R=(S.addType(R),w.extend({type:k,checksum:function(t){return this._mod11Checksum(t)}})),R=(S.addType(R),w.extend({type:T,checksum:function(t){var e=this._mod11Checksum(t);return e+this._mod10Checksum(t+e)}})),w=(S.addType(R),_.extend({type:t,validateRegExp:"^[A|B|C|D][\\d\\-\\$\\:\\/\\.\\+]+[A|B|C|D]$",encode:function(t,e){for(var n="",o={0:"101010011",1:"101011001",2:"101001011",3:"110010101",4:"101101001",5:"110101001",6:"100101011",7:"100101101",8:"100110101",9:"110100101","-":"101001101",$:"101100101",":":"1101011011","/":"1101101011",".":"1101101101","+":"101100110011",A:"1011001001",B:"1010010011",C:"1001001011",D:"1010011001"},r=0;r<t.length;r++)0<r&&(n+="0"),n+=o[t.charAt(r)];return[n]},checksum:function(t){return""}})),R=(S.addType(w),_.extend({type:c,encodingTable:[{A:" ",B:" ",C:"00",E:"11011001100"},{A:"!",B:"!",C:"01",E:"11001101100"},{A:'"',B:'"',C:"02",E:"11001100110"},{A:"#",B:"#",C:"03",E:"10010011000"},{A:"$",B:"$",C:"04",E:"10010001100"},{A:"%",B:"%",C:"05",E:"10001001100"},{A:"&",B:"&",C:"06",E:"10011001000"},{A:"'",B:"'",C:"07",E:"10011000100"},{A:"(",B:"(",C:"08",E:"10001100100"},{A:")",B:")",C:"09",E:"11001001000"},{A:"*",B:"*",C:"10",E:"11001000100"},{A:"+",B:"+",C:"11",E:"11000100100"},{A:",",B:",",C:"12",E:"10110011100"},{A:"-",B:"-",C:"13",E:"10011011100"},{A:".",B:".",C:"14",E:"10011001110"},{A:"/",B:"/",C:"15",E:"10111001100"},{A:"0",B:"0",C:"16",E:"10011101100"},{A:"1",B:"1",C:"17",E:"10011100110"},{A:"2",B:"2",C:"18",E:"11001110010"},{A:"3",B:"3",C:"19",E:"11001011100"},{A:"4",B:"4",C:"20",E:"11001001110"},{A:"5",B:"5",C:"21",E:"11011100100"},{A:"6",B:"6",C:"22",E:"11001110100"},{A:"7",B:"7",C:"23",E:"11101101110"},{A:"8",B:"8",C:"24",E:"11101001100"},{A:"9",B:"9",C:"25",E:"11100101100"},{A:":",B:":",C:"26",E:"11100100110"},{A:";",B:";",C:"27",E:"11101100100"},{A:"<",B:"<",C:"28",E:"11100110100"},{A:"=",B:"=",C:"29",E:"11100110010"},{A:">",B:">",C:"30",E:"11011011000"},{A:"?",B:"?",C:"31",E:"11011000110"},{A:"@",B:"@",C:"32",E:"11000110110"},{A:"A",B:"A",C:"33",E:"10100011000"},{A:"B",B:"B",C:"34",E:"10001011000"},{A:"C",B:"C",C:"35",E:"10001000110"},{A:"D",B:"D",C:"36",E:"10110001000"},{A:"E",B:"E",C:"37",E:"10001101000"},{A:"F",B:"F",C:"38",E:"10001100010"},{A:"G",B:"G",C:"39",E:"11010001000"},{A:"H",B:"H",C:"40",E:"11000101000"},{A:"I",B:"I",C:"41",E:"11000100010"},{A:"J",B:"J",C:"42",E:"10110111000"},{A:"K",B:"K",C:"43",E:"10110001110"},{A:"L",B:"L",C:"44",E:"10001101110"},{A:"M",B:"M",C:"45",E:"10111011000"},{A:"N",B:"N",C:"46",E:"10111000110"},{A:"O",B:"O",C:"47",E:"10001110110"},{A:"P",B:"P",C:"48",E:"11101110110"},{A:"Q",B:"Q",C:"49",E:"11010001110"},{A:"R",B:"R",C:"50",E:"11000101110"},{A:"S",B:"S",C:"51",E:"11011101000"},{A:"T",B:"T",C:"52",E:"11011100010"},{A:"U",B:"U",C:"53",E:"11011101110"},{A:"V",B:"V",C:"54",E:"11101011000"},{A:"W",B:"W",C:"55",E:"11101000110"},{A:"X",B:"X",C:"56",E:"11100010110"},{A:"Y",B:"Y",C:"57",E:"11101101000"},{A:"Z",B:"Z",C:"58",E:"11101100010"},{A:"[",B:"[",C:"59",E:"11100011010"},{A:"\\",B:"\\",C:"60",E:"11101111010"},{A:"]",B:"]",C:"61",E:"11001000010"},{A:"^",B:"^",C:"62",E:"11110001010"},{A:"_",B:"_",C:"63",E:"10100110000"},{A:"NUL",B:"`",C:"64",E:"10100001100"},{A:"SOH",B:"a",C:"65",E:"10010110000"},{A:"STX",B:"b",C:"66",E:"10010000110"},{A:"ETX",B:"c",C:"67",E:"10000101100"},{A:"EOT",B:"d",C:"68",E:"10000100110"},{A:"ENQ",B:"e",C:"69",E:"10110010000"},{A:"ACK",B:"f",C:"70",E:"10110000100"},{A:"BEL",B:"g",C:"71",E:"10011010000"},{A:"BS",B:"h",C:"72",E:"10011000010"},{A:"HT",B:"i",C:"73",E:"10000110100"},{A:"LF",B:"j",C:"74",E:"10000110010"},{A:"VT",B:"k",C:"75",E:"11000010010"},{A:"FF",B:"l",C:"76",E:"11001010000"},{A:"CR",B:"m",C:"77",E:"11110111010"},{A:"SO",B:"n",C:"78",E:"11000010100"},{A:"SI",B:"o",C:"79",E:"10001111010"},{A:"DLE",B:"p",C:"80",E:"10100111100"},{A:"DC1",B:"q",C:"81",E:"10010111100"},{A:"DC2",B:"r",C:"82",E:"10010011110"},{A:"DC3",B:"s",C:"83",E:"10111100100"},{A:"DC4",B:"t",C:"84",E:"10011110100"},{A:"NAK",B:"u",C:"85",E:"10011110010"},{A:"SYN",B:"v",C:"86",E:"11110100100"},{A:"ETB",B:"w",C:"87",E:"11110010100"},{A:"CAN",B:"x",C:"88",E:"11110010010"},{A:"EM",B:"y",C:"89",E:"11011011110"},{A:"SUB",B:"z",C:"90",E:"11011110110"},{A:"ESC",B:"{",C:"91",E:"11110110110"},{A:"FS",B:"|",C:"92",E:"10101111000"},{A:"GS",B:"}",C:"93",E:"10100011110"},{A:"RS",B:"~",C:"94",E:"10001011110"},{A:"US",B:"DEL",C:"95",E:"10111101000"},{A:"FNC3",B:"FNC3",C:"96",E:"10111100010"},{A:"FNC2",B:"FNC2",C:"97",E:"11110101000"},{A:"SHIFT",B:"SHIFT",C:"98",E:"11110100010"},{A:"CodeC",B:"CodeC",C:"99",E:"10111011110"},{A:"CodeB",B:"FNC4",C:"CodeB",E:"10111101110"},{A:"FNC4",B:"CodeA",C:"CodeA",E:"11101011110"},{A:"FNC1",B:"FNC1",C:"FNC1",E:"11110101110"},{A:"StartA",B:"StartA",C:"StartA",E:"11010000100"},{A:"StartB",B:"StartB",C:"StartB",E:"11010010000"},{A:"StartC",B:"StartC",C:"StartC",E:"11010011100"},{A:"Stop",B:"Stop",C:"Stop",E:"11000111010"}],validate:function(t){for(var e=0;e<t.length;e++)if(!this._getEncInfo(t.charAt(e)))return!1;return!0},_encode:function(t,e){e=e||!1;var n=[],t=this._findPrefix(t),o=t[0][0],r=t[1],t=t[2],n=n.concat(this._encodeCodeset(r,e?"Start"+o:"Code"+o,o));return(n=t&&0<t.length?n.concat(this._encode(t,!1)):n)&&0<n.length&&(n[0]=n[0].replace("Code","Start")),n},_findPrefix:function(t){for(var e,n,o=this,r="",i="",c=0;c<t.length;c++){if(n=t.charAt(c),0===c)o._getEncInfo(n,"A")&&(i+="A"),o._getEncInfo(n,"B")&&(i+="B"),o._getEncInfo(n,"C")&&(i+="C");else if(e=i,o._getEncInfo(n,"A")||(i=i.replace("A","")),o._getEncInfo(n,"B")||(i=i.replace("B","")),(i=o._getEncInfo(n,"C")?i:i.replace("C","")).length<=0)return[e.split(""),r,t.substring(c)];r+=n}return[i.split(""),t,""]},_encodeOptimized:function(t){t=this._encode(t,!0),t=this._optimizeForC(t);return(t=this._optimizeShifts(t))&&0<t.length&&(t[0]=t[0].replace("Code","Start")),t},_optimizeForC:function(t){var e,t=this._splitOptimizeForC(t),n=t[0],o=t[1],t=t[2],r=[];if(n&&0<n.length&&(r=r.concat(n)),o&&0<o.length)for(r.push(o[0]),e=1;e<o.length;e+=2)r.push(o[e]+""+o[e+1]);return r=t&&0<t.length?r.concat(this._optimizeForC(t)):r},_splitOptimizeForC:function(t){if(!t||t.length<=0)return[[],[],[]];if(/^(Code|Start)[A|B|C]$/.test(t[0])){if(3==t.length&&/^\d$/.test(t[1])&&/^\d$/.test(t[2]))return[[],["CodeC",t[1],t[2]],[]];for(var e,n,o=[],r=-1,i=-1,c=0;c<t.length;c++)if(/^(Code|Start)[A|B|C]$/.test(t[c])&&(e=t[c].substring(t[c].length-1)),/^\d$/.test(t[c])&&-1==r&&(r=c,i=-1),-1<r&&!/^\d$/.test(t[c])&&(i=c-1),-1<r&&c>=t.length-1&&(i=c),-1<r&&-1<i){if(4<=(n=i-r+1))return[1==r?[]:t.slice(0,r),["CodeC"].concat(t.slice(r,n=i+(n%2==0?1:0))),o=n<t.length?["Code"+e].concat(t.slice(n)):o];r=i=-1}}return[t,[],[]]},_optimizeShifts:function(t){return t},_encodeCodeset:function(t,e,n){return"A"==n?this._encodeA(t,e):"B"==n?this._encodeB(t,e):"C"==n?this._encodeC(t,e):null},_encodeA:function(t,e){return[e].concat(t.split(""))},_encodeB:function(t,e){return[e].concat(t.split(""))},_encodeC:function(t,e){for(var n=[e],o=0;o<t.length;o+=2)n.push(t.charAt(o)+t.charAt(o+1));return n},_getEncInfo:function(t,e){e=e||null;for(var n,o=this.encodingTable,r=0;r<o.length;r++)if(e){if(o[r][e]==t)return(n=o[r]).pos=r,n;if("100"==t||"101"==t||"102"==t)return(n=o[B(t)]).pos=r,n}else if(o[r].A==t||o[r].B==t||o[r].C==t)return(n=o[r]).pos=r,n;return null},encode:function(t,e){for(var n=this,o="",r=n.checksum(t),i=n._encodeOptimized(t),c=i[0].charAt(i[0].length-1),d=0;d<i.length;d++)o+=n._getEncInfo(i[d],c).E,/^(Start|Code)[A|B|C]$/.test(i[d])&&(c=i[d].charAt(i[d].length-1));return[o+=n._getEncInfo(r,"C").E+n.encodingTable[106].E+"11"]},checksum:function(t){for(var e=this._encodeOptimized(t),n=this._getEncInfo(e[0]).pos,o=1;o<e.length;o++)n+=this._getEncInfo(e[o]).pos*o;return 10<(t=n%103)?t+"":"0"+t}})),w=(S.addType(R),R.extend({type:d,validate:function(t){for(var e=0;e<t.length;e++)if(!this._getEncInfo(t.charAt(e),"A"))return!1;return!0},_encodeOptimized:function(t){return this._encodeA(t,"StartA")}})),w=(S.addType(w),R.extend({type:h,validate:function(t){for(var e=0;e<t.length;e++)if(!this._getEncInfo(t.charAt(e),"B"))return!1;return!0},_encodeOptimized:function(t){return this._encodeB(t,"StartB")}})),w=(S.addType(w),R.extend({type:p,validate:function(t){return/^\d+$/.test(t)&&t.length%2==0},_encodeOptimized:function(t){return this._encodeC(t,"StartC")}})),R=(S.addType(w),_.extend({type:C,validateRegExp:"^[\\d\\-]+$",encode:function(t,e){e&&(t+=this.checksum(t)),t="["+t+"]";for(var n="",o={0:"10101110111010",1:"11101010101110",2:"10111010101110",3:"11101110101010",4:"10101110101110",5:"11101011101010",6:"10111011101010",7:"10101011101110",8:"11101010111010",9:"10111010111010","[":"11011010","]":"1101011"},r=0;r<t.length;r++)n+=o[t.charAt(r)];return[n]},checksum:function(t){return this._checksum(t,3,1,10)},_checksum:function(t,e,n,o){for(var r="0123456789",i=0,c=e,d=t.length-1;0<=d;d--)i+=r.indexOf(t.charAt(d))*c,c=c==e?n:e;return r.charAt(i=0!==(i%=o)?o-i:i)}})),w=(S.addType(R),R.extend({type:g,encode:function(t,e){e&&(t+=this.checksum(t)),t="["+(t=t.length%2!=0?"0"+t:t)+"]";for(var n,o="",r={"00":"10101100110010","01":"10010110110100","02":"10100110110100","03":"10010011011010","04":"10101100110100","05":"10010110011010","06":"10100110011010","07":"10101101100100","08":"10010110110010","09":"10100110110010",10:"11010100100110",11:"11001010101100",12:"11010010101100",13:"11001001010110",14:"11010100101100",15:"11001010010110",16:"11010010010110",17:"11010101001100",18:"11001010100110",19:"11010010100110",20:"10110100100110",21:"10011010101100",22:"10110010101100",23:"10011001010110",24:"10110100101100",25:"10011010010110",26:"10110010010110",27:"10110101001100",28:"10011010100110",29:"10110010100110",30:"11011010010010",31:"11001101010100",32:"11011001010100",33:"11001100101010",34:"11011010010100",35:"11001101001010",36:"11011001001010",37:"11011010100100",38:"11001101010010",39:"11011001010010",40:"10101100100110",41:"10010110101100",42:"10100110101100",43:"10010011010110",44:"10101100101100",45:"10010110010110",46:"10100110010110",47:"10101101001100",48:"10010110100110",49:"10100110100110",50:"11010110010010",51:"11001011010100",52:"11010011010100",53:"11001001101010",54:"11010110010100",55:"11001011001010",56:"11010011001010",57:"11010110100100",58:"11001011010010",59:"11010011010010",60:"10110110010010",61:"10011011010100",62:"10110011010100",63:"10011001101010",64:"10110110010100",65:"10011011001010",66:"10110011001010",67:"10110110100100",68:"10011011010010",69:"10110011010010",70:"10101001100110",71:"10010101101100",72:"10100101101100",73:"10010010110110",74:"10101001101100",75:"10010100110110",76:"10100100110110",77:"10101011001100",78:"10010101100110",79:"10100101100110",80:"11010100110010",81:"11001010110100",82:"11010010110100",83:"11001001011010",84:"11010100110100",85:"11001010011010",86:"11010010011010",87:"11010101100100",88:"11001010110010",89:"11010010110010",90:"10110100110010",91:"10011010110100",92:"10110010110100",93:"10011001011010",94:"10110100110100",95:"10011010011010",96:"10110010011010",97:"10110101100100",98:"10011010110010",99:"10110010110010","[":"1010","]":"1101"},i=0;i<t.length;i+=n)n=isNaN(t.charAt(i))?1:2,o+=r[t.substr(i,n)];return[o]}})),z=(S.addType(w),{types:[],addType:function(t){this.types[t.prototype.type]=t},byType:function(t,e){return this.types[t]?new this.types[t](e):null}}),$=e.extend({type:null,init:function(t){var e=t.style;this.options=t,this.width=t.width-e.paddingLeft-e.paddingRight,this.height=t.height-e.paddingTop-e.paddingBottom,A||n.namespaces.scvbarcode||n.namespaces.add("scvbarcode","urn:schemas-microsoft-com:vml","#default#VML")},all:function(t,e){function n(t){return s("<div/>").html(t).text()}var o=this,r=o.options,i=r.style,c=r.text.style,d="",h="",l=100<o.width?n("Demo Version"):n("Demo"),a=n("http://www.shieldui.com");u.guid();return i.paddingLeft&&(d+="margin-left:"+i.paddingLeft+"px;"),i.paddingTop&&(d+="margin-top:"+i.paddingTop+"px;"),i.paddingBottom&&(d+="margin-bottom:"+i.paddingBottom+"px;"),i.paddingRight&&(d+="margin-right:"+i.paddingRight+"px;"),h+=A?'<text x="'+o.width+'" y="'+(o.height-c.paddingBottom)+'" fill="#999999" text-anchor="end" font-size="12" style="cursor:pointer; z-index:150; font-size:12px;" onClick="javascript: location.href = \''+a+"';\">"+l+"</text>":'<div style="position:absolute; width:'+(o.width+2)+"px; text-align:right; color:#999999; cursor:pointer; z-index:150; top:"+(r.height-12-c.paddingBottom)+'px; font-size:12px;"><a href="'+a+'" style="color:#999999; text-decoration:none; background-color:#fdfdfd; font-size:12px;">'+l+"</a></div>",A?'<svg xmlns="'+E+'" version="1.1" width="'+o.width+'" height="'+o.height+'" shape-rendering="crispEdges"'+(d?' style="'+d+'" ':"")+">"+t+e+h+"</svg>":'<scvbarcode:group style="position:relative; width:'+o.width+"px; height:"+o.height+"px; "+d+'" coordsize="'+o.width+","+o.height+'">'+t+e+h+"</scvbarcode:group>"},barcode:function(t){for(var e,n,o=this.options.style,r=this.options.text,i=r.style,c=t[0],d=t[1]||[],t=r.enabled?i.fontSize+i.paddingTop+i.paddingBottom:0,h=this.width/c.length,l=this.height-t-(0<d.length?5:0),a=5+l,s=[],u=0;u<c.length;u++){var E=c.charAt(u);if("1"==E){for(var p=u*h,C=l,g=0;g<d.length;g++)if(d[g]==u){C=a;break}p={x1:p,y1:0,x2:p,y2:C,w:h};1==B(e)&&(p={x1:(n=s.pop()).x1,y1:n.y1,x2:n.x2,y2:n.y2,w:n.w+h}),s.push(p)}e=E}return f(s,function(t){return A?'<line x1="'+(t.x1+t.w/2)+'" y1="'+t.y1+'" x2="'+(t.x2+t.w/2)+'" y2="'+t.y2+'" style="stroke:'+o.color+"; stroke-width:"+t.w+'" />':'<scvbarcode:line from="'+(t.x1+t.w/2)+","+t.y1+'" to="'+(t.x2+t.w/2)+","+t.y2+'" strokecolor="'+o.color+'" strokeweight="'+t.w+'px;" stroke="true" />'}).join("")},text:function(t){var e=this,n=e.options.text,o=n.style,r=n.enabled?o.fontSize+o.paddingTop+o.paddingBottom:0;return n.enabled?A?'<text x="'+e.width/2+'" y="'+(e.height-o.paddingBottom)+'" fill="'+o.color+'" text-anchor="middle" font-size="'+o.fontSize+'" font-family="'+o.fontFamily+';">'+t+"</text>":'<div style="position:absolute; width:'+e.width+"px; text-align:center; color:"+o.color+"; top:"+(e.options.height-r-o.paddingBottom)+"px; font-size:"+o.fontSize+"px; font-family:"+o.fontFamily+';">'+t+"</div>":""}}),D=[t,o,r,i,c,d,h,p,y,m,x,O,v,b,k,T,C,g],F=0;F<D.length;F++)z.addType($.extend({type:D[F]}));_=$.extend({type:"POSTNET",barcode:function(t){for(var e=this.options.style,n=this.options.text,o=n.style,r=t[0],t=n.enabled?o.fontSize+o.paddingTop+o.paddingBottom:0,i=this.width/(2*r.length-1),c=this.height-t,d=[],h=0;h<r.length;h++){var l=h*i*2,a="1"==r.charAt(h)?0:c/2;d.push({x1:l,y1:a,x2:l,y2:c,w:i})}return f(d,function(t){return A?'<line x1="'+(t.x1+t.w/2)+'" y1="'+t.y1+'" x2="'+(t.x2+t.w/2)+'" y2="'+t.y2+'" style="stroke:'+e.color+"; stroke-width:"+t.w+'" />':'<scvbarcode:line from="'+(t.x1+t.w/2)+","+t.y1+'" to="'+(t.x2+t.w/2)+","+t.y2+'" strokecolor="'+e.color+'" strokeweight="'+t.w+'px;" stroke="true" />'}).join("")}}),z.addType(_),R=l.extend({init:function(){l.fn.init.apply(this,arguments);var t,e=this.options,n=e.style,o=e.type,r=e.dieOnError,i=e.value+"",c=S.byType(o),d=s(this.element),h="";c?c.validate(i)?(t=z.byType(o,e))?(d.css({background:n.background,borderColor:n.borderColor,borderStyle:n.borderStyle,borderWidth:n.borderWidth,width:e.width,height:e.height}),n=c.encode(i,e.checksum),n=t.barcode(n),e.text.enabled&&(h=t.text(i+(e.text.checksum?c.checksum(i):""))),d.html(t.all(n,h))):a("Invalid barcode type (2)",r):a("Invalid barcode value: "+i,r):a("Invalid barcode type: "+o,r)},destroy:function(){this.element.empty(),l.fn.destroy.call(this)}});R.defaults={value:null,type:null,checksum:!0,width:300,height:100,style:{background:null,borderColor:null,borderStyle:null,borderWidth:0,color:"#000000",paddingTop:5,paddingLeft:5,paddingRight:5,paddingBottom:5},text:{enabled:!1,checksum:!1,style:{color:"#000000",fontFamily:"Segoe UI, Tahoma, Verdana, sans-serif",fontSize:13,paddingTop:2,paddingBottom:0}}},u.ui.plugin("Barcode",R)}(jQuery,shield); -!function(_,v){function C(e){return m(e,10).toString(2)}function V(e,t){for(e+="";e.length<t;)e="0"+e;return e}function h(e,t){for(e+="";e.length<t;)e+="0";return e}var d=v.ui.Widget,e=v.Constants,t=v.Class,r=document,M=e.SVG_NS,p=!!r.createElementNS&&!!r.createElementNS(M,"svg").createSVGRect,L=_.map,m=v.to.int,f=v.error,n="byte",o="numeric",l="alphanumeric",u={modes:[],addMode:function(e){this.modes[e.prototype.mode]=e},byMode:function(e){return this.modes[e]?new this.modes[e]:null}},e=t.extend({mode:null,codeMode:null,validateRegex:null,_verErrLenTable:{"1L":152,"1M":128,"1Q":104,"1H":72,"2L":272,"2M":224,"2Q":176,"2H":128,"3L":440,"3M":352,"3Q":272,"3H":208,"4L":640,"4M":512,"4Q":384,"4H":288,"5L":864,"5M":688,"5Q":496,"5H":368,"6L":1088,"6M":864,"6Q":608,"6H":480,"7L":1248,"7M":992,"7Q":704,"7H":528,"8L":1552,"8M":1232,"8Q":880,"8H":688,"9L":1856,"9M":1456,"9Q":1056,"9H":800,"10L":2192,"10M":1728,"10Q":1232,"10H":976,"11L":2592,"11M":2032,"11Q":1440,"11H":1120,"12L":2960,"12M":2320,"12Q":1648,"12H":1264,"13L":3424,"13M":2672,"13Q":1952,"13H":1440,"14L":3688,"14M":2920,"14Q":2088,"14H":1576,"15L":4184,"15M":3320,"15Q":2360,"15H":1784,"16L":4712,"16M":3624,"16Q":2600,"16H":2024,"17L":5176,"17M":4056,"17Q":2936,"17H":2264,"18L":5768,"18M":4504,"18Q":3176,"18H":2504,"19L":6360,"19M":5016,"19Q":3560,"19H":2728,"20L":6888,"20M":5352,"20Q":3880,"20H":3080,"21L":7456,"21M":5712,"21Q":4096,"21H":3248,"22L":8048,"22M":6256,"22Q":4544,"22H":3536,"23L":8752,"23M":6880,"23Q":4912,"23H":3712,"24L":9392,"24M":7312,"24Q":5312,"24H":4112,"25L":10208,"25M":8e3,"25Q":5744,"25H":4304,"26L":10960,"26M":8496,"26Q":6032,"26H":4768,"27L":11744,"27M":9024,"27Q":6464,"27H":5024,"28L":12248,"28M":9544,"28Q":6968,"28H":5288,"29L":13048,"29M":10136,"29Q":7288,"29H":5608,"30L":13880,"30M":10984,"30Q":7880,"30H":5960,"31L":14744,"31M":11640,"31Q":8264,"31H":6344,"32L":15640,"32M":12328,"32Q":8920,"32H":6760,"33L":16568,"33M":13048,"33Q":9368,"33H":7208,"34L":17528,"34M":13800,"34Q":9848,"34H":7688,"35L":18448,"35M":14496,"35Q":10288,"35H":7888,"36L":19472,"36M":15312,"36Q":10832,"36H":8432,"37L":20528,"37M":15936,"37Q":11408,"37H":8768,"38L":21616,"38M":16816,"38Q":12016,"38H":9136,"39L":22496,"39M":17728,"39Q":12656,"39H":9776,"40L":23648,"40M":18672,"40Q":13328,"40H":10208},_errorCorrectionToMask:{L:"01",M:"00",Q:"11",H:"10"},_formatInformation:{"00000":"101010000010010","00001":"101000100100101","00010":"101111001111100","00011":"101101101001011","00100":"100010111111001","00101":"100000011001110","00110":"100111110010111","00111":"100101010100000","01000":"111011111000100","01001":"111001011110011","01010":"111110110101010","01011":"111100010011101","01100":"110011000101111","01101":"110001100011000","01110":"110110001000001","01111":"110100101110110",1e4:"001011010001001",10001:"001001110111110",10010:"001110011100111",10011:"001100111010000",10100:"000011101100010",10101:"000001001010101",10110:"000110100001100",10111:"000100000111011",11e3:"011010101011111",11001:"011000001101000",11010:"011111100110001",11011:"011101000000110",11100:"010010010110100",11101:"010000110000011",11110:"010111011011010",11111:"010101111101101"},validate:function(e){return!this.validateRegex||new RegExp(this.validateRegex).test(e)},encode:function(e,t){var r=this,n=r._getVersion(e,t),o=21+4*(n-1),l=8+o,i=n+t,a=r._getFormatData(e,t),s=r.encodeValue(e),e=r._getDataLength(e,t),c=4<e-(a.length+s.length)?4:e-(a.length+s.length),s=h(s,s.length+c),c=r._getBinaryValues(a+s);return s=c.join(""),s=r._padEncodedToLength(s,e),c=r._getBinaryValues(s),a=r._getIntegerValues(c),s=r._getEC(i,void 0,a),r._getBinaryMatrix(s,n,o,l,t)},encodeValue:null,_getBinaryMatrix:function(e,t,r,n,o){for(var l,i,a,s,c,h,d,f=this,u=["000","001","010","011","100","101","110","111"],g=[],_=[],v=[],M=f._getPositionAdjustmentsTable(),p=0;p<n;p++)for(_[p]=[],c=0;c<n;c++)_[p][c]=0;for(p=0;p<r;p++)v.push(new Array(r));if(f._fullFinderPattern(_,4,4),f._fillFinderPatternFilledValues(v,0,0),f._fullFinderPattern(_,4,n-11),f._fillFinderPatternFilledValues(v,0,r-8),f._fullFinderPattern(_,n-11,4),f._fillFinderPatternFilledValues(v,r-8,0),f._fillTimingPattern(_,v,r),_[n-12][12]=1,(v[n-16][8]=1)<t)for(p=0;p<M[t].length;p++)for(c=0;c<M[t].length;c++)h=M[t][p]+4,d=M[t][c]+4,10==h&&10==d||10==h&&d==n-11||h==n-11&&10==d||(_[h-2][d-2]=1,v[h-6][d-6]=1,_[h-2][d-1]=1,v[h-6][d-5]=1,_[h-2][d]=1,v[h-6][d-4]=1,_[h-2][d+1]=1,v[h-6][d-3]=1,_[h-2][d+2]=1,_[h-(v[h-6][d-2]=1)][d-2]=1,_[h-(v[h-5][d-6]=1)][d-1]=0,_[h-(v[h-5][d-5]=1)][d]=0,_[h-(v[h-5][d-4]=1)][d+1]=0,_[h-(v[h-5][d-3]=1)][d+2]=1,v[h-5][d-2]=1,_[h][d-2]=1,v[h-4][d-6]=1,_[h][d-1]=0,v[h-4][d-5]=1,_[h][d]=1,v[h-4][d-4]=1,_[h][d+1]=0,v[h-4][d-3]=1,_[h][d+2]=1,_[h+(v[h-4][d-2]=1)][d-2]=1,_[h+(v[h-3][d-6]=1)][d-1]=0,_[h+(v[h-3][d-5]=1)][d]=0,_[h+(v[h-3][d-4]=1)][d+1]=0,_[h+(v[h-3][d-3]=1)][d+2]=1,v[h-3][d-2]=1,_[h+2][d-2]=1,v[h-2][d-6]=1,_[h+2][d-1]=1,v[h-2][d-5]=1,_[h+2][d]=1,v[h-2][d-4]=1,_[h+2][d+1]=1,v[h-2][d-3]=1,_[h+2][d+2]=1,v[h-2][d-2]=1);for(7<=t&&f._fillHigherVersionData(_,v,t,r,n),s=0;s<8;s++){for(a=[],p=l=0;p<_.length;p++)a.push(_[p].slice(0));f._fillFormatData(_,v,r,n,u[s],o),f._fillMatrix(v,a,u[s],r,e),l=(l=(l=(l+=f._calcPenalty1(a,r))+f._calcPenalty2(a,r))+f._calcPenalty3(a,r))+f._calcPenalty4(a,r),g.push(l)}return i=f._getSmallestPenaltyIndex(g),f._fillFormatData(_,v,r,n,u[i],o),f._fillMatrix(v,_,u[i],r,e),_},_fillHigherVersionData:function(e,t,r,n,o){r={7:[0,0,1,0,1,0,0,1,0,0,1,1,1,1,1,0,0,0],8:[0,0,1,1,1,1,0,1,1,0,1,0,0,0,0,1,0,0],9:[1,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,0],10:[1,1,0,0,1,0,1,1,0,0,1,0,0,1,0,1,0,0],11:[0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0],12:[0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0],13:[1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0],14:[1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0,0],15:[0,0,0,1,0,1,0,0,1,0,0,1,1,1,1,1,0,0],16:[0,0,0,1,1,1,1,0,1,1,0,1,0,0,0,0,1,0],17:[1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0],18:[1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1,0],19:[0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0],20:[0,1,1,0,0,1,0,1,1,0,0,1,0,0,1,0,1,0],21:[1,1,0,0,0,0,0,1,0,1,1,0,1,0,1,0,1,0],22:[1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,0,1,0],23:[0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,0],24:[0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,1,0],25:[1,0,0,0,0,1,1,1,1,0,0,0,1,0,0,1,1,0],26:[1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0],27:[0,1,1,1,0,0,0,1,0,0,0,0,1,1,0,1,1,0],28:[0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,1,0],29:[1,1,1,1,1,1,0,0,1,1,0,0,1,0,1,1,1,0],30:[1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,0],31:[0,0,0,0,1,0,1,0,0,1,0,0,1,1,1,1,1,0],32:[1,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,1],33:[0,0,0,0,1,1,1,1,0,1,1,0,1,0,0,0,0,1],34:[0,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1],35:[1,1,1,1,1,0,0,1,1,1,1,0,1,1,0,0,0,1],36:[1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,0,1],37:[0,1,1,1,0,1,0,0,0,0,1,0,1,0,1,0,0,1],38:[0,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1],39:[1,0,0,0,0,0,1,0,1,0,1,0,1,1,1,0,0,1],40:[1,0,0,1,0,1,1,0,0,0,1,1,0,0,0,1,0,1]}[r];this._fillUpperVersionInformation(e,t,r,n,o),this._fillLowerVersionInformation(e,t,r,n,o)},_fillUpperVersionInformation:function(e,t,r,n,o){for(var l=o-15,i=n-11,a=0,s=4;s<10;s++)e[s][l]=r[a],t[s-4][i]=1,e[s][1+l]=r[++a],t[s-4][1+i]=1,e[s][2+l]=r[++a],t[s-4][2+i]=1,a++},_fillLowerVersionInformation:function(e,t,r,n,o){for(var l=o-13,i=n-9,a=0,s=4;s<10;s++)e[l][s]=r[a],a++,e[l-(t[i][s-4]=1)][s]=r[a],t[i-1][s-4]=1,e[l-2][s]=r[++a],t[i-2][s-4]=1,a++},_getSmallestPenaltyIndex:function(e){for(var t=e[0],r=0,n=0;n<e.length;n++)e[n]<t&&(r=n);return r},_calcPenalty1:function(e,t){for(var r,n,o=0,l=0;l<t;l++)for(r=n=1;r<t;r++)e[l+4][r+4]===e[l+4][r+3]?5==++n?o+=3:5<n&&o++:n=1;for(r=0;r<t;r++)for(l=n=1;l<t;l++)e[l+4][r+4]===e[l+3][r+4]?5===++n?o+=3:5<n&&o++:n=1;return o},_calcPenalty2:function(e,t){for(var r,n,o=0,l=0;l<t-1;l++)for(n=0;n<t-1;n++)(r=e[l+4][n+4])==e[l+4][n+5]&&r==e[l+5][n+4]&&r==e[l+5][n+5]&&(o+=3);return o},_calcPenalty3:function(e,t){for(var r,n=0,o=0;o<t;o++)for(r=0;r<=t-7;r++)e[o+4][r+4]&&!e[o+4][r+5]&&e[o+4][r+6]&&e[o+4][r+7]&&e[o+4][r+8]&&!e[o+4][r+9]&&e[o+4][r+10]&&(n+=40);for(r=0;r<t;r++)for(o=0;o<=t-7;o++)e[o+4][r+4]&&!e[o+5][r+4]&&e[o+6][r+4]&&e[o+7][r+4]&&e[o+8][r+4]&&!e[o+9][r+4]&&e[o+10][r+4]&&(n+=40);return n},_calcPenalty4:function(e,t){for(var r,n=0,o=0,l=0;l<t;l++)for(r=0;r<t;r++)e[l+4][r+4]?n++:o++;return m(2*(n/(n+o)*100-50))},_fillFormatData:function(e,t,r,n,o,l){l=this._errorCorrectionToMask[l]+o,o=this._formatInformation[l],l=n-5,n-=5;e[12][4]=m(o.charAt(0)),e[12][5]=m(o.charAt(1)),e[12][6]=m(o.charAt(2)),e[12][7]=m(o.charAt(3)),e[12][8]=m(o.charAt(4)),e[12][9]=m(o.charAt(5)),e[12][11]=m(o.charAt(6)),e[12][12]=m(o.charAt(7)),e[11][12]=m(o.charAt(8)),e[9][12]=m(o.charAt(9)),e[8][12]=m(o.charAt(10)),e[7][12]=m(o.charAt(11)),e[6][12]=m(o.charAt(12)),e[5][12]=m(o.charAt(13)),e[4][12]=m(o.charAt(14)),e[l][12]=m(o.charAt(0)),e[l-1][12]=m(o.charAt(1)),e[l-2][12]=m(o.charAt(2)),e[l-3][12]=m(o.charAt(3)),e[l-4][12]=m(o.charAt(4)),e[l-5][12]=m(o.charAt(5)),e[l-6][12]=m(o.charAt(6)),e[12][n-7]=m(o.charAt(7)),e[12][n-6]=m(o.charAt(8)),e[12][n-5]=m(o.charAt(9)),e[12][n-4]=m(o.charAt(10)),e[12][n-3]=m(o.charAt(11)),e[12][n-2]=m(o.charAt(12)),e[12][n-1]=m(o.charAt(13)),e[12][n]=m(o.charAt(14)),t[8][0]=1,t[8][1]=1,t[8][2]=1,t[8][3]=1,t[8][4]=1,t[8][5]=1,t[8][7]=1,t[8][8]=1,t[7][8]=1,t[5][8]=1,t[4][8]=1,t[3][8]=1,t[2][8]=1,t[1][8]=1,t[0][8]=1,t[r-1][8]=1,t[r-2][8]=1,t[r-3][8]=1,t[r-4][8]=1,t[r-5][8]=1,t[r-6][8]=1,t[r-7][8]=1,t[8][r-8]=1,t[8][r-7]=1,t[8][r-6]=1,t[8][r-5]=1,t[8][r-4]=1,t[8][r-3]=1,t[8][r-2]=1,t[8][r-1]=1},_fillMatrix:function(e,t,r,n,o){for(var l,i=0,a=!0,s=n-1;0<=s;s-=2){if(6==s&&s--,a)for(l=n-1;0<=l;l--)e[l][s]||(this._fillModule(l,s,i,t,r,o),i++),0<=s-1&&!e[l][s-1]&&(this._fillModule(l,s-1,i,t,r,o),i++);else for(l=0;l<n;l++)e[l][s]||(this._fillModule(l,s,i,t,r,o),i++),0<=s-1&&!e[l][s-1]&&(this._fillModule(l,s-1,i,t,r,o),i++);a=!a}},_fillModule:function(e,t,r,n,o,l){r<l.length?this._fillCharacter(e,t,l.charAt(r),n,o):this._fillCharacter(e,t,"0",n,o)},_fillCharacter:function(e,t,r,n,o){var l;switch(o){case"000":l=(e+t)%2==0;break;case"001":l=e%2==0;break;case"010":l=t%3==0;break;case"011":l=(e+t)%3==0;break;case"100":l=(e/2+t/3)%2==0;break;case"101":l=e*t%2+e*t%3==0;break;case"110":l=(e*t%2+e*t%3)%2==0;break;case"111":l=((e+t)%2+e*t%3)%2==0;break;default:l=(e+t)%2==0}n[e+4][t+4]=l?"0"==r?1:0:"0"==r?0:1},_fillTimingPattern:function(e,t,r){for(var n=10,o=12,l=!0;o<r-4;)l&&(e[n][o]=1),t[n-4][o-4]=1,l=!l,o++;for(o=10,n=12,l=!0;n<r-4;)l&&(e[n][o]=1),t[n-4][o-4]=1,l=!l,n++},_fullFinderPattern:function(e,t,r){for(var n=0;n<7;n++)e[t+n][r]=1,e[t][r+n]=1,e[t+n][r+6]=1,e[t+6][r+n]=1;for(t+=2,r+=2,n=0;n<3;n++)e[t+n][r]=1,e[t+n][r+1]=1,e[t+n][r+2]=1},_fillFinderPatternFilledValues:function(e,t,r){var n,o,l,i;for(0===t&&0===r?n=o=8:o=0===t&&0<r?r+(n=8):(n=t+8,8),l=t;l<n;l++)for(i=r;i<o;i++)e[l][i]=1},_getEC:function(e,t,r){for(var n,o,l=this._getCodewordsLengthTable()[e],i=0,a=[],s=[],c=[],h=[],d=[],f=[],u=[],g=[],_=l.firstBlockCount,v=l.secondBlockCount,M=[],p=[];0<_;_--){for(M=[],n=0;n<l.firstDataCodeWords;n++)M[M.length]=r[i],i++;a[a.length]=M,d[d.length]=this._getErrorCorrectionForBlock(M,l)}for(;0<v;v--){for(p=[],o=0;o<l.secondBlockCodeWords;o++)p[p.length]=r[i],i++;s[s.length]=p,f[f.length]=this._getErrorCorrectionForBlock(p,l)}for(var L=l.firstDataCodeWords*l.firstBlockCount+l.secondBlockCodeWords*l.secondBlockCount,m=l.codewordsPerBlock*l.firstBlockCount+l.codewordsPerBlock*l.secondBlockCount,y=0,b=a.length+s.length,H=0;H<b;H++)0===y?(0<a.length?(c[c.length]=a[0],a):(c[c.length]=s[0],y++,s)).splice(0,1):1===y&&0<s.length&&(c[c.length]=s[0],s.splice(0,1));for(b=d.length+f.length,H=y=0;H<b;H++)0===y?(0<d.length?(h[h.length]=d[0],d):(h[h.length]=f[0],y++,f)).splice(0,1):1===y&&0<f.length&&(h[h.length]=f[0],f.splice(0,1));for(var Q=c.length,x=h.length,k="",y=0,A=0;A<L;A++)0<c[y=y===Q?0:y].length?(u[u.length]=c[y][0],c[y].splice(0,1),y++):(y++,A--);for(A=y=0;A<m;A++)0<h[y=y===x?0:y].length?(g[g.length]=h[y][0],h[y].splice(0,1),y++):(y++,A--);for(A=0;A<u.length;A++)k+=V(C(u[A]),8);for(A=0;A<g.length;A++)k+=V(C(g[A]),8);return k},_getErrorCorrectionForBlock:function(e,t){for(var r,n,o,l=t.codewordsPerBlock,i=[],a=[],s=0,c={7:[87,229,146,149,238,102,21],10:[251,67,46,61,118,70,64,94,32,45],13:[74,152,176,100,86,100,106,104,130,218,206,140,78],15:[8,183,61,91,202,37,51,58,58,237,140,124,5,99,105],16:[120,104,107,109,102,161,76,3,91,191,147,169,182,194,225,120],17:[43,139,206,78,43,239,123,206,214,147,24,99,150,39,243,163,136],18:[215,234,158,94,184,97,118,170,79,187,152,148,252,179,5,98,96,153],20:[17,60,79,50,61,163,26,187,202,180,221,225,83,239,156,164,212,212,188,190],22:[210,171,247,242,93,230,14,109,221,53,200,74,8,172,98,80,219,134,160,105,165,231],24:[229,121,135,48,211,117,251,126,159,180,169,152,192,226,228,218,111,0,117,232,87,96,227,21],26:[173,125,158,2,103,182,118,17,145,201,111,28,165,53,161,21,245,142,13,102,48,227,153,145,218,70],28:[168,223,200,104,224,234,108,180,110,190,195,147,205,27,232,201,21,43,245,87,42,195,212,119,242,37,9,123],30:[41,173,145,152,216,31,179,182,50,48,110,86,239,96,222,125,42,173,226,193,224,130,156,37,251,216,238,40,192,180]},h=[1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142,1],d=[-1,0,1,25,2,50,26,198,3,223,51,238,27,104,199,75,4,100,224,14,52,141,239,129,28,193,105,248,200,8,76,113,5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154,9,120,77,228,114,166,6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87,7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175],f=0;f<e.length+l;f++)a[s++]=f<e.length?e[f]:0;for(f=0;f<e.length;f++)if(n=a[0],a.splice(0,1),0!==n){for(i=c[l].slice(0),n=d[n],r=0;r<i.length;r++)255<(o=n+i[r])&&(o%=255),i[r]=o;for(r=0;r<i.length;r++)i[r]=h[i[r]];for(r=0;r<i.length;r++)a[r]=a[r]^i[r]}return a},_getIntegerValues:function(e){return L(e,function(e){return m(e,2)})},_getBinaryValues:function(e){for(var t=[],r=0;r<e.length;r+=8)r+8<=e.length?t.push(e.substr(r,8)):t.push(h(e.substring(r),8));return t},_padEncodedToLength:function(e,t){if(e.length>=t)return e.substr(0,t);for(var r=e,n=!0;r.length<t;)r+=n?"11101100":"00010001",n=!n;return r},_getVersion:function(e,t){for(var r=e.length,n=1;n<39&&!(this._verErrLenTable[n+""+t]/8>=r);n++);return n+1},_getDataLength:function(e,t){return this._verErrLenTable[this._getVersion(e,t)+""+t]},_getFormatData:function(e,t){return this.codeMode+V(C(e.length),this._getFormatLengthTotal(e,t))},_getFormatLengthTotal:function(e,t){var r=this.mode,e=this._getVersion(e,t);return 1<=e&&e<=9?r==o?10:r==l?9:8:10<=e&&e<=26?r==o?12:r==l?11:r==n?16:10:r==o?14:r==l?13:r==n?16:12},_getCodewordsLengthTable:function(){var e=this;if(!e._clt){var t,r,n=[7,1,19,0,0,10,1,16,0,0,13,1,13,0,0,17,1,9,0,0,10,1,34,0,0,16,1,28,0,0,22,1,22,0,0,28,1,16,0,0,15,1,55,0,0,26,1,44,0,0,18,2,17,0,0,22,2,13,0,0,20,1,80,0,0,18,2,32,0,0,26,2,24,0,0,16,4,9,0,0,26,1,108,0,0,24,2,43,0,0,18,2,15,2,16,22,2,11,2,12,18,2,68,0,0,16,4,27,0,0,24,4,19,0,0,28,4,15,0,0,20,2,78,0,0,18,4,31,0,0,18,2,14,4,15,26,4,13,1,14,24,2,97,0,0,22,2,38,2,39,22,4,18,2,19,26,4,14,2,15,30,2,116,0,0,22,3,36,2,37,20,4,16,4,17,24,4,12,4,13,18,2,68,2,69,26,4,43,1,44,24,6,19,2,20,28,6,15,2,16,20,4,81,0,0,30,1,50,4,51,28,4,22,4,23,24,3,12,8,13,24,2,92,2,93,22,6,36,2,37,26,4,20,6,21,28,7,14,4,15,26,4,107,0,0,22,8,37,1,38,24,8,20,4,21,22,12,11,4,12,30,3,115,1,116,24,4,40,5,41,20,11,16,5,17,24,11,12,5,13,22,5,87,1,88,24,5,41,5,42,30,5,24,7,25,24,11,12,7,13,24,5,98,1,99,28,7,45,3,46,24,15,19,2,20,30,3,15,13,16,28,1,107,5,108,28,10,46,1,47,28,1,22,15,23,28,2,14,17,15,30,5,120,1,121,26,9,43,4,44,28,17,22,1,23,28,2,14,19,15,28,3,113,4,114,26,3,44,11,45,26,17,21,4,22,26,9,13,16,14,28,3,107,5,108,26,3,41,13,42,30,15,24,5,25,28,15,15,10,16,28,4,116,4,117,26,17,42,0,0,28,17,22,6,23,30,19,16,6,17,28,2,111,7,112,28,17,46,0,0,30,7,24,16,25,24,34,13,0,0,30,4,121,5,122,28,4,47,14,48,30,11,24,14,25,30,16,15,14,16,30,6,117,4,118,28,6,45,14,46,30,11,24,16,25,30,30,16,2,17,26,8,106,4,107,28,8,47,13,48,30,7,24,22,25,30,22,15,13,16,28,10,114,2,115,28,19,46,4,47,28,28,22,6,23,30,33,16,4,17,30,8,122,4,123,28,22,45,3,46,30,8,23,26,24,30,12,15,28,16,30,3,117,10,118,28,3,45,23,46,30,4,24,31,25,30,11,15,31,16,30,7,116,7,117,28,21,45,7,46,30,1,23,37,24,30,19,15,26,16,30,5,115,10,116,28,19,47,10,48,30,15,24,25,25,30,23,15,25,16,30,13,115,3,116,28,2,46,29,47,30,42,24,1,25,30,23,15,28,16,30,17,115,0,0,28,10,46,23,47,30,10,24,35,25,30,19,15,35,16,30,17,115,1,116,28,14,46,21,47,30,29,24,19,25,30,11,15,46,16,30,13,115,6,116,28,14,46,23,47,30,44,24,7,25,30,59,16,1,17,30,12,121,7,122,28,12,47,26,48,30,39,24,14,25,30,22,15,41,16,30,6,121,14,122,28,6,47,34,48,30,46,24,10,25,30,2,15,64,16,30,17,122,4,123,28,29,46,14,47,30,49,24,10,25,30,24,15,46,16,30,4,122,18,123,28,13,46,32,47,30,48,24,14,25,30,42,15,32,16,30,20,117,4,118,28,40,47,7,48,30,43,24,22,25,30,10,15,67,16,30,19,118,6,119,28,18,47,31,48,30,34,24,34,25,30,20,15,61,16],o=["L","M","Q","H"],l=0;for(e._clt={},t=1;t<=40;t++)for(r=0;r<o.length;r++)e._clt[t+""+o[r]]={codewordsPerBlock:n[l],firstBlockCount:n[l+1],firstDataCodeWords:n[l+2],secondBlockCount:n[l+3],secondBlockCodeWords:n[l+4]},l+=5}return e._clt},_getPositionAdjustmentsTable:function(){var e=[],t=2;return e[t++]=[6,18],e[t++]=[6,22],e[t++]=[6,26],e[t++]=[6,30],e[t++]=[6,34],e[t++]=[6,22,38],e[t++]=[6,24,42],e[t++]=[6,26,46],e[t++]=[6,28,50],e[t++]=[6,30,54],e[t++]=[6,32,58],e[t++]=[6,34,62],e[t++]=[6,26,46,66],e[t++]=[6,26,48,70],e[t++]=[6,26,50,74],e[t++]=[6,30,54,78],e[t++]=[6,30,56,82],e[t++]=[6,30,58,86],e[t++]=[6,34,62,90],e[t++]=[6,28,50,72,94],e[t++]=[6,26,50,74,98],e[t++]=[6,30,54,78,102],e[t++]=[6,28,54,80,106],e[t++]=[6,32,58,84,110],e[t++]=[6,30,58,86,114],e[t++]=[6,34,62,90,118],e[t++]=[6,26,50,74,98,122],e[t++]=[6,30,54,78,102,126],e[t++]=[6,26,52,78,104,130],e[t++]=[6,30,56,82,108,134],e[t++]=[6,34,60,86,112,138],e[t++]=[6,30,58,86,114,142],e[t++]=[6,34,62,90,118,146],e[t++]=[6,30,54,78,102,126,150],e[t++]=[6,24,50,76,102,128,154],e[t++]=[6,28,54,80,106,132,158],e[t++]=[6,32,58,84,110,136,162],e[+t]=[6,26,54,82,110,138,166],e[40]=[6,30,58,86,114,142,170],e}}),i=e.extend({mode:o,codeMode:"0001",validateRegex:"^\\d+$",encodeValue:function(e){for(var t=[];0<e.length;)e=2<e.length?(t.push(V(C(m(e.substr(0,3))),10)),e.substr(3)):(2===e.length?t.push(V(C(m(e)),7)):t.push(V(C(m(e)),4)),"");return 0===t.length&&t.push(V(C(0),4)),t.join("")}}),i=(u.addMode(i),e.extend({mode:n,codeMode:"0100",validateRegex:"^[0-9A-Za-z'\\\r\\\n\\ \\!\\\"\\#\\$\\%\\&\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\¥\\]\\^\\_\\`\\{\\|\\}\\¯\\。\\「\\」\\、\\・\\ヲ\\ァ\\ィ\\ゥ\\ェ\\ォ\\ャ\\ュ\\ョ\\ッ\\ー\\ア\\イ\\ウ\\エ\\オ\\カ\\キ\\ク\\ケ\\コ\\サ\\シ\\ス\\セ\\ソ\\タ\\チ\\ツ\\テ\\ト\\ナ\\ニ\\ヌ\\ネ\\ノ\\ハ\\ヒ\\フ\\ヘ\\ホ\\マ\\ミ\\ム\\メ\\モ\\ヤ\\ユ\\ヨ\\ラ\\リ\\ル\\レ\\ロ\\ワ\\ン\\゙\\゚]+$",encodingTable:{"\r":"13","\n":"10"," ":"32","!":"33",'"':"34","#":"35",$:"36","%":"37","&":"38","'":"39","(":"40",")":"41","*":"42","+":"43",",":"44","-":"45",".":"46","/":"47",0:"48",1:"49",2:"50",3:"51",4:"52",5:"53",6:"54",7:"55",8:"56",9:"57",":":"58",";":"59","<":"60","=":"61",">":"62","?":"63","@":"64",A:"65",B:"66",C:"67",D:"68",E:"69",F:"70",G:"71",H:"72",I:"73",J:"74",K:"75",L:"76",M:"77",N:"78",O:"79",P:"80",Q:"81",R:"82",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90","[":"91","¥":"92","]":"93","^":"94",_:"95","`":"96",a:"97",b:"98",c:"99",d:"100",e:"101",f:"102",g:"103",h:"104",i:"105",j:"106",k:"107",l:"108",m:"109",n:"110",o:"111",p:"112",q:"113",r:"114",s:"115",t:"116",u:"117",v:"118",w:"119",x:"120",y:"121",z:"122","{":"123","|":"124","}":"125","¯":"126","。":"161","「":"162","」":"163","、":"164","・":"165","ヲ":"166","ァ":"167","ィ":"168","ゥ":"169","ェ":"170","ォ":"171","ャ":"172","ュ":"173","ョ":"174","ッ":"175","ー":"176","ア":"177","イ":"178","ウ":"179","エ":"180","オ":"181","カ":"182","キ":"183","ク":"184","ケ":"185","コ":"186","サ":"187","シ":"188","ス":"189","セ":"190","ソ":"191","タ":"192","チ":"193","ツ":"194","テ":"195","ト":"196","ナ":"197","ニ":"198","ヌ":"199","ネ":"200","ノ":"201","ハ":"202","ヒ":"203","フ":"204","ヘ":"205","ホ":"206","マ":"207","ミ":"208","ム":"209","メ":"210","モ":"211","ヤ":"212","ユ":"213","ヨ":"214","ラ":"215","リ":"216","ル":"217","レ":"218","ロ":"219","ワ":"220","ン":"221","゙":"222","゚":"223"},encodeValue:function(e){for(var t=[],r=0;r<e.length;r++)t.push(V(C(m(this.encodingTable[e.charAt(r)])),8));return t.join("")}})),i=(u.addMode(i),e.extend({mode:l,codeMode:"0010",validateRegex:"^[0-9A-Z \\$\\%\\*\\+\\-\\.\\/\\:]+$",encodingTable:{0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",A:"10",B:"11",C:"12",D:"13",E:"14",F:"15",G:"16",H:"17",I:"18",J:"19",K:"20",L:"21",M:"22",N:"23",O:"24",P:"25",Q:"26",R:"27",S:"28",T:"29",U:"30",V:"31",W:"32",X:"33",Y:"34",Z:"35"," ":"36",$:"37","%":"38","*":"39","+":"40","-":"41",".":"42","/":"43",":":"44"},encodeValue:function(e){for(var t,r,n,o,l=e.length%2!=0,i=[],a=[],s=[],c=0,h=0;h<e.length;h++)t=e.charAt(h),i[h]=this.encodingTable[t];for(h=0;h<i.length;h+=2)r=i[h],h+1<=i.length-1?(n=i[h+1],a[c]=m(45*r)+m(n)):a[c]=r,c++;for(h=0;h<a.length;h++)o=C(a[h]),o=V(o,l&&h===a.length-1?6:11),s[h]=o;return s.join("")}})),g=(u.addMode(i),t.extend({init:function(e){var t=e.style;this.options=e,this.size=e.size-2*t.padding,p||r.namespaces.sqrv||(r.namespaces.add("sqrv","urn:schemas-microsoft-com:vml","#default#VML"),r.createStyleSheet().cssText="sqrv\\:fill, sqrv\\:path, sqrv\\:shape, sqrv\\:stroke{ behavior:url(#default#VML); display: inline-block; } ")},all:function(e){function t(e){return _("<div/>").html(e).text()}var r,n,o,l,i=this.size,a=this.options.style,s=i/e.length,c="",h=[],d="",f=200<i?12:10,u=t(100<i?"Demo Version":"Demo"),g=t("http://www.shieldui.com");v.guid();for(a.padding&&(c+="margin:"+a.padding+"px;"),r=0;r<e.length;r++)for(n=0;n<e[r].length;n++)e[r][n]&&h.push({x:n*s,y:r*s});return d+=p?'<text x="'+i+'" y="'+i+'" fill="#999999" text-anchor="end" font-size="'+f+'" style="cursor:pointer; z-index:0;" onClick="javascript: location.href = \''+g+"'; margin:0; padding:0;\">"+u+"</text>":'<div style="position:absolute; display:block; width:'+i+"px; text-align:right; color:#999999; cursor:pointer; z-index:0; top:"+(i-f-2)+"px; left:0px; font-size:"+f+'px;"><a href="'+g+'" style="color:#999999; text-decoration:none;">'+u+"</a></div>",p?'<svg xmlns="'+M+'" version="1.1" width="'+i+'" height="'+i+'" shape-rendering="crispEdges"'+(c?' style="'+c+'" ':"")+">"+d+'<path d="'+L(h,function(e){return"M"+e.x+" "+e.y+" L"+(e.x+s)+" "+e.y+" L"+(e.x+s)+" "+(e.y+s)+" L"+e.x+" "+(e.y+s)+" z"}).join(" ")+'" fill="'+a.color+'" stroke="'+a.color+'" stroke-width="0" /></svg>':(l=m(s*(o=1e4/i)),'<sqrv:shape style="z-index:200; position:absolute; width:'+i+"px; height:"+i+"px; display:block; "+c+'" coordsize="10000,10000" path="'+(L(h,function(e){var t=m(e.x*o),e=m(e.y*o);return"m"+t+","+e+" l"+(t+l)+","+e+","+(t+l)+","+(e+l)+","+t+","+(e+l)}).join(" ")+" e")+'" filled="t" fillcolor="'+a.color+'" stroked="f" strokecolor="'+a.color+'" strokeweight="0">'+d+"</sqrv:shape>")}})),e=d.extend({init:function(e,t){d.fn.init.apply(this,arguments);var r=this.options,n=r.style,o=r.value,l=(r.mode+"").toLowerCase(),i=r.errorLevel,a=r.dieOnError,s=u.byMode(l),c=new g(r);_(this.element).css({background:n.background,borderColor:n.borderColor,borderStyle:n.borderStyle,borderWidth:n.borderWidth,width:r.size,height:r.size}),s?s.validate(o)?"L"!=i&&"M"!=i&&"Q"!=i&&"H"!=i?f("Invalid errorLevel: "+i,a):(n=s.encode(o,i),_(this.element).html(c.all(n))):f("Invalid qrcode value: "+o,a):f("Invalid qrcode mode: "+l,a)},destroy:function(){this.element.empty(),d.fn.destroy.call(this)}});e.defaults={value:"",mode:"byte",errorLevel:"L",size:300,style:{background:null,borderColor:null,borderStyle:null,borderWidth:0,color:"#000000",padding:5}},v.ui.plugin("QRcode",e)}(jQuery,shield); -!function(_,p,f,v){var g=p.ui.Widget,d=(p.Class,p.DataSource),O=p.ui.Position,a=p.Constants.KeyCode,b=p.strid,B=document,q=Math.abs,m=Math.min,F=Math.max,x=_.proxy,G=_.each,l=_.map,r=p.to,u=r.int,C=p.format,S=p.error,c=p.is,T=c.defined,R=c.string,K=c.object,Q=c.func,X=c.null,J=c.number,V=p.is.boolean,w="id",I="role",Y="true",Z="false",$="aria-valuenow",tt="aria-controls",et="aria-expanded",it="aria-disabled",at="aria-describedby",st="aria-selected",nt="single",H="mouseenter",y="mouseleave",z="click",ot="focus",lt="blur",rt="change",e="title",L="center",P="left",W="right",D="up",E="down",N="top",A="bottom",j="horizontal",dt="vertical",k="resize",M="tabindex",h="disabled",U="suiaccitemindex",ct="suiaccitemdata",ht="suiaccitemloaded",n="suiaccelparent",o="suiaccelprev",ut={top:A,bottom:N,left:W,right:P,center:L},i="sui-tooltip-title",pt="sui-tooltip-sto",ft="sui-tooltip-hto",gt="sui-tooltip-target-hover",t={cls:v,enabled:!0,visible:v,width:v,height:v,delay:100,filter:v,content:function(t){return _(t).data(i)},position:N,trigger:H,autoHide:!0,callout:!0,events:{}},s=g.extend({init:function(){g.fn.init.apply(this,arguments);var i=this,t=i.options,e=t.content,a=t.position,s=t.cls,n=t.filter,o=t.trigger,l=t.autoHide,r=t.visible,d=t.width,c=t.height,h=t.callout,u=_(i.element),p=b();!K(e)||e.remote&&e.remote.url?(i._eventNS=".shieldTooltip"+i.getInstanceId(),i._currentTarget=null,i._tooltip=e=_('<div id="'+p+'"/>').appendTo(B.body),e.addClass("sui-tooltip"+(s?" "+s:"")),s={position:"absolute"},T(d)&&(s.width=d),T(c)&&(s.height=c),e.css(s),i._content=_('<div class="sui-tooltip-content"></div>').appendTo(e),l||e.addClass("sui-tooltip-with-button").append('<div class="sui-tooltip-button">×</div>').click(x(i._hide,i,!0)),K(a)?i._pos=a:(d=ut[a]?a:N,h&&a!=L&&(d+=d==P||d==N?"-5":"+5"),i._pos={source:ut[a]||A,target:d,overflow:"flipfit"}),h&&(i._pos.callback=x(i._posSet,i)),i._targets=c=n?u.find(n):u,i._showEvent=o,i._hideEvent=null,l&&(o==H||o==z?i._hideEvent=y:o==ot&&(i._hideEvent=lt)),c.each(function(t){var e=_(this);e.on(H+i._eventNS,x(i._targetMouseEnter,i,e)).on(y+i._eventNS,x(i._targetMouseLeave,i,e)).on(i._showEvent+i._eventNS,x(i._onShow,i,e,!0)),i._hideEvent&&e.on(i._hideEvent+i._eventNS,x(i._onHide,i,e,!0)),e.attr(at,p)}),i._destroyed=!1,e.attr(I,"tooltip"),i.enabled(!!t.enabled),T(r)&&i.visible(r)):S("shieldTooltip: Invalid content options",t.dieOnError)},_targetMouseEnter:function(t){t.addClass(gt),t.attr(e)&&t.data(i,t.attr(e)).removeAttr(e)},_targetMouseLeave:function(t){t.removeClass(gt),t.data(i)&&t.attr(e,t.data(i))},_onShow:function(t,e){var i=this;i._enabled&&(i._tooltip,e=setTimeout(x(i._show,i,t,e),i.options.delay),t.one(y,function(){var t=_(this).data(pt);t&&clearTimeout(t)}).data(pt,e))},_onHide:function(t,e){var i=this,a=i._tooltip,s=setTimeout(x(i._hide,i,e),50);a.one(H,function(){var t=_(this),e=t.data(ft);e&&(clearTimeout(e),t.data(ft,null))}).one(y,function(){setTimeout(function(){t.hasClass(gt)||i._hide(i,e)},50)}).data(ft,s)},_show:function(t,e){var i,a,s=this,n=s.options,o=n.content,n=n.height,l=s._tooltip,r=s._content;s._destroyed||s._currentTarget==t||e&&s.trigger("show",{target:t}).isDefaultPrevented()||(R(o)?i=o:K(o)?i=o.remote.iframe?'<iframe class="sui-tooltip-iframe" src="'+o.remote.url+'" style="border:none; border-width:0px; width:100%; height:'+(n?n+"px":"100%")+';"></iframe>':(a=!0," "):Q(o)&&(i=o(t)),i&&(l.show(),s._currentTarget=t,a?r.load(o.remote.url):r.html(i),s._visible=!0,O.Set(l,t,s._pos)))},_hide:function(t){var e=this;!e._currentTarget||t&&e.trigger("hide").isDefaultPrevented()||(_(e._tooltip).hide().find(".sui-tooltip-callout-container").remove(),e._currentTarget=null,e._visible=!1)},_posSet:function(t){var e,i,a,s,n,o=this.options,l=this._tooltip,r=t.horizontal,d=t.vertical,c=(t.important,t.element),t=t.target,h=c.width,u=c.height;if(o.callout&&(r!=L||"middle"!=d)){if(r==L||"middle"==d)i={source:o=ut[e=r==L?d:r],target:e+(o==A||o==W?"+1":"-1")};else if(o=p.ui.Util.GetWithinInfo(f),r==P&&3<c.left-o.scrollLeft&&(i={source:W,target:(e=P)+"+1"}),r==W&&3<o.scrollLeft+o.width-c.left-c.width&&(i={source:P,target:(e=W)+"-1"}),e&&(a=c.top+u/2,s=t.top+t.height-(t.top+t.height-o.scrollTop)/2,0!==(n=q(n=a-s)>u/2-6?0<n?u/2-6:6-u/2:n)&&(i.target+=" "+L+(0<n?"-"+n:"+"+n))),e||(d==N&&3<c.top-o.scrollTop&&(e=N,i={source:A,target:"top+1"}),d==A&&3<o.scrollTop+o.height-c.top-c.height&&(i={source:N,target:(e=A)+"-1"}),e&&(a=c.left+h/2,s=t.left+t.width-(t.left+t.width-o.scrollLeft)/2,0!==(n=q(n=a-s)>h/2-6?0<n?h/2-6:6-h/2:n)&&(i.target=L+(0<n?"-"+n:"+"+n)+" "+i.target))),!e)return;r=_('<div class="sui-tooltip-callout-container"><div class="sui-tooltip-callout sui-tooltip-callout-'+e+'"></div>').appendTo(l),O.Set(r,l,i)}},visible:function(){var t,e=this,i=[].slice.call(arguments);if(!e._destroyed)return 0<i.length?((t=!!i[0])?e._show(i[1]):e._hide(),void(e._visible=t)):e._visible},enabled:function(){var t=[].slice.call(arguments);if(!(0<t.length))return this._enabled;(t=!!t[0])||this.visible(!1),this._enabled=t},destroy:function(){var e=this,t=e._targets;e._destroyed=!0,t&&(t.each(function(t){_(this).off(e._eventNS)}),e._targets=null),_(e._tooltip).remove(),g.fn.destroy.call(e)}});s.defaults=t,p.ui.plugin("Tooltip",s),t={cls:v,barSize:5,orientation:j,panes:v,events:{}},(s=g.extend({init:function(){g.fn.init.apply(this,arguments);var e,i=this,t=i.options,a=t.cls,s=(t.orientation,_(i.element));s.addClass("sui-splitter-container"+(a?" "+a:"")),"absolute"!==s.css("position")&&"relative"!==s.css("position")&&s.css({position:"relative"}),s.css("width")===v&&s.css({width:"100%"}),i._height=s.css("height")?s.css("height"):s.parent().innerHeight(),s.css({height:i._height}),i._children=e=s.children(),i._offset=0,i._barSize=t.barSize,i._bars=[],i._dragBars=[],i._navigators=[],e.each(function(t){i._addPane(e,_(this),t)}),_(f).on(k+".shieldSplitter"+i.getInstanceId(),x(i._adjust,i)),i._adjust(),i._adjustDraggables(),i._manageCollapsedPanes()},_adjust:function(){var t=this.element,e=this._children.last(),i=this.options.orientation==j,a=(i?t.innerWidth():t.innerHeight())-this._offset+"px";t.children(".sui-splitter-pane-horizontal, .sui-splitter-dragbar-horizontal, .sui-splitter-bar-horizontal").each(function(){_(this).outerHeight(_(this).parent().innerHeight())}),i?e.outerWidth(a):e.outerHeight(a)},_adjustHeights:function(t,e){this.options.orientation==j?(t.children(".sui-splitter-collapsible-vertical-up, .sui-splitter-collapsible-vertical-down").each(function(){var t=_(this);t.css({top:t.prev().innerWidth()/2})}),e.children(".sui-splitter-collapsible-vertical-up, .sui-splitter-collapsible-vertical-down").each(function(){var t=_(this);t.css({top:t.prev().innerWidth()/2})})):(t.children(".sui-splitter-pane-horizontal, .sui-splitter-dragbar, .sui-splitter-bar").each(function(){_(this).outerHeight(_(this).parent().innerHeight())}),e.children(".sui-splitter-pane-horizontal, .sui-splitter-dragbar, .sui-splitter-bar").each(function(){_(this).outerHeight(_(this).parent().innerHeight())}),t.children(".sui-splitter-collapsible-horizontal-left, .sui-splitter-collapsible-horizontal-right").each(function(){var t=_(this);t.css({top:t.prev().innerHeight()/2})}),e.children(".sui-splitter-collapsible-horizontal-left, .sui-splitter-collapsible-horizontal-right").each(function(){var t=_(this);t.css({top:t.prev().innerHeight()/2})}))},_adjustDraggables:function(){for(var t,e,i,a,s,n,o,l,r=this,d=r.options.orientation==j,c=0;c<r._dragBars.length;c++)r._dragBars[c]&&(e=r._dragBars[c],l=_(r._children[c]),i=_(r._children[c+1]),a=e.initialOptions,s=d?l.position().left:l.position().top,(n=r._getPaneMin(c))!==v&&(s+=n),(n=r._getPaneMax(c+1))!==v&&(t=d?i.position().left:i.position().top,o=d?i.innerWidth():i.innerHeight(),s=F(s,t-(n-o))),n=d?i.position().left+i.innerWidth():i.position().top+i.innerHeight(),(o=r._getPaneMax(c))!==v&&(t=d?l.position().left:l.position().top,n=m(n,t+o)),(l=r._getPaneMin(c+1))!==v&&(t=d?i.position().left:i.position().top,n=m(n,t+l)),a.min=s,a.max=n,e.refresh(a))},_createCollapseNavigator:function(r,d){var t,c=this,e=_(c.element),i=c.options,h=i.orientation,i=i.panes,a=h==j,s=i&&d<i.length&&i[d].collapsible,i=i&&d<i.length-1&&i[d+1].collapsible;(s||i)&&((t=_('<div class="sui-splitter-collapsible sui-splitter-collapsible-'+h+"-"+(i=a?s?P:W:s?D:E)+'"/>')).insertAfter(r),e={left:a?r.position().left+1:r.position().left+e.innerWidth()/2,top:a?r.position().top+r.innerHeight()/2:r.position().top+1},t.css(e),t.on(z,function(){var t=_(c._children[d]),e=_(c._children[d+1]),i=c._dragBars[d]?_(c._dragBars[d].element):v,a=c._navigators[d],s=a.navigator,n=a.direction,o=a.collapsed,l=a.delta;switch(i&&o&&i.show(),n){case P:o?t.show():(l=0===d?t.outerWidth():t.innerWidth(),t.hide()),e.css({left:e.position().left+(o?l:-l)}),r.css({left:r.position().left+(o?l:-l)}),i&&i.css({left:i.position().left+(o?l:-l)}),s.css({left:s.position().left+(o?l:-l)}),e.outerWidth(e.outerWidth()+(o?-l:l)),s.removeClass("sui-splitter-collapsible-"+h+"-"+(o?W:P)),s.addClass("sui-splitter-collapsible-"+h+"-"+(o?P:W)),a.collapsed=!o,a.delta=a.collapsed?l:0;break;case W:o?e.show():(l=e.innerWidth(),e.hide()),r.css({left:r.position().left+(o?-l:l)}),i&&i.css({left:i.position().left+(o?-l:l)}),s.css({left:s.position().left+(o?-l:l)}),t.outerWidth(t.outerWidth()+(o?-l:l)),s.removeClass("sui-splitter-collapsible-"+h+"-"+(o?P:W)),s.addClass("sui-splitter-collapsible-"+h+"-"+(o?W:P)),a.collapsed=!o,a.delta=a.collapsed?l:0;break;case D:o?t.show():(l=0===d?t.outerHeight():t.innerHeight(),t.hide()),e.css({top:e.position().top+(o?l:-l)}),r.css({top:r.position().top+(o?l:-l)}),i&&i.css({top:i.position().top+(o?l:-l)}),s.css({top:s.position().top+(o?l:-l)}),e.outerHeight(e.outerHeight()+(o?-l:l)),s.removeClass("sui-splitter-collapsible-"+h+"-"+(o?E:D)),s.addClass("sui-splitter-collapsible-"+h+"-"+(o?D:E)),a.collapsed=!o,a.delta=a.collapsed?l:0;break;case E:o?e.show():(l=e.innerHeight(),e.hide()),r.css({top:r.position().top+(o?-l:l)}),i&&i.css({top:i.position().top+(o?-l:l)}),s.css({top:s.position().top+(o?-l:l)}),t.outerHeight(t.outerHeight()+(o?-l:l)),s.removeClass("sui-splitter-collapsible-"+h+"-"+(o?D:E)),s.addClass("sui-splitter-collapsible-"+h+"-"+(o?E:D)),a.collapsed=!o,a.delta=a.collapsed?l:0}i&&a.collapsed&&i.hide(),a.collapsed?c.trigger("collapse",{paneIndex:d}):c.trigger("expand",{paneIndex:d}),c._adjustHeights(t,e)}),c._navigators[d]={navigator:t,delta:0,direction:i,collapsed:!1,index:s?d:d+1})},_manageCollapsedPanes:function(){var t,e,i,a=this.options.panes;if(this._navigators)for(i=0;i<this._navigators.length;i++)t=(e=this._navigators[i]).index,e=e.navigator,a&&t<a.length&&a[t].collapsed&&e.trigger(z)},_getPaneSize:function(t){var e,i=this,a=i.options,s=a.panes,a=a.orientation==j,n=_(i.element);return(e=s&&t<s.length&&(s[t].size||s[t].min)?s[t].size||s[t].min:e)?i._getSize(e,"Invalid pane size")+"px":((a?n.innerWidth():n.innerHeight())-(i._children.length-1)*i._barSize)/i._children.length},_getPaneMin:function(t){var e,i=this.options.panes;return(e=i&&t<i.length&&i[t].min?i[t].min:e)?this._getSize(e,"Invalid min pane size!"):v},_getPaneMax:function(t){var e,i=this.options.panes;return(e=i&&t<i.length&&i[t].max?i[t].max:e)?this._getSize(e,"Invalid max pane size!"):v},_getSize:function(t,e){var i=this.options.orientation==j,a=_(this.element),i=i?a.innerWidth():a.innerHeight();if(R(t)&&"%"==t.charAt(t.length-1)){if(100<=(a=parseInt(t.substring(0,t.length-1),10)))throw e;t=(i-(this._children.length-1)*this._barSize)*a/100}else t=parseInt(t,10);return t},_addPane:function(o,l,r){var t,d,c=this,e=c.options,h=e.orientation,i=h==j,e=e.panes,a=e&&r<e.length&&!1===e[r].resizable,e=e&&r<e.length&&!0===e[r].scrollable;_(c.element);if(l.attr(w)||l.attr(w,b()),l.addClass("sui-splitter-pane sui-splitter-pane-"+h),e&&l.css({overflow:"auto"}),e=c._getPaneSize(r),(t=c._getPaneMin(r))!==v&&e<t)throw"Size less that min pane size!";if((t=c._getPaneMax(r))!==v&&t<e)throw"Size bigger that max pane size!";t={left:(i?c._offset:0)+"px",top:(i?0:c._offset)+"px"},i?(t.width=e,t.height=c._height):t.height=e,l.css(t),r!=o.length-1&&(c._offset+=i?l.outerWidth():l.outerHeight(),e=_("<div> </div>").addClass("sui-unselectable sui-splitter-bar sui-splitter-bar-"+h),t={left:h==j?c._offset:0,top:h==dt?c._offset:0},i?(t.width=c._barSize,t.height=c._height):t.height=c._barSize,e.css(t),e.insertAfter(l),a||((d=_("<div> </div>").addClass("sui-unselectable sui-splitter-dragbar sui-splitter-dragbar-"+h).css(t).insertAfter(e)).attr(I,"separator").attr(tt,l.attr(w)).attr($,u(h==j?l.width():l.height())),a=new p.ui.Draggable(d,{iframeFix:!0,direction:i?j:dt,stack:!1,events:{start:function(t){var e=l,i=_(o[r+1]);e.addClass("sui-unselectable"),i.addClass("sui-unselectable")},stop:function(t){var e,i=l,a=_(o[r+1]),s=c._bars[r],n=c._navigators[r],n=n?n.navigator:v;i.removeClass("sui-unselectable"),a.removeClass("sui-unselectable"),h==j?(e=t.left-s.position().left,i.width(i.width()+e),a.css({left:t.left+s.outerWidth()}),a.width(a.width()-e),d.attr($,u(i.width())),n&&n.css({left:n.position().left+e})):(e=t.top-s.position().top,i.height(i.height()+e),a.css({top:t.top+s.outerHeight()}),a.height(a.height()-e),d.attr($,u(i.height())),n&&n.css({top:n.position().top+e})),s.css({left:t.left,top:t.top}),c._adjustHeights(i,a),c._adjustDraggables(),c.trigger(k,{paneIndex:r})}}}),c._dragBars[r]=a),c._bars.push(e),c._createCollapseNavigator(e,r),c._offset+=c._barSize)},destroy:function(){var t,e=this;for(e.element.removeClass("sui-splitter-container"),_(f).off(k+".shieldSplitter"+e.getInstanceId()),t=0;t<e._children.length;t++){var i=e._navigators[t];i&&i.navigator.off(z)}e._children=e._bars=e._dragBars=e._navigators=null,e._offset=e._height=e._barSize=0,g.fn.destroy.call(e)}})).defaults=t,p.ui.plugin("Splitter",s),t={cls:v,enabled:!0,animation:{enabled:!0,duration:200},mode:nt,expanded:v,dataSource:v,titleTemplate:"{title}",contentTemplate:"{content}",width:v,height:v,maxHeight:v,events:{}},(s=g.extend({init:function(){g.fn.init.apply(this,arguments);var t,e,s,a=this,i=a.options,n=i.cls,o=i.dieOnError,l=i.dataSource,r=(i.expanded,_(a.element));if(a._original=t=_(a.element),a._tagname=e=t.prop("tagName").toLowerCase(),t.wrap("<span/>"),t.hide(),a.element=r=_('<ul class="sui-accordion'+(n?" "+n:"")+'"/>').on(ot,function(){a.trigger(ot)}).on(lt,function(){a.trigger(lt)}),t.after(r),n=t.attr(M),r.attr(M,T(n)?n:"0"),T(i.width)&&r.css("width",i.width),T(i.height)&&r.css("height",i.height),T(i.maxHeight)&&r.css("max-height",i.maxHeight),l)a.dataSource=d.create(l);else{if("ul"!==e)return a.destroy(),void S("shieldAccordion: No dataSource or underlying UL element found.",o);s=function(t){var a=[];return _(t).children("li").each(function(t,e){var i={title:_(this).children("h1, h2, h3, h4, h5, h6").first().html(),content:_(this).children("div, p").first()};0<_(this).children("ul").length&&(i.items=s(_(this).children("ul")[0])),a.push(i)}),a},a.dataSource=d.create({data:t,schema:{parse:s}}),a.options.contentTemplate=function(t,e,i){a._moveElement(t.content,i)},a._fromUL=!0}a.dataSource.on(rt+".shieldAccordion"+a.getInstanceId(),x(a._dsChange,a)),a.dataSource.read()},refresh:function(t){this.refreshWithElement(this._original,t)},_dsChange:function(){var t=this,e=t.options;t._render(),t._dsLoadedOnce||(t._dsLoadedOnce=!0,T(e.expanded)?t.expanded(e.expanded):t.dataSource.view&&0<t.dataSource.view.length&&t.expanded(0),t.enabled(e.enabled))},_moveElement:function(t,e){_(t).data(n,_(t).parent()).data(o,_(t).prev()).addClass("sui-accordion-elm").appendTo(e)},_restoreElement:function(t){var e=_(t).data(o),i=_(t).data(n);0<_(e).length?_(t).insertAfter(e):_(t).prependTo(i),_(t).removeData(n).removeData(o).removeClass("sui-accordion-elm")},_restoreAll:function(){var t=this;_(t.element).find(".sui-accordion-elm").each(function(){t._restoreElement(_(this))})},_render:function(){var n=this,o=n.options,t=n.dataSource.view,l=_(n.element),r=t.length;l.empty(),t&&G(t,function(t,e){var i=b(),a=_('<li class="sui-accordion-item '+(r<=t+1?"sui-accordion-item-last ":"")+'sui-accordion-item-collapsed"/>').data(U,t).data(ct,e).appendTo(l),s=_('<div class="sui-accordion-item-title"/>').click(function(t){n._enabled&&n._itemClick(_(a))}).appendTo(a),t=C.call(n,o.titleTemplate,e,t,s);T(t)&&!X(t)&&s.html(t),t=_('<div class="sui-accordion-item-body"/>').appendTo(a).hide(),s.attr(I,"button").attr(tt,i).attr(et,Z),t.attr(w,i),_('<div class="sui-accordion-item-body-content"/>').appendTo(t),c.array(e.items)&&0<e.items.length&&_("<div/>").appendTo(t).shieldAccordion({cls:"sui-accordion-item-body-items "+(o.cls?" "+o.cls:""),enabled:o.enabled,animation:o.animation,mode:o.mode,dataSource:{data:e.items},titleTemplate:o.titleTemplate,contentTemplate:o.contentTemplate,events:o.events})})},_itemClick:function(t){var e=this,i=e.options,a=t.hasClass("sui-accordion-item-collapsed");i.mode==nt?a&&(e._collapse(t.siblings(".sui-accordion-item").not(".sui-accordion-item-collapsed").first(),!1,!0),e._expand(t,!1,!1)):a?e._expand(t,!1,!1):e._collapse(t,!1,!1)},_expand:function(t,e,i){var a=this.options,e=a.animation.enabled&&!e,s=a.animation.duration,n=_(t).children(".sui-accordion-item-body").first(),o=t.data(U),l=t.data(ct);!i&&this.trigger("expand",{item:l,index:o,element:t}).isDefaultPrevented()||(1!==t.data(ht)&&(t.data(ht,1),i=t.children(".sui-accordion-item-body").first().children(".sui-accordion-item-body-content").first(),l=C.call(this,a.contentTemplate,l,o,i),T(l)&&!X(l)&&i.html(l)),t.removeClass("sui-accordion-item-collapsed").addClass("sui-accordion-item-expanded"),(o=_(t).children(".sui-accordion-item-title").first()).attr(et,Y),a.mode==nt&&o.attr(it,Y),e?n.slideDown(s):n.show())},_collapse:function(t,e,i){var a=this.options,e=a.animation.enabled&&!e,a=a.animation.duration,s=_(t).children(".sui-accordion-item-body").first(),n=t.data(U),o=t.data(ct);!i&&this.trigger("collapse",{item:o,index:n,element:t}).isDefaultPrevented()||(t.removeClass("sui-accordion-item-expanded").addClass("sui-accordion-item-collapsed"),_(t).children(".sui-accordion-item-title").first().attr(et,Z).removeAttr(it),e?s.slideUp(a):s.hide())},expanded:function(){var t,e,i,a,s=this,n=_(s.element),o=(s._original,[].slice.call(arguments));if(!(0<o.length))return l(n.children(".sui-accordion-item").not(".sui-accordion-item-collapsed"),function(t){return t.data(U)});t=r.array(o[0]),e=!T(o[1])||!!o[1],i=!T(o[2])||!!o[2],a=n.children(),l(t,function(t){0<=t&&(e?s._expand(_(a[t]),i,!0):s._collapse(_(a[t]),i,!0))})},enabled:function(){var t=_(this.element),e=this._original,i=[].slice.call(arguments);if(!(0<i.length))return this._enabled;(i=!!i[0])?(t.removeAttr(h).removeClass("sui-accordion-disabled"),e.removeAttr(h)):(t.attr(h,h).addClass("sui-accordion-disabled"),e.attr(h,h)),this._enabled=i},destroy:function(){var t=this;t.dataSource&&t.dataSource.off(".shieldAccordion"+t.getInstanceId()),t._restoreAll(),_(t.element).remove(),t._original&&t._original.unwrap().show(),t._original=t._dsLoadedOnce=t._fromUL=t._currItemEl=v,g.fn.destroy.call(t)}})).defaults=t,p.ui.plugin("Accordion",s),t={cls:v,active:v,collapsible:!1,animation:{enabled:!0,activateDuration:160,deactivateDuration:60},titleTemplate:"{title}",titleClsTemplate:"{titleCls}",itemClsTemplate:"{itemCls}",hrefTemplate:"{href}",contentTemplate:"{content}",disabledTemplate:"{disabled}",iconUrlTemplate:"{iconUrl}",iconClsTemplate:"{iconCls}",position:N,dataSource:v,readDataSource:!0,trigger:z,events:{}},(s=g.extend({init:function(){g.fn.init.apply(this,arguments);var t=this,e=_(t.element),i=_(e).children("ul, ol").first(),a=t.options,s=a.position,n=a.dieOnError,o=a.dataSource,l=a.cls,r=t._eventNS=".shieldTabs"+t.getInstanceId();if(i.length<=0?t._noTabList=!(i=null):t._noTabList=!1,t._tabList=i,e.addClass("sui-tabs sui-tabs-"+s+(l?" "+l:"")),e.on("keydown"+r,x(t._keydown,t)),o)t.dataSource=d.create(o);else{if(!i)return t.destroy(),void S("shieldTabs: No dataSource or tabs UL element found.",n);t.dataSource=d.create({data:i,schema:{parse:function(t){var e=[];return _(t).children("li").each(function(){var t=_(this),t={title:t.html(),titleCls:t.attr("data-title-class"),itemCls:t.attr("data-item-class"),href:t.attr("data-href"),disabled:t.attr("data-disabled")?!!t.attr("data-disabled"):T(t.attr(h))&&null!==t.attr(h),iconUrl:t.attr("data-icon-url"),iconCls:t.attr("data-icon-cls")};e.push(t)}),e}}})}_(f).on(k+r,x(t._adjustTabListHeight,t)),_(e).children("div").hide(),t.dataSource.on(rt+r,x(t._dsChange,t)),e.attr(I,"tablist"),s!=P&&s!=W||e.attr("aria-orientation",dt),o&&!a.readDataSource||t.dataSource.read()},_dsChange:function(){this._render()},_getItemIcon:function(t){var e=this.options,i=C(e.iconUrlTemplate,t);return i&&"undefined"!==i?_('<span class="sui-tabs-tab-icon"/>').append('<img src="'+i+'"/>'):(i=C(e.iconClsTemplate,t))&&"undefined"!==i?_('<span class="sui-tabs-tab-icon"/>').addClass(i):v},_render:function(){var t,e,i=this,a=_(i.element),s=i.options,n=s.active,o=i._tabList,l=i.dataSource.view||[],r=l.length,d=[];if(i._initialized&&(_(o).remove(),_(a).children("div").remove(),i._tabList=o=i._divs=t=v),!o)for(i._tabList=o=_("<ul/>").prependTo(a),e=0;e<r;e++)c=l[e],o.append(_("<li/>").append(i._getItemIcon(c),'<span class="sui-tabs-tab-text">'+C(s.titleTemplate,c)+"</span>"));if(s.position==A&&o.appendTo(a),o.addClass("sui-tabs-tablist"+(s.collapsible?" sui-tabs-tablist-collapsible":"")),o.children("li").each(function(){_(this).attr(w)||_(this).attr(w,b()),_(this).attr(I,"tab")}),i._initialized||T(a.attr(M))||a.attr(M,"0"),i._tabListHeight=o.outerHeight(),_(a).children("div").length<=0)for(e=0;e<r;e++)_(a).append('<div class="sui-tabs-cust"/>');for(i._divs=t=_(a).children("div"),_(t).addClass("sui-tabs-item"),_(t).hide(),e=0;e<r;e++){var c=l[e],h=o.children("li:eq("+e+")"),u=_(t[e]),p=C(s.titleClsTemplate,c),f=C(s.itemClsTemplate,c),g=C(s.disabledTemplate,c);p&&"undefined"!==p&&h.addClass(p),f&&"undefined"!==f&&u.addClass(f),(V(g)&&g||"true"===g||"1"===g||1===g)&&d.push(e),h.on(s.trigger+i._eventNS,x(i._select,i,e,h,u)),u.attr(I,"tabpanel").attr(at,h.attr(w)),u.attr(w)||u.attr(w,b()),h.attr(tt,u.attr(w))}if(!(i._initialized=!0)!==n&&(n=J(n)?n:0,n=F(0,m(n,t.length-1)),i._selectedIndex=n,i._activate(n,!0,!1)),0<d.length)for(e=0;e<d.length;e++)i.enabled(d[e],!1)},_select:function(t,e,i){var a,s=this,n=s.options,o=n.collapsible,l=s.dataSource.view||[];s.enabled(t)&&(t!==s._selectedIndex||o)&&(e=e||_(s._tabList).children("li:eq("+t+")"),i=i||_(s._divs[t]),o=!((a=_(e).hasClass("sui-tabs-tab-active"))&&o&&n.trigger!==H),s.trigger("select",{tab:e,content:i,active:a,activate:o,index:t,item:l[t]}).isDefaultPrevented()||(s._selectedIndex=t,s._activate(t,o,!0,e,i)))},_activate:function(a,s,t,n,o){var l,e,i,r,d=this,c=d.options,h=c.animation,u=h.enabled,p=d.dataSource.view||[];d.enabled(a)&&(s||a===d._activeIndex)&&(n=n||_(d._tabList).children("li:eq("+a+")"),o=o||_(d._divs[a]),l=p[a],_(d._divs).stop(!0,!0),_(d._tabList).children("li").removeClass("sui-tabs-tab-active").attr(st,Z),i=function(){r=function(){t&&d.trigger("activate",{tab:n,content:o,active:s,index:a,item:l}),d._adjustTabListHeight()},s?(d._activeIndex=a,_(n).addClass("sui-tabs-tab-active").attr(st,Y),(e=C(c.hrefTemplate,l))&&"undefined"!==e?_(o).load(e,v,function(t,e,i){d.trigger("load",{responseText:t,textStatus:e,jqXHR:i,tab:n,content:o,active:s,index:a,item:l}),d._adjustTabListHeight()}):(e=C(c.contentTemplate,l))&&"undefined"!==e&&_(o).html(e),_(o).fadeIn(u?h.activateDuration:0,r)):(d._activeIndex=v,r())},T(d._activeIndex)?_(d._divs).each(function(t){t!==d._activeIndex?_(this).hide():_(this).fadeOut(u?h.deactivateDuration:0,i)}):i())},_adjustTabListHeight:function(){var t,e=this,i=e.options.position;(i==P||i==W&&e._divs&&e._divs[e._activeIndex])&&(i=_(e._tabList),t=_(e._divs[e._activeIndex]).innerHeight(),i.css("min-height",t),i=_(i.children("li").last()),e._tabListHeight>=t?i.addClass("sui-tabs-tab-last-bottom"):i.removeClass("sui-tabs-tab-last-bottom"))},_keydown:function(t){var e,i=this;if(_(i.element)[0]===_(t.target)[0]){switch(t.keyCode){case a.UP:case a.LEFT:i._selectPrevNext(t,!0),e=!0;break;case a.DOWN:case a.RIGHT:i._selectPrevNext(t,!1),e=!0;break;case a.SPACE:i.options.collapsible&&i._toggleCurrent(t),e=!0}e&&t.preventDefault()}},_toggleCurrent:function(t){var e=this._selectedIndex;T(e)&&this._activate(e,e!==this._activeIndex,!0)},_selectPrevNext:function(t,e){var i=this,a=i._selectedIndex,e=T(a)?e?i._getPrevSelectableIndex():i._getNextSelectableIndex():i._getFirstSelectableIndex();T(e)&&e!==a&&i._select(e)},_getFirstSelectableIndex:function(){var e,i=this;return _(i._tabList).children("li").each(function(t){if(i.enabled(t))return e=t,!1}),e},_getNextSelectableIndex:function(){var t,e=this._selectedIndex,i=_(this._tabList).children("li").length;if(e<i-1)for(t=e+1;t<i;t++)if(this.enabled(t))return t;if(0<e)for(t=0;t<e;t++)if(this.enabled(t))return t;return v},_getPrevSelectableIndex:function(){var t,e=this._selectedIndex,i=_(this._tabList).children("li").length;if(0<e)for(t=e-1;0<=t;t--)if(this.enabled(t))return t;if(e<i-1)for(t=i-1;e<t;t--)if(this.enabled(t))return t;return v},enabled:function(){var t=[].slice.call(arguments),e=t[0],e=_(this._tabList).children("li:eq("+e+")");if(0<e.length){if(!(1<t.length))return!_(e).hasClass("sui-tabs-tab-disabled");t[1]?_(e).removeClass("sui-tabs-tab-disabled"):_(e).addClass("sui-tabs-tab-disabled")}},enabledIndices:function(){var i=[];return _(this._tabList).children("li").each(function(t,e){_(this).hasClass("sui-tabs-tab-disabled")||i.push(t)}),i},active:function(){var t=[].slice.call(arguments);if(!(0<t.length))return this._activeIndex;this._activate(t[0],t[1],!1)},content:function(t){return _(this._divs)[t]},destroy:function(){var t=this,e=_(t.element),i=t.options,a=i.cls,s=t._tabList,n=t._eventNS;t.dataSource&&t.dataSource.off(rt+n),_(f).off(n),_(e).removeClass("sui-tabs sui-tabs-"+i.position+(a?" "+a:"")),_(e).children("div").removeClass("sui-tabs-item"),_(e).children(".sui-tabs-cust").remove(),t._divs=null,_(s).children("li").removeClass("sui-unselectable").off(n),_(s).removeClass("sui-tabs-tablist"),t._noTabList&&_(s).remove(),t._tabList=t._noTabList=t._activeIndex=t._selectedIndex=t._initialized=t._tabListHeight=v,g.fn.destroy.call(t)}})).defaults=t,p.ui.plugin("Tabs",s)}(jQuery,shield,this); -!function(o,i,e){var a=i.ui.Widget,l=document,d=Math.ceil,t=navigator.userAgent,e=e.opera,m=/msie/i.test(t)&&!e&&7===l.documentMode,t=(o.extend,{show:!1,showImage:!0,text:null,template:null,useSmallImage:!1}),e=a.extend({init:function(e,t){var n=this;a.fn.init.apply(n,arguments),n.refresh(),n.options.show?n.show():n.hide()},destroy:function(){var e=this;o(e.mainElement).remove(),e.options.showImage&&(o(e.loadingImage).remove(),e.loadingImage=null),e.loadingText&&(o(e.loadingText).remove(),e.loadingText=null),o(e.backgroundElement).remove(),e.mainElement=e.backgroundElement=null,a.fn.destroy.call(e)},_render:function(){var e,t,n=this,i=n.options,a=i.template,s=(n.mainElement=e=o("<div/>").appendTo(l.body),e.addClass("sui-loading-panel"),m&&e.addClass("sui-loading-panel-ie7"),a?((a=o(a.replace(/^\s+/,"").replace(/\s+$/,""))).appendTo(l.body),t=d((n.element.height()-a.height())/2),s=d((n.element.width()-a.width())/2),a.css({"z-index":"inherit",position:"relative",dispaly:"block",top:t+"px",left:s+"px"}).appendTo(e),n.template=a):(i.showImage&&(t=o("<span/>").appendTo(e),n.loadingImage=t,i.useSmallImage?t.addClass("sui-loading-image-small"):t.addClass("sui-loading-image")),i.text&&n._generateTextElement()),o("<span/>").appendTo(e));(n.backgroundElement=s).addClass("sui-loading-back"),n._setPosition()},_generateTextElement:function(){var e=this,t=o("<span/>").appendTo(e.mainElement);t.get(0).innerHTML=e.options.text,t.addClass("sui-loading-text"),e.loadingText=t},refresh:function(){var e=this,t=(e.options,!e.mainElement||"none"==e.mainElement.css("display"));e.destroy(),e._render(),t?e.hide():e.show()},_setPosition:function(){var e=this,t=(e.options,e.element.offset()),n=i.ui.Util.GetMaxZIndex("div")+1;e.mainElement.css({left:d(t.left)+"px",top:d(t.top)+"px","z-index":n}),m&&(e.loadingText&&e.loadingText.css({"z-index":n+1}),e.loadingImage&&e.loadingImage.css({"z-index":n+1}),e.template&&e.template.css("z-index",n+1))},_setElementsPosition:function(){var e=this,t=e.element.height(),n=e.loadingImage,i=e.loadingText,a=n?n.height():0,s=i?i.height():0,t=d((t-a-s)/2);n&&e.loadingImage.css("top",t+"px"),i&&e.loadingText.css("top",t+"px")},show:function(){var e=this,t=e.options,n=e.element;e.mainElement.width(n.get(0).offsetWidth),e.mainElement.height(n.get(0).offsetHeight),e._setPosition(),e.mainElement.css("display",""),t.template||e._setElementsPosition()},hide:function(){this.mainElement.css("display","none")},setText:function(e){this.options.text=e,this.refresh()}});e.defaults=t,i.ui.plugin("LoadingPanel",e)}(jQuery,shield,this); -!function(S,M,a){function F(e,r,s,t){return t=(t-90)*Math.PI/180,{x:e+s*Math.cos(t),y:r+s*Math.sin(t)}}var i=M.ui.Widget,e=(M.Class,M.Constants),l=document,N=e.SVG_NS,z=!!l.createElementNS&&!!l.createElementNS(N,"svg").createSVGRect,n=(S.map,S.each,S.proxy),P=M.to.int,t=(M.is.func,M.error,Math.min),o=Math.max,c="disabled",B="px",p="float",d="left",h="right",D="horizontal",I="vertical",R="circular",e={cls:void 0,enabled:!0,min:0,max:100,value:0,layout:D,layoutOptions:{circular:{width:30,color:"#197BB5",colorDisabled:"#C4C4C4",borderColor:"#C4C4C4",borderWidth:1,backgroundColor:"#FFFFFF"}},reversed:!1,text:{enabled:!1,template:"{0}"},events:{}},r=i.extend({init:function(){i.fn.init.apply(this,arguments);var e=this,r=S(e.element),s=e.options,t=s.layout,o=s.cls;e._eventNS=".shieldProgressbar"+e.getInstanceId(),r.addClass("sui-progressbar"),t===I?r.addClass("sui-progressbar-vertical"):t===R&&r.addClass("sui-progressbar-circular"),t!==R&&(e.inner=S("<div/>").addClass("sui-progressbar-value").appendTo(r)),o&&r.addClass(o),t===D?(r=e.inner.css(p)||d,r=s.reversed?r===d?h:d:r===h?h:d,e.inner.css(p,r)):t!=R||z||l.namespaces.scvprogressbar||l.namespaces.add("scvprogressbar","urn:schemas-microsoft-com:vml","#default#VML"),S(a).on("resize"+e._eventNS,n(e._winResize,e)),e._value=s.value,e._render(),e.enabled(s.enabled)},_winResize:function(){this._render()},_render:function(){var e,r,s,t,o,a=this,i=a.options,l=i.layout,n=i.reversed,c=i.min,p=i.max,d=a._value,h=i.text,v=S(a.element),g=v.width(),u=v.height(),b=a.inner,f=p-c,x=P(100*(d-c)/f);if(l===I)m=P(x*u/100),b.css({width:"100%",height:m+B,"margin-top":(n?"0":u-m)+B});else if(l===D)b.css({width:x+"%",height:u+B});else{if(l!==R)return;var m="",b=i.layoutOptions[l],x=b.width,i=b.borderWidth,l=a._enabled?b.color:b.colorDisabled,y=b.borderColor,b=b.backgroundColor,w=g/2,C=u/2,_=(u<g?C:w)-x/2-1,k=2*_,c=P(360*(d-c)/f),f=n?360-c:0,n=f+c,c=x-2*i;z?(m='<svg xmlns="'+N+'" version="1.1" width="'+g+'" height="'+u+'">',0<i&&(m+='<circle cx="'+w+'" cy="'+C+'" r="'+_+'" stroke="'+y+'" stroke-width="'+x+'" fill="none" />'),p<=d?m+='<circle cx="'+w+'" cy="'+C+'" r="'+_+'" stroke="'+l+'" stroke-width="'+c+'" fill="none" />':m=(m+='<circle cx="'+w+'" cy="'+C+'" r="'+_+'" stroke="'+b+'" stroke-width="'+c+'" fill="none" />')+'<path d="'+(s=f,o=F(e=w,r=C,_=_,t=n),e=F(e,r,_,s),r=t-s<=180?"0":"1",["M",o.x,o.y,"A",_,_,0,r,0,e.x,e.y].join(" "))+'" stroke="'+l+'" stroke-width="'+c+'" fill="none" />',m+="</svg>"):(m+='<scvprogressbar:group style="width:'+g+"px; height:"+u+'px;" coordsize="'+g+","+u+'">',0<i&&(m+='<scvprogressbar:oval style="width:'+k+"px; height:"+k+"px; position:relative; top:"+C+"px; left:"+w+'px;" strokeweight="'+x+'px" strokecolor="'+y+'" fill="false"><scvprogressbar:fill opacity="0%" color="transparent" /></scvprogressbar:oval>'),p<=d?m+='<scvprogressbar:oval style="width:'+k+"px; height:"+k+"px; position:relative; top:"+C+"px; left:"+w+'px;" strokeweight="'+c+'px" strokecolor="'+l+'" fill="false"><scvprogressbar:fill opacity="0%" color="transparent" /></scvprogressbar:oval>':m=m+'<scvprogressbar:oval style="width:'+k+"px; height:"+k+"px; position:relative; top:"+C+"px; left:"+w+'px;" strokeweight="'+c+'px" strokecolor="'+b+'" fill="false"><scvprogressbar:fill opacity="0%" color="transparent" /></scvprogressbar:oval><scvprogressbar:arc style="width:'+k+"px; height:"+k+"px; position:relative; top:"+C+"px; left:"+w+'px;" fill="false" strokeweight="'+c+'px" strokecolor="'+l+'" startangle="'+f+'" endangle="'+n+'"><scvprogressbar:fill opacity="0%" color="transparent" /></scvprogressbar:arc>',m+="</scvprogressbar:group>"),v.html(m)}h.enabled&&(v.find(".sui-progressbar-text").remove(),a.text=S('<div class="sui-progressbar-text" />').appendTo(v).html(M.format.call(a,h.template,a._value)),t=a.text.width(),s=a.text.height(),a.text.css({top:(u-s)/2+B,left:(g-t)/2+B}))},value:function(){var e=this,r=e.options,s=[].slice.call(arguments);if(!(0<s.length))return e._value;e._enabled&&(s=o(t(s[0],r.max),r.min),e.trigger("change",{value:s}).isDefaultPrevented()||(e._value=s,e._render(),s>=r.max&&e.trigger("complete")))},enabled:function(){var e=this,r=S(e.element),s=[].slice.call(arguments);if(!(0<s.length))return e._enabled;(s=!!s[0])?r.removeAttr(c).removeClass("sui-progressbar-disabled"):r.attr(c,c).addClass("sui-progressbar-disabled"),e._enabled=s,e.options.layout==R&&e._render()},destroy:function(){var e=this.options.cls;S(a).off(this._eventNS),S(this.element).removeClass("sui-progressbar sui-progressbar-disabled sui-progressbar-vertical sui-progressbar-circular"+(e?" "+e:"")).empty(),i.fn.destroy.call(this)}});r.defaults=e,M.ui.plugin("ProgressBar",r)}(jQuery,shield,this); -!function(_,v,o){var e,u,c,m=v.ui.Widget,f=(v.Class,v.DataSource),d=v.ui.Position,a=v.Constants.KeyCode,M=v.strid,g=document,b=_.proxy,O=_.each,x=_.grep,l=_.extend,H=v.error,U=v.format,h=v.is.defined,s=v.is.boolean,B=v.is.integer,z=v.is.func,C="role",I="true",p="false",E="aria-expanded",i="aria-activedescendant",S="horizontal",y="vertical",T="focus",w="blur",N="change",k="tabindex",G="disabled",j="sui-menu-item-level",D="sui-menu-item-expanded",A="sui-menu-item-disabled",r="sui-menu-item-selected",q="sui-menu-item-index",F="sui-menu-item-hover",P="sui-menu-item-data-item",L="sui-menu-item-parent",R="sui-menu-item-cc",t={cls:o,width:o,height:o,dataSource:o,readDataSource:!0,orientation:S,delay:100,animation:{enabled:!0,openDelay:100,closeDelay:50},contentTemplate:"{content}",overflow:"flipfit",events:{}},W=m.extend({init:function(){m.fn.init.apply(this,arguments);var e,t,a,n,i=this,s=_(i.element),r=i.options,l=r.dieOnError,o=r.dataSource,u=r.cls,c=r.renderToINTERNAL,d=r.wrapOriginalINTERNAL,d=!h(d)||d;if(i._original=e=_(i.element),i._tagname=t=e.prop("tagName").toLowerCase(),i._isContext=r.isContextINTERNAL,n=i._eventNS=".shieldMenu"+i.getInstanceId(),d?(i.wrapper=e.wrap("<div/>").parent(),i._isWrapped=!0):i._isWrapped=!1,e.hide(),i.element=s=_('<ul class="sui-menu sui-menu-top sui-menu-'+r.orientation+(u?" "+u:"")+'"/>').on(T+n,b(i._focus,i)).on(w+n,b(i._blur,i)).on("keydown"+n,b(i._keydown,i)),0<_(c).length?_(c).append(s):e.after(s),h(r.width)&&s.css("width",r.width),h(r.minWidth)&&s.css("minWidth",r.minWidth),h(r.height)&&s.css("height",r.height),d=e.attr(k),s.attr(k,h(d)?d:"0"),i._isRtl=v.support.isRtl(s),o)i.dataSource=f.create(o);else{if("ul"!==t)return i.destroy(),void H("shieldMenu: No dataSource or underlying UL element found.",l);a=function(e){var i=[];return _(e).children("li").each(function(){var e=_(this),t=0<e.children("ul").length,n={cls:e.attr("data-class"),content:(t?e.children().not("ul").first():e).html(),href:e.attr("data-href")?e.attr("data-href"):e.children().not("ul").first().attr("href"),disabled:e.attr("data-disabled")?e.attr("data-disabled"):h(e.attr(G))&&null!==e.attr(G),separator:"separator"===e.attr("data-role"),iconUrl:e.attr("data-icon-url"),iconCls:e.attr("data-icon-cls")};t&&(n.items=a(e.children("ul")[0])),i.push(n)}),i},i.dataSource=f.create({data:e,schema:{parse:a}})}i.dataSource.on(N+n,b(i._dsChange,i)),s.attr(C,i._isContext?"menu":"menubar").attr("aria-orientation",r.orientation),r.readDataSource&&i.dataSource.read()},refresh:function(e){this.refreshWithElement(this._original,e)},_isFocused:function(){return _(this.element).hasClass("sui-menu-focus")},_focus:function(e){var t=this;t._blurTimeout&&(clearTimeout(t._blurTimeout),t._blurTimeout=null),t._isFocused()||(_(t.element).addClass("sui-menu-focus"),_(t.element).focus(),t.trigger(T))},_blur:function(e){var t=this;t._isFocused()&&(t._blurTimeout&&clearTimeout(t._blurTimeout),t._blurTimeout=setTimeout(function(){_(t.element).removeClass("sui-menu-focus"),t._collapseAll(),t._deselectAll(),t.trigger(w)},100))},_dsChange:function(){this._renderItems(this.dataSource.view,this.element,0,null)},_getItemIcon:function(e){var t=_('<span class="sui-menu-item-icon"/>');return e.iconUrl?t.append('<img src="'+e.iconUrl+'"/>'):e.iconCls&&t.addClass(e.iconCls),t},_renderItems:function(e,t,n,i){for(var a,s,r,l,o,u,c,d=this,m=d.options,f=(e||[]).length,h=0<x(e||[],function(e){return e.iconUrl||e.iconCls}).length,p=0;p<f;p++)u=!!(a=e[p]).disabled,r=a.href,o=!(c=a.separator)&&a.items&&0<a.items.length,l=a.iconUrl||a.iconCls,s=c?" ":U.call(d,m.contentTemplate,a),r=_('<a class="sui-menu-item-link" '+(r?'href="'+r+'"':"")+' tabindex="-1"/>').append('<span class="sui-menu-item-text'+(o?" sui-menu-item-text-hc":"")+'">'+s+"</span>"),s=_('<li class="sui-menu-item sui-unselectable'+(u?" sui-menu-item-disabled":"")+(c?" sui-menu-item-separator":"")+(a.cls?" "+a.cls:"")+'"/>').on("selectstart",function(){return!1}).appendTo(t).data(P,a).data(L,i).data(j,n).data(A,u).data(q,p).attr(C,c?"separator":"menuitem").attr("id",M()).append(r),c?s.attr("aria-orientation",0<n||m.orientation===y?S:y):u&&s.attr("aria-disabled",I),r.click(b(d._itemClicked,d,s)).on(T,b(d.focus,d)),!c&&h&&(0<n||l||m.orientation===y)&&r.prepend(d._getItemIcon(a)),o&&(r.append('<span class="sui-menu-item-children-caret"/>'),(u=_('<div class="sui-menu-submenu"/>').hide().data("sui-menu-item-cc-parent",s).appendTo(s)).css("z-index",v.ui.Util.GetMaxZIndex(".sui-menu, .sui-menu-submenu",g.body)+1),c=_('<ul class="sui-menu sui-menu-vertical"/>').attr(C,"menu").appendTo(u),d._renderItems(a.items,c,n+1,s),s.data(R,u).attr("aria-haspopup","true").hover(b(d._itemMouseEnter,d,s,!0),b(d._itemMouseLeave,d,s,!0)))},_itemMouseEnter:function(e,t){var n=this;e.addClass(F),setTimeout(function(){e.hasClass(F)&&n._itemExpand(e,t)},n.options.delay)},_itemMouseLeave:function(e,t){e.removeClass(F),this._itemCollapse(e,!0,t)},_itemExpand:function(e,t,n){var i=this,a=i.options,s=a.animation,r=e.data(j),l=e.data(R),r=0===r&&a.orientation===S,o=e.data(P),u=e.data(L);i._isExpandable(e)&&i._canHaveFocus(e)&&l&&(l.stop(!0,!0),u&&!i._isExpanded(u)&&i._itemExpand(u,!1,!0,!0),t&&i.trigger("expand",{element:e,item:o}),r&&l.css("min-width",e.outerWidth()),l.show(),d.Set(l,e,{source:"left top",target:r?"left bottom":"right top",overflow:a.overflow}),!n&&s&&s.enabled?l.hide().slideDown(s.openDelay,function(){e.data(D,!0).attr(E,I)}):e.data(D,!0).attr(E,I))},_itemCollapse:function(e,t,n,i){var a=this,s=a.options.animation,r=e.data(R),l=e.data(P),o=e.data(L);r&&(r.stop(!0,!0),n&&a.trigger("collapse",{element:e,item:l}),t=!h(t)||!!t,_(r).find("ul").first().children().each(function(){var e=_(this);a._isExpanded(e)&&a._itemCollapse(e,t,!1,!0)}),!i&&s&&s.enabled?r.slideUp(s.closeDelay,function(){e.data(D,!1).attr(E,p),t&&o&&!o.hasClass(F)&&a._itemCollapse(o,!0,!1,!0)}):(r.hide(),e.data(D,!1).attr(E,p),t&&o&&!o.hasClass(F)&&a._itemCollapse(o,!0,!1,!0)))},_collapseAll:function(){var t=this;_(t.element).children("li").each(function(){var e=_(this);t._isExpanded(e)&&t._itemCollapse(e,!1,!1,!0)})},_isExpandable:function(e){return!!e.data(R)},_isExpanded:function(e){return!0===e.data(D)},_hasExpanded:function(e){var t=this,n=e.data(R);return!0===e.data(D)&&0<x(_(n).find("ul").first().children(),function(e){return t._isExpanded(_(e))||t._hasExpanded(_(e))}).length},_canHaveFocus:function(e){return!e.data(A)&&!e.data(P).separator},_keydown:function(e){var t,n=this,i=!0;switch(e.keyCode){case a.UP:n._move("up",e);break;case a.DOWN:n._move("down",e);break;case a.LEFT:n._move("left",e);break;case a.RIGHT:n._move("right",e);break;case a.SPACE:case a.ENTER:t=n._getSelected(),h(t)&&(n._isExpanded(t)||n._itemExpand(t,!0),n._itemClicked(t));break;default:i=!1}i&&e.preventDefault()},_getFirstSelectableItem:function(e){var t,n=this;return _(e).children("li").each(function(){var e=_(this);if(n._canHaveFocus(e))return t=e,!1}),t},_getNextSelectableItem:function(e){var t,n,i=e.parent(),a=e.index(),s=i.children("li"),r=s.length;if(a<r-1)for(n=a+1;n<r;n++)if(t=_(s[n]),this._canHaveFocus(t))return t;if(0<a)for(n=0;n<a;n++)if(t=_(s[n]),this._canHaveFocus(t))return t;return e},_getPrevSelectableItem:function(e){var t,n,i=e.parent(),a=e.index(),s=i.children("li"),i=s.length;if(0<a)for(n=a-1;0<=n;n--)if(t=_(s[n]),this._canHaveFocus(t))return t;if(a<i-1)for(n=i-1;a<n;n--)if(t=_(s[n]),this._canHaveFocus(t))return t;return e},_move:function(e,t){var n,i,a,s,r=this,l=r._getSelected();r._isRtl;if(h(l))if(n=l.parent().hasClass("sui-menu-vertical")?y:S,a=(i=l.data(L))?i.parent().hasClass("sui-menu-vertical")?y:S:o,n==S){if("up"===e)return void r._itemCollapse(l,!1,!0);if("down"===e){if(!r._isExpandable(l))return;r._itemExpand(l,!0),s=r._getFirstSelectableItem(l.find(".sui-menu-submenu > .sui-menu").first())}else if("left"===e){if((s=r._getPrevSelectableItem(l))===l)return}else{if("right"!==e)return;if((s=r._getNextSelectableItem(l))===l)return}}else if("up"===e){if(0===l.index()){if(i&&a===S)s=i,r._itemCollapse(s,!1,!0);else if((s=r._getPrevSelectableItem(l))===l)return}else if((s=r._getPrevSelectableItem(l))===l)return}else if("down"===e){if((s=r._getNextSelectableItem(l))===l)return}else if("left"===e){if(!i||a!==y)return;s=i,r._itemCollapse(s,!1,!0)}else{if("right"!==e)return;if(!r._isExpandable(l))return;r._itemExpand(l,!0),s=r._getFirstSelectableItem(l.find(".sui-menu-submenu > .sui-menu").first())}else s=r._getFirstSelectableItem(r.element);h(s)&&(r._setSelected(s,!0),r.trigger("select",{element:s,item:s.data(P)}))},_deselectAll:function(){var e=this.element;_(e).find("."+r).each(function(){_(this).removeClass(r)}),e.removeAttr(i)},_setSelected:function(e,t){var n=this.element;this._canHaveFocus(e)&&(t?(this._deselectAll(),_(e).addClass(r),n.attr(i,e.attr("id"))):(_(e).removeClass(r),n.removeAttr(i)))},_getSelected:function(){var e=_(this.element).find("."+r).first();return 0<_(e).length?e:o},_isSelected:function(e){return _(e).hasClass(r)},_itemClicked:function(e,t){var n=e.data(P);t&&t.isPropagationStopped()||(this._focus(),this._canHaveFocus(e)&&(e={item:n},this._isContext&&(e.element=c),n=this.trigger("click",e),t&&(t.stopPropagation(),n.isDefaultPrevented()&&t.preventDefault())))},_getItemByIndex:function(){var e,t,n=[].slice.call(arguments),i=o;if(0<n.length)for(t=0;t<n.length;t++){if(e=n[t],!B(e))return o;if(i=(0===t?_(this.element):_(_(i).data(R)).children("ul").first()).children("li:eq("+e+")"),_(i).length<=0)return o}return i},_getItemIndex:function(e){for(var t=[];t.unshift(e.data(q)),e=e.data(L););return t},enabled:function(){var e=[].slice.call(arguments),t=s(e[0])?e.shift():o,e=this._getItemByIndex.apply(this,e);if(h(e)){if(!h(t))return!e.data(A);e.data(A,!t),_(e)[t?"removeClass":"addClass"]("sui-menu-item-disabled")}},expanded:function(){var e=this,t=[].slice.call(arguments),n=s(t[0])?t.shift():o,i=e._getItemByIndex.apply(this,t);if(h(i)){if(!h(n))return e._isExpanded(i);n?(e._collapseAll(),e._itemExpand(i,!1)):e._itemCollapse(i,!1,!1)}h(n)&&!1===n&&0===t.length&&e._collapseAll()},selected:function(){var e=[].slice.call(arguments),t=s(e[0])?e.shift():o,n=this._getItemByIndex.apply(this,e);if(h(n)){if(!h(t))return this._isSelected(n);this._setSelected(n,t)}h(t)&&!1===t&&0===e.length&&this._deselectAll()},selectedIndex:function(){var e=this._getSelected();if(h(e))return this._getItemIndex(e)},selectedData:function(){var e=this._getSelected();if(h(e))return _(e).data(P)},selectedItem:function(){return this._getSelected()},destroy:function(){var e=this,t=e._eventNS;e.dataSource&&e.dataSource.off(N+t),e._blurTimeout&&(clearTimeout(e._blurTimeout),e._blurTimeout=null),_(e.element).off(t).remove(),e._isWrapped&&e._original.unwrap(),e._original.show(),e._original=null,m.fn.destroy.call(e)}});W.defaults=t,v.ui.plugin("Menu",W),t=l({},t,{orientation:y,target:o,filter:o,focusOnOpen:!0,minWidth:o}),(e=m.extend({init:function(){m.fn.init.apply(this,arguments);var e,i=this,t=_(i.element),n=i.options,a=n.events,s={},r=i._eventNS=".shieldContextMenu"+i.getInstanceId();i.menuElement=e=_('<div class="sui-context-menu"/>').hide().appendTo(g.body),n.minWidth&&i.menuElement.css("min-width",n.minWidth),O(["focus","blur","expand","collapse","click","select"],function(e,t){var n=a[t];z(n)&&(s[t]=b(n,i))}),i._menu=new W(t,l({},n,{renderToINTERNAL:e,wrapOriginalINTERNAL:!1,isContextINTERNAL:!0,events:s})),i._mouseTracker=new v.MouseTracker,_(n.target).on("contextmenu"+r,n.filter,function(e){return e.preventDefault(),i._open(i._mouseTracker.getPosition(e),_(e.currentTarget),!0,!1),!1}),_(g).on("mousedown"+r,function(e){_(e.target).closest(".sui-context-menu").length<=0&&i._closeOpen(!0)})},_open:function(e,t,n,i){var a=this,s=a.menuElement,r=a.options,l=r.animation,o=r.focusOnOpen;a._closeOpen(!1),n&&a.trigger("open",{element:t}).isDefaultPrevented()||(s.stop(!0,!0),s.show(),d.Set(s,new v.Event({pageX:e.x,pageY:e.y}),{source:"left top",target:"left top",overflow:r.overflow}),l&&l.enabled?s.hide().slideDown(l.openDelay,function(){c=t,(u=a)._visible=!0,o&&a.focus()}):(c=t,(u=a)._visible=!0,o&&a.focus()))},_close:function(e){var t=this,n=t.menuElement,i=t.options.animation;e&&t.trigger("close").isDefaultPrevented()||(u=c=null,n.stop(!0,!0),i&&i.enabled?n.slideUp(i.closeDelay,function(){t._visible=!1}):(n.hide(),t._visible=!1))},_closeOpen:function(e){u&&u.closeINTERNAL(!0)},closeINTERNAL:function(e){this._close(e)},focus:function(){_(this.menuElement).find(".sui-menu").first().focus()},visible:function(){var e,t,n=this,i=[].slice.call(arguments);if(!(0<i.length))return n._visible;e=!!i[0],t=i[1]||n._mouseTracker.getPosition(),e?n._open(t,i[2],!1,!1):n._close(!1),n._visible=e},enabled:function(){return this._menu.enabled.apply(this._menu,arguments)},expanded:function(){return this._menu.expanded.apply(this._menu,arguments)},selected:function(){return this._menu.selected.apply(this._menu,arguments)},selectedIndex:function(){return this._menu.selectedIndex.apply(this._menu,arguments)},selectedData:function(){return this._menu.selectedData.apply(this._menu,arguments)},selectedItem:function(){return this._menu.selectedItem.apply(this._menu,arguments)},destroy:function(){var e=this,t=e._eventNS;_(g).off(t),_(e.options.target).off(t),e._mouseTracker&&(e._mouseTracker.destroy(),e._mouseTracker=null),e._close(),e._menu&&(e._menu.destroy(),e._menu=null),_(e.menuElement).remove(),m.fn.destroy.call(e)}})).defaults=t,v.ui.plugin("ContextMenu",e)}(jQuery,shield); -!function(n,e,a){var s=e.ui.Widget,l=(n.extend,e.is[void 0]),r={min:0,max:5,step:1,symbolWidth:16,symbolHeight:16,enabled:!0,markPreset:!1,value:0,events:{}},i=s.extend({init:function(e,i){var t=this;s.fn.init.apply(t,arguments),t._enabled=t.options.enabled,t._renderRating(e,i,!1)},_setSelection:function(e){var i=this;if(i._enabled)return i._value=e,i._markPreset&&(i._markPreset=!1),i._range.find(".sui-rating-hover").hide(),i._range.find(".sui-rating-selected").width(e*i._symbolWidth-i._min*i._symbolWidth).show(),i.trigger("change"),!0},_calcRawScore:function(e,i){var t=this,i=(i.changedTouches?i.changedTouches[0]:i).pageX-n(e).offset().left;return(i=(i=t._ltr?i:t._range.width()-i)>t._range.width()?t._range.width():i)<0&&(i=0),Math.ceil(i/t._symbolWidth*(1/t._step))},_setHover:function(e){var i,t=this;t._enabled&&(e=e*t._symbolWidth*t._step,(i=t._range.find(".sui-rating-hover")).width()!=e&&(t._range.find(".sui-rating-selected").hide(),i.width(e).show()))},_touchHandler:function(e){var i=e.originalEvent.changedTouches[0],t="";switch(e.type){case"touchmove":t="mousemove";break;case"touchend":t="mouseup";break;default:return}var n=document.createEvent("MouseEvent");n.initMouseEvent(t,!0,!0,a,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(n),e.preventDefault()},_renderRating:function(e,i,t){var n,a=this,i=(a._item=a.element,a._item.hasClass("sui-rating")||a._item.addClass("sui-rating"),a._ltr=!a.element.parent().hasClass("sui-rtl"),t&&(n=null,l(a._value)?(n=(isNaN(i.value)?r:i).value,a._value=n):n=a._value,a._enabled&&(a._wired=!1)),a._initialized||(a._min=(isNaN(i.min)?r:i).min,a._max=(isNaN(i.max)?r:i).max,a._step=(isNaN(i.step)?r:i).step,a._symbolWidth=(isNaN(i.symbolWidth)?r:i).symbolWidth,a._symbolHeight=(isNaN(i.symbolHeight)?r:i).symbolHeight,a._value=(isNaN(i.value)?r:i).value,a._markPreset=(isNaN(i.markPreset)?r:i).markPreset,e="DIV"==a._item[0].nodeName?"div":"span",n=('<{{element}} id="shieldRating-range-{{index}}" class="sui-rating-range" tabindex="0"><{{element}} class="sui-rating-selected" style="height:'+a._symbolHeight+'px"></{{element}}><{{element}} class="sui-rating-hover" style="height:'+a._symbolHeight+'px"></{{element}}></{{element}}>').replace(/{{index}}/gi,2).replace(/{{element}}/gi,e),this.element.append(n),a._initialized=!0),a._item.find(".sui-rating-selected, .sui-rating-hover").height(a._symbolHeight),a._range=a._item.find(".sui-rating-range"),a._range.width(a._symbolWidth*(a._max-a._min)).height(a._symbolHeight),"sui-rating-preset"+(a._ltr?"":"-rtl"));a._markPreset?a._item.find(".sui-rating-selected").addClass(i):a._item.find(".sui-rating-selected").removeClass(i),null!=a._value&&(e=(a._value-a._min)*a._symbolWidth,a._item.find(".sui-rating-selected").width(e)),a._wired||(a._enabled&&!t&&(a._range.on("touchmove touchend",a._touchHandler),a._range.mousemove(function(e){e=a._calcRawScore(this,e);a._setHover(e)}),a._range.mouseleave(function(e){a._range.find(".sui-rating-hover").hide().width(0),a._item.trigger("hover",[null]).trigger("over",[null]),a._range.find(".sui-rating-selected").show()}),a._range.mouseup(function(e){e=a._calcRawScore(this,e)*a._step+a._min;a._setSelection(e),a._range.blur()}),a._range.keyup(function(e){38!=e.which&&e.which!=(a._ltr?39:37)||a._setSelection(Math.min(a._value+a._step,a._max)),40!=e.which&&e.which!=(a._ltr?37:39)||a._setSelection(Math.max(a._value-a._step,a._min))})),a._wired=!0)},value:function(){var e=this,i=e.options,t=[].slice.call(arguments);if(!(0<t.length))return!l(e._value)||l(i.value)?e._value:i.value;t=t[0];t<e._min||t>e._max||(e.options.value=t,e._value=t,e._renderRating(e,i,!0))},enabled:function(){var e=this,i=e.options,t=e.element,n=[].slice.call(arguments);if(!(0<n.length))return e._enabled;e._enabled=n[0],e._renderRating(e,i,!0),e._enabled?t.removeClass("sui-rating-disabled"):t.addClass("sui-rating-disabled")},destroy:function(){var e=this;n(e.element).removeClass("sui-rating-hover sui-rating-selected sui-rating-disabled sui-rating-preset-rtl sui-rating-preset sui-rating").empty(),e._range.off("touchmove touchend",e._touchHandler),e._markPreset=e._enabled=e._min=e._max=e._value=e._ltr=e._item=e._symbolWidth=e._symbolHeight=e._step=e._wired=e._initialized=e._range=null,s.fn.destroy.call(e)}});i.defaults=r,e.ui.plugin("Rating",i)}(jQuery,shield,this); -!function(P,i,e){var n=i.ui.Widget,r=(i.Class,i.DataSource),t=document,s=i.is,S=(i.get,i.format),T=i.to.int,o=(Math.abs,P.each,P.proxy),e=(P.extend,P.map,e.opera),a=navigator.userAgent,l=/msie/i.test(a)&&!e,I=l&&7===t.documentMode,k="width",b="sui-disabled",u="click",a=n.extend({init:function(e,t){n.fn.init.apply(this,arguments);var a=this,i=a.options;a.currentPage=i.currentPage,a._createWrappers(),a._createPagerElements(),l&&a.element.on("selectstart",a._selectStart=function(){return!1}),a.element.on(u,"a",a._click=o(a._clickHandler,a)),i.dataSource?((a.dataSource=r.create(i.dataSource)).on("change.shieldPager"+a.getInstanceId(),o(a._dataChange,a)),a._updateDataSource()):a.refresh(!0)},destroy:function(){var e=this;e.dataSource&&e.dataSource.off("change.shieldPager"+e.getInstanceId()),e.pagination=null,e.infoBox=null,e.element.off("selectstart",e._selectStart),e._selectStart=null,e.element.off(u,"a",e._click),e._click=null,e.startLinkIndex=null,e.endLinkIndex=null,e.element.remove(),n.fn.destroy.call(e)},_clickHandler:function(e){var t=P(e.currentTarget),a=this;a.options;e.preventDefault(),t.parent().hasClass(b)||(e=T(t.attr("data-page")),a.currentPage=e,a.refresh())},_createWrappers:function(){var e=this,t=e.element,a=(t.addClass("sui-pager sui-pager-core"),P("<ul/>").appendTo(t)),t=(I?a.addClass("sui-pagination sui-pagination-ie7"):a.addClass("sui-pagination"),P("<div/>").appendTo(t));l&&!I?t.addClass("sui-pager-info-box-ie"):t.addClass("sui-pager-info-box"),e.pagination=a,e.infoBox=t},_updateInfoBox:function(){var e=this,t=e.options,a=t.messages,i=t.pageSize*(e.currentPage-1)+1,n=i-1+t.pageSize,r=Math.ceil(t.totalItems/t.pageSize),a=(n>t.totalItems&&(n=t.totalItems),0===t.totalItems&&(i=0),S.call(e,a.infoBarTemplate,i,n,t.totalItems,e.currentPage,r));P(e.infoBox).empty().html(a)},_createPagerElements:function(){var e=this,t=e.options,a=t.messages,i=e.currentPage,n=e.pagination,r=Math.ceil(t.totalItems/t.pageSize),s=Math.min(t.pageLinksCount,r),o="",l="",u="",g="",p="",c=T((i-1)/t.pageLinksCount),d=c*t.pageLinksCount+1,h=(1==i&&(u=" "+b),i!=r&&t.totalItems||(g=" "+b),t.imageLinks&&(a.previousText=" ",a.nextText=" ",a.firstText=" ",a.lastText=" ",l="sui-navigation-links "),Math.min(d+s,r+1));e.startLinkIndex=d,e.endLinkIndex=h-1,0<c&&(o+="<li class='sui-pager-element'><a data-page='"+(e.startLinkIndex-1)+"'>...</a></li>");for(var f=d;f<h;f++)o+="<li class='sui-pager-element'><a data-page='"+f+"' class='sui-pager-number"+(p=f==i?" sui-selected":p)+"'>"+S.call(e,a.pageLabelTemplate,f)+"</a></li>",p="";e.endLinkIndex<r&&(o+="<li class='sui-pager-element'><a data-page='"+(e.endLinkIndex+1)+"'>...</a></li>"),t.directionLinks&&(o=(o="<li class='sui-pager-element"+u+"'><a title='"+a.previousTooltip+"' data-page='"+(i-1)+"' class='"+l+"sui-prev'>"+a.previousText+"</a></li>"+o)+"<li class='sui-pager-element"+g+"'><a title='"+a.nextTooltip+"' data-page='"+(i+1)+"' class='"+l+"sui-next'>"+a.nextText+"</a></li>"),t.boundaryLinks&&(o=(o="<li class='sui-pager-element"+u+"'><a title='"+a.firstTooltip+"' data-page='1' class='"+l+"'>"+a.firstText+"</a></li>"+o)+"<li class='sui-pager-element"+g+"'><a title='"+a.lastTooltip+"' data-page='"+r+"' class='"+l+"'>"+a.lastText+"</a></li>"),n.html(o);s=n.find("a");if(0<s.length&&(P(s[0]).addClass("sui-first"),P(s[s.length-1]).addClass("sui-last")),I){var m=n.find("li");if(0<m.length){for(var x=0,f=0;f<m.length;f++){var v=m[f].clientWidth;x+=v,P(m[f]).css(k,v+"px")}n.css(k,x+"px")}}},_dataChange:function(){var e=this.options,t=this.dataSource,a=t.take,i=Math.ceil(t.skip/a)+1;this.currentPage=i,e.pageSize=a,e.totalItems=t.total,this.refresh(!0)},refresh:function(e){var t=this;t.pagination.empty(),t._createPagerElements(),t._updateInfoBox(),e||(t._updateDataSource(),t.trigger("change",{currentPage:t.currentPage,pageSize:t.options.pageSize}))},_updateDataSource:function(){var e=this.dataSource,t=this.options;e&&(e.skip=(this.currentPage-1)*t.pageSize,e.take=t.pageSize,e.read())},page:function(e){if(!e)return this.currentPage;e=T(e);this._isValidPage(e)&&(this.currentPage=e,this.refresh())},first:function(){this.currentPage=1,this.refresh()},last:function(){var e=this.options,e=Math.ceil(e.totalItems/e.pageSize);this.currentPage=e,this.refresh()},hasNext:function(){var e=this.options,e=Math.ceil(e.totalItems/e.pageSize);return this.currentPage<e},hasPrev:function(){return 1<this.currentPage},next:function(){var e=this,t=e.options,t=Math.ceil(t.totalItems/t.pageSize);e.currentPage!=t&&(e.currentPage=e.currentPage+1,e.refresh())},prev:function(){var e=this;e.options;1!=e.currentPage&&(e.currentPage=e.currentPage-1,e.refresh())},pageSize:function(e){var t=this.options;if(!e)return t.pageSize;e=T(e);this._isValidPageSize(e)&&(this.currentPage=1,t.pageSize=e,this.refresh())},_isValidPage:function(e){var t=this.options,a=Math.ceil(t.totalItems/t.pageSize);return s.integer(e)?!(a<e||e<1)||(i.error("Invalid page number. The page number must be greater than 0 and less than "+a+".",t.dieOnError),!1):(i.error("Invalid page number. The page number must integer.",t.dieOnError),!1)},_isValidPageSize:function(e){var t=this.options;return s.integer(e)?!(e<1)||(i.error("Invalid page number. The page number must be greater than 0 (zero).",t.dieOnError),!1):(i.error("Invalid page size number. The page size number must be integer.",t.dieOnError),!1)}});a.defaults={currentPage:1,totalItems:null,pageSize:10,pageLinksCount:5,directionLinks:!0,boundaryLinks:!0,imageLinks:!1,messages:{pageLabelTemplate:"{0}",infoBarTemplate:"{0} - {1} of {2} items",previousText:"‹",nextText:"›",firstText:"«",lastText:"»",firstTooltip:"Go to the first page",previousTooltip:"Go to the previous page",nextTooltip:"Go to the next page",lastTooltip:"Go to the last page"}},i.ui.plugin("Pager",a),i.ui.Pager=a}(jQuery,shield,this); -!function(m,l,f,p){function b(e){return(e=m(e).prop("tagName").toLowerCase())==L?R:"input"==e?P:"textarea"==e?Be:"uto"}function W(e){return m("<div/>").text(e).html()}function O(e){var t;(e=m(e)).focus(),e.get(0).setSelectionRange?(t=2*e.val().length,e.get(0).setSelectionRange(t,t)):e.val(e.val())}function H(e){var t=(e+="").lastIndexOf(".");return-1<t?e.length-t-1:0}function u(e,t){if(e&&!$(e))if(z(e))for(var n=0;n<e.length;n++)u(e[n],t);else if(e.or||e.and)for(var i in e)e.hasOwnProperty(i)&&u(e[i],t);else e.value=t}var F,n,s,e,g=l.ui.Widget,K=(l.Class,l.DataSource),i=l.ui.Position,o=l.Constants.KeyCode,x=l.error,$=l.is.func,z=l.is.array,k=l.is.defined,G=(l.is.number,l.is.string),Z=(l.is.object,l.to.array),j=l.to.int,q=l.to.number,Q=l.support.browser,d=l.format,h=l.strid,X=document,J=Math.min,Y=Math.max,ee=Math.pow,te=m.extend,ne=(m.map,m.each),S=m.proxy,ie=m.inArray,y="id",C="role",_="true",w="false",ae="textbox",a="aria",v=a+"-selected",le=a+"-autocomplete",se=a+"-activedescendant",oe=a+"-multiline",re=a+"-valuenow",ue=a+"-disabled",ce=a+"-haspopup",c=a+"-checked",de=a+"-label",he=a+"-labelledby",pe=a+"-controls",_e=a+"-expanded",ve="title",r="disabled",A="checked",me="selected",fe="itemclick",D="tabindex",be="mousedown",ge="mouseup",xe="mouseout",T="click",N="keydown",ke="dragstart",Se="dragenter",ye="dragover",E="change",B="focus",I="blur",Ce="resize",L="select",M="value",we="placeholder",Ae="selectstart",De="unselectable",Te="height",Ne="suilbitemdata",V="suilbitemindex",U="suilbitemvalue",Ee="suilbitemtext",R="uts",P="uti",Be="utta",t={enabled:!0,cls:p,dataSource:p,readDataSource:!0,valueTemplate:p,textTemplate:p,multiple:p,selected:p,values:p,width:p,height:p,maxHeight:p,events:{}},Ie=g.extend({init:function(){g.fn.init.apply(this,arguments);var e,t,n=this,i=n.options,a=i.dieOnError,l=i.dataSource,s=i.selected,o=i.values,r=i.renderToINTERNAL,u=i.wrapOriginalINTERNAL,c=i.tabindexINTERNAL,d=i.filterINTERNAL,d=k(d)?{filter:d}:{},u=!k(u)||u;if(n._original=e=m(n.element),n._utype=t=b(e),t==P&&i.multiple)n.destroy(),x("shieldListBox: Cannot initialize a multi-selection ListBox from an input element.",a);else{if(n._eventNS=".shieldListBox"+n.getInstanceId(),k(o)||k(s)||t!=R&&t!=P||(o=e.val()),u?(n.wrapper=e.wrap("<span/>").parent(),n._isWrapped=!0):n._isWrapped=!1,e.hide(),n.element=u=m('<ul id="'+h()+'"/>').on(B+n._eventNS,S(n._focus,n)).on(I+n._eventNS,S(n._blur,n)),k(i.width)&&u.css("width",i.width),k(i.height)&&u.css(Te,i.height),k(i.maxHeight)&&u.css("max-height",i.maxHeight),0<m(r).length?m(r).append(u):e.after(u),l)n.dataSource=K.create(l,d),i.valueTemplate||(i.valueTemplate="{0}"),i.textTemplate||(i.textTemplate="{0}");else{if(t!=R)return n.destroy(),void x("shieldListBox: No dataSource or underlying SELECT element found.",a);n.dataSource=K.create(te({},{data:e,schema:{type:L}},d)),i.valueTemplate||(i.valueTemplate="{value}"),i.textTemplate||(i.textTemplate="{text}"),k(i.multiple)||(i.multiple=e.not("[multiple]").length<=0)}u.addClass("sui-listbox"),i.cls&&u.addClass(i.cls),r=k(c)?c:e.attr(D),u.attr(D,k(r)?r:"0"),u.on(N+n._eventNS,S(n._keydown,n)),n.dataSource.on(E+n._eventNS,S(n._dsChange,n)),k(o)?n._initValues=o:k(s)&&(n._initSelected=s),u.attr(C,"listbox"),i.multiple&&u.attr("aria-multiselectable",_),i.readDataSource&&n.dataSource.read(),n.enabled(i.enabled)}},refresh:function(e){this.refreshWithElement(this._original,e)},_focus:function(e){this._oldSelection=this.selected(),this.trigger(B)},_blur:function(e){var t=this,n=t._oldSelection,i=t.selected();0===m(n).not(i).length&&0===m(i).not(n).length||t.trigger(E),t._oldSelection=i,t.trigger(I)},_dsChange:function(e){var t=this;t._render(),t._dsLoadedOnce||(t._dsLoadedOnce=!0,k(t._initValues)?t.values(t._initValues):k(t._initSelected)&&t.selected(t._initSelected))},_render:function(){var l=this,s=l.options,e=l.dataSource.view,o=m(l.element),r=l._utype,u=l._original,c=o.attr(y)+"_opt";r==P&&l._original.val();o.empty(),r==R?u.empty():r==P&&u.removeAttr(M),e&&ne(e,function(t,n){var e=d.call(l,s.valueTemplate,n),i=d.call(l,s.textTemplate,n),a=m('<li id="'+c+t+'" role="option">'+i+"</li>").addClass("sui-listbox-item sui-unselectable").click(function(e){l._enabled&&(l._setActive(m(this)),l._toggleActive(e)),l.trigger(fe,{index:t,item:n})}).on(Ae,function(){return!1}).data(Ne,n).data(V,t).data(U,e).data(Ee,i);s.multiple&&a.attr(v,w),o.append(a),r==R&&u.append(m("<option/>").attr(M,e).text(i))})},_keydown:function(e){var t=this,n=!0;switch(e.keyCode){case o.UP:t._move("up",e);break;case o.DOWN:t._move("down",e);break;case o.HOME:t._move("first",e),n=!1;break;case o.END:t._move("last",e),n=!1;break;case o.SPACE:case o.ENTER:t._toggleActive(e);break;default:n=!1}n&&e.preventDefault()},_move:function(e,t){var n=this,i=m(n.element),a=i.find(".sui-listbox-item-active").first(),l=i.find(":first");n._enabled&&("up"==e?0<a.prev().length?l=a.prev():0<a.length&&(l=a):"down"==e?0<a.next().length?l=a.next():0<a.length&&(l=a):"first"==e?l=i.find(".sui-listbox-item").first():"last"==e&&(l=i.find(".sui-listbox-item").last()),l.length<=0||(n.options.multiple?(n._setActive(l),n._ensureInScrollableArea(l)):n._select(l)))},_ensureInScrollableArea:function(e){var t=m(this.element),n=t.height(),i=t.scrollTop(),a=e.outerHeight(),e=e.position().top,a=e+a;e<0?t.scrollTop(i+e):n<a&&t.scrollTop(i+(a-n))},ensureActiveViewableINTERNAL:function(){var e=this._getActive();0<e.length&&this._ensureInScrollableArea(e)},_getActive:function(){return m(this.element).find(".sui-listbox-item-active").first()},_setActive:function(e){e.addClass("sui-listbox-item-active").siblings().removeClass("sui-listbox-item-active"),m(this.element).attr(se,e.attr(y))},_setSelected:function(e){e.addClass("sui-listbox-item-selected").attr(v,_)},_unsetSelected:function(e){e.removeClass("sui-listbox-item-selected"),this.options.multiple?e.attr(v,w):e.removeAttr(v)},_toggleActive:function(e){this._toggle(e,this._getActive())},_toggle:function(e,t){var n=this;!n._enabled||!t||t.length<=0||(n.options.multiple&&t.hasClass("sui-listbox-item-selected")?n._deselect(t):n._select(t))},_select:function(e,t){var n=this,i=n._original,a=n._utype;n.options.multiple||n.clearSelection(),n._setActive(e),n._ensureInScrollableArea(e),n._setSelected(e),a==R?i.find("option:eq("+e.data(V)+")").attr(me,me):a==P&&i.attr(M,e.data(U)),t||n.trigger(L,{index:e.data(V),item:e.data(Ne),value:e.data(U),text:e.data(Ee),selected:!0})},_deselect:function(e,t){var n=this,i=n._original,a=n._utype;n._setActive(e),n._unsetSelected(e),a==R?i.find("option:eq("+e.data(V)+")").removeAttr(me):a==P&&i.removeAttr(M),t||n.trigger(L,{index:e.data(V),item:e.data(Ne),value:e.data(U),text:e.data(Ee),selected:!1})},enabled:function(){var e=m(this.element),t=this._original,n=[].slice.call(arguments);if(!(0<n.length))return this._enabled;(n=!!n[0])?(e.removeAttr(r).removeClass("sui-listbox-disabled"),t.removeAttr(r)):(e.attr(r,r).addClass("sui-listbox-disabled"),t.attr(r,r)),this._enabled=n},selected:function(){var t,n,e,i=this,a=m(i.element),l=[].slice.call(arguments);if(!(0<l.length))return e=[],a.find(".sui-listbox-item-selected").each(function(){e.push(m(this).data(V))}),e;t=Z(l[0]),n=!k(l[1])||!!l[1],a.find(".sui-listbox-item").each(function(e){-1<ie(e,t)&&(n?i._select(m(this),!0):i._deselect(m(this),!0))})},selectedItems:function(){var e=[];return m(this.element).find(".sui-listbox-item-selected").each(function(){e.push(m(this).data(Ne))}),e},values:function(){var e,t,n=this,i=m(n.element),a=[].slice.call(arguments);if(!(0<a.length))return t=[],i.find(".sui-listbox-item-selected").each(function(){t.push(m(this).data(U))}),t;e=Z(a[0]),i.find(".sui-listbox-item").each(function(){if(-1<ie(m(this).data(U),e))return n._select(m(this),!0),!!n.options.multiple})},texts:function(){var e=[];return m(this.element).find(".sui-listbox-item-selected").each(function(){e.push(m(this).data(Ee))}),e},clearSelection:function(){var e=this._original,t=this.options.multiple,n=this._utype;n==R?e.find("option").removeAttr(me):n==P&&e.removeAttr(M),m(this.element).find(".sui-listbox-item-selected").each(function(){m(this).removeClass("sui-listbox-item-selected sui-listbox-item-active"),t?m(this).attr(v,w):m(this).removeAttr(v)})},destroy:function(){var e=this,t=e._eventNS;e._dsLoadedOnce=!1,m(e.element).off(t).remove(),e.dataSource&&e.dataSource.off(E+t),e._isWrapped&&e._original.unwrap(),e._original.show(),g.fn.destroy.call(e)}});Ie.defaults=t,l.ui.plugin("ListBox",Ie),t={enabled:!0,cls:p,autoComplete:p,value:p,events:{}},(e=g.extend({init:function(){g.fn.init.apply(this,arguments);var e=this,t=e.options,n=t.autoComplete,i=t.cls,a=t.value,l=m(e.element);e._eventNS=".shieldTextBox"+e.getInstanceId(),l.addClass("sui-input"),n&&(e.autoComplete=new F(l,n)),i&&l.addClass(i),l.on(B+e._eventNS,S(e._focus,e)).on(I+e._eventNS,S(e._blur,e)),l.attr(C,ae),b(l)==Be&&l.attr(oe,_),e.enabled(t.enabled),k(a)&&e.value(a)},focus:function(){m(this.element).focus(),O(m(this.element))},_focus:function(e){var t=this;t.oldValue=t._value(),t.interval=setInterval(S(t._detectChanges,t),1),t.trigger(B)},_blur:function(e){clearInterval(this.interval),this.trigger(I)},_detectChanges:function(){var e=this;e._enabled&&e.oldValue!==e._value()&&(e.trigger(E,{value:e._value(),old:e.oldValue}).isDefaultPrevented()?e._value(e.oldValue):e.oldValue=e._value())},_value:function(){return this.element.val.apply(this.element,arguments)},value:function(){return this._value.apply(this,arguments)},enabled:function(){var e=m(this.element),t=[].slice.call(arguments);if(!(0<t.length))return this._enabled;(t=!!t[0])?e.removeAttr(r).removeClass("sui-input-disabled"):e.attr(r,r).addClass("sui-input-disabled"),this._enabled=t},destroy:function(){var e=this,t=e.autoComplete,n=e.options.cls;clearInterval(e.interval),e.element.off(e._eventNS).removeClass("sui-input"+(n?" "+n:"")),t&&t.destroy(),g.fn.destroy.call(e)}})).defaults=t,l.ui.plugin("TextBox",e),t={dataSource:p,valueTemplate:"{0}",textTemplate:"{0}",open:!1,delay:200,minLength:2,dropDownWidth:p,appendListBoxTo:"body",animation:{enabled:!0,openDelay:200,closeDelay:100},events:{}},(F=g.extend({init:function(){g.fn.init.apply(this,arguments);var t=this,n=m(t.element),i=t.options,e=i.dataSource,a=i.dieOnError,l=i.appendListBoxTo;t.pending=0,t.oldValue=n.val(),e?(e.filter||(e.filter={and:[{path:"",filter:"contains",value:""}]}),t._eventNS=".shieldAutoComplete"+t.getInstanceId(),n.addClass("sui-input"),t.listElement=m("<span/>").appendTo(m(l)),t.listBox=new Ie(t.listElement,{cls:"sui-autocomplete",dataSource:e,readDataSource:!1,textTemplate:i.textTemplate,multiple:!1,width:i.dropDownWidth||n.innerWidth(),events:{select:function(e){t._value(d.call(t,i.valueTemplate,e.item)),t.trigger(L,{item:e.item})},itemclick:function(e){n.focus(),t._inputBlur(e,0)},blur:function(e){t._inputBlur(e,0)}}}),t.listBox.element.hide(),t.dataSource=t.listBox.dataSource,n.on(N+t._eventNS,S(t._inputKeydown,t)).on(I+t._eventNS,S(t._inputBlur,t,100)),n.attr(le,"list").attr(pe,t.listBox.element.attr(y)).attr(ce,t.listBox.element.attr(C)),n.attr(C,ae),b(n)==Be&&n.attr(oe,_),t.listBox.dataSource.on(E+t._eventNS,S(t._dsChange,t)),m(f).on(Ce+t._eventNS,S(t._position,t)),t._open=!1,i.open&&t._searchTimeout()):(t.destroy(),x("shieldAutoComplete: No dataSource set",a))},_checkValueUpdated:function(){var e=this,t=e.element.val();e.oldValue!==t&&(e.trigger(E,{value:e._value()}),e.oldValue=t)},_restoreOldValue:function(){this._value(this.oldValue)},_inputKeydown:function(e){var t=this;switch(e.keyCode){case o.TAB:break;case o.UP:case o.DOWN:t._inputUpDown(e);break;case o.ENTER:e.preventDefault(),t.cancelSearch=!0,t._hideItemList(),t._checkValueUpdated();break;case o.ESC:e.preventDefault(),t.cancelSearch=!0,t._hideItemList(),t._restoreOldValue();break;default:t._searchTimeout(e)}},_inputUpDown:function(e){var t=this;t._open?t._hasData()&&m(t.listBox.element).trigger(e):t._hasData()&&t._showItemList()},_inputBlur:function(e,t){var n=this;setTimeout(function(){m(n.listBox.element).is(":focus")||(n._hideItemList(),n._checkValueUpdated())},t)},_searchTimeout:function(e){var t=this;clearTimeout(t.searchTimeout),t.searchTimeout=setTimeout(function(){t.term!==t._value()&&(t.trigger("search",{value:t._value()}),t._search())},t.options.delay)},_search:function(){var e=this;e.term=e._value(),e.term.length<e.options.minLength?e._hideItemList():(e.cancelSearch=!1,e.pending++,m(e.element).addClass("sui-autocomplete-loading"),u(e.listBox.dataSource.filter,e.term),e.listBox.dataSource.read())},_dsChange:function(){var e=this;e.pending--,e.pending||m(e.element).removeClass("sui-autocomplete-loading"),!e.cancelSearch&&e._hasData()?e._showItemList():e._hideItemList()},_hasData:function(){var e=this.listBox.dataSource.view;return e&&0<e.length},_position:function(){var e=m(this.element),t=m(this.listBox.element);t.width(this.options.dropDownWidth||e.innerWidth()),i.Set(t,e,{source:"left top",target:"left bottom",overflow:"none"})},_showItemList:function(){var e=this,t=e.listBox,n=m(t.element),i=e.options.animation;n.css({top:0,left:0}),n.show(),e._position(),!e._open&&i&&i.enabled?n.hide().slideDown(i.openDelay,S(t.ensureActiveViewableINTERNAL,t)):t.ensureActiveViewableINTERNAL(),e._open=!0},_hideItemList:function(){var e=m(this.listBox.element),t=this.options.animation;t&&t.enabled?e.slideUp(t.closeDelay):e.hide(),this._open=!1},_value:function(){return this.element.val.apply(this.element,arguments)},hide:function(){m(this.listBox.element).hide()},show:function(){m(this.listBox.element).show()},isVisible:function(){return m(this.listBox.element).is(":visible")},destroy:function(){var e=this;e.dataSource=null,e.listBox&&(e.listBox.dataSource.off(E+e._eventNS),e.listBox.destroy(),e.listBox=null),e.element.off(e._eventNS).removeClass("sui-input"),m(f).off(Ce+e._eventNS),e.listElement&&e.listElement.remove(),g.fn.destroy.call(e)}})).defaults=t,l.ui.plugin("AutoComplete",F),e={enabled:!0,cls:"",min:0,max:100,value:p,step:p,editable:!0,spinners:!0,valueTemplate:p,textTemplate:p,labels:{increase:"Increase value",decrease:"Decrease value"},events:{}},(t=g.extend({init:function(){g.fn.init.apply(this,arguments);var e,t,n,i=this,a=i.options,l=a.cls,s=a.value,o=a.step,r=a.editable,u=a.spinners,c=a.labels,d=c.increase,c=c.decrease,h=a.dieOnError;i._original=t=m(i.element),b(t)!=P?x("shieldNumericTextBox: Underlying element is not INPUT",h):(k(o)?a.step=o=q(o):(n=H(k(s)?s:i._value()),a.step=o=0<n?1/ee(10,n):1),o?(i._eventNS=".shieldNumericTextBox"+i.getInstanceId(),i.element=n=t.wrap("<span/>").parent(),t.hide(),k(s)||(s=i._value()),r?(e=m('<input type="text" class="sui-input" />'),r=t.attr(we),k(r)&&e.attr(we,r)):e=m('<span class="sui-input"> </span>').attr(D,"0"),(i.textElement=e).appendTo(n),e.on(B+i._eventNS,S(i._focus,i)).on(I+i._eventNS,S(i._blur,i)),u&&(i._onSpinUpMDProxy=S(i._spinUpMD,i),i._onSpinDownMDProxy=S(i._spinDownMD,i),i._onSpinnerMUProxy=S(i._spinnerMU,i),i.spinUp=t=m('<span class="sui-spinner sui-spinner-up sui-unselectable"/>').html('<span class="sui-caret-up sui-unselectable" unselectable="on"/>').attr(De,"on").attr("alt",d).attr(ve,d).on(be+i._eventNS,i._onSpinUpMDProxy).on(ge+i._eventNS,i._onSpinnerMUProxy).on(xe+i._eventNS,i._onSpinnerMUProxy).on(Ae+i._eventNS,function(){return!1}),i.spinDown=r=m('<span class="sui-spinner sui-spinner-down sui-unselectable"/>').html('<span class="sui-caret-down sui-unselectable" unselectable="on"/>').attr(De,"on").attr("alt",c).attr(ve,c).on(be+i._eventNS,i._onSpinDownMDProxy).on(ge+i._eventNS,i._onSpinnerMUProxy).on(xe+i._eventNS,i._onSpinnerMUProxy).on(Ae+i._eventNS,function(){return!1}),n.append(m('<span class="sui-spinners"/>').append(t,r))),e.on(N+i._eventNS,S(i._keydown,i)),n.addClass("sui-numeric-textbox"+(u?"":" sui-numeric-textbox-nosp")+(l?" "+l:"")),d=H(o),k(a.textTemplate)||(a.textTemplate="{0:n"+d+"}"),k(a.valueTemplate)||(a.valueTemplate="{0:n"+d+"}"),n.attr(C,"spinbutton").attr("aria-valuemin",a.min).attr("aria-valuemax",a.max),i.enabled(a.enabled),k(s)&&i.value(s),i._destroyed=!1):x("shieldNumericTextBox: Invalid step",h))},refresh:function(e){this.refreshWithElement(this._original,e)},_focus:function(e){var t=this;t._hasFocus||(t._hasFocus=!0,m(t.element).addClass("sui-numeric-textbox-focus"),t.value(t.value()),t.trigger(B))},_blur:function(e){var t,n,i=this,a=m(i.element),l=m(i.textElement);i.options.editable&&(t=i.value(),i._updateIfDirty(),(n=i.value())!==t&&i.trigger(E,{value:n})),setTimeout(function(){var e,t;a.is(":focus")||l.is(":focus")||i._destroyed||(i._hasFocus=!1,a.removeClass("sui-numeric-textbox-focus"),i.options.editable?(e=i.value(),i.value(l.val()),(t=i.value())!==e&&i.trigger(E,{value:t})):i.value(i.value()),i.trigger(I))},100)},_keydown:function(e){var t=this,n=e.keyCode,i=t._enabled;switch(n){case o.TAB:case o.LEFT:case o.RIGHT:break;case o.END:t._updateValue("max",!1),e.preventDefault();break;case o.HOME:t._updateValue("min",!1),e.preventDefault();break;case o.ESC:i&&t.value(t.value()),e.preventDefault();break;case o.UP:t._updateValue("inc",!1),e.preventDefault();break;case o.DOWN:t._updateValue("dec",!1),e.preventDefault();break;default:t.options.editable&&i&&(48<=n&&n<=57||96<=n&&n<=105||190==n||110==n||173==n||109==n||189==n||n==o.DEL||n==o.BACK||n==o.ENTER||e.ctrlKey&&(118==n||86==n))?t._dirty=!0:e.preventDefault()}},_spinUpMD:function(e){var t=this;e.preventDefault(),t._updateValue("inc",!1),t._spinUpCancel=!1,setTimeout(function(){t._spinUpInt||t._spinUpCancel||(t._spinUpInt=setInterval(S(t._updateValue,t,"inc",!1),20))},100)},_spinDownMD:function(e){var t=this;e.preventDefault(),t._updateValue("dec",!1),t._spinDownCancel=!1,setTimeout(function(){t._spinDownInt||t._spinDownCancel||(t._spinDownInt=setInterval(S(t._updateValue,t,"dec",!1),20))},100)},_spinnerMU:function(e){var t=this;t._spinUpCancel=t._spinDownCancel=!0,clearInterval(t._spinUpInt),clearInterval(t._spinDownInt),t._spinUpInt=t._spinDownInt=null},_updateIfDirty:function(){var e=m(this.textElement);this._dirty&&(this.value(e.val()),this._dirty=!1)},_updateValue:function(e,t,n){var i,a=this,l=a.options,s=l.min,o=l.max,r=l.step,u=m(a.textElement),c=!1;a._enabled&&(a._updateIfDirty(),i=a.value(),k(i)||(i=0),t=!k(t)||!!t,n=!k(n)||!!n,"inc"==e?i<o&&(a.value(i+r),c=!0):"dec"==e?s<i&&(a.value(i-r),c=!0):"min"==e?(a.value(s),c=!0):"max"==e&&(a.value(o),c=!0),n&&(u.focus(),l.editable&&O(u)),c&&!t&&a.trigger(E,{value:a.value()}))},increment:function(){this._updateValue("inc",!0,!1)},decrement:function(){this._updateValue("dec",!0,!1)},value:function(){var e,t=this,n=t.options,i=[].slice.call(arguments),a=t.element,l=m(t.textElement);if(!(0<i.length))return q(t._value());i=k(i[0])&&null!==i[0]&&""!==i[0]?(e=Y(J(i[0],n.max),n.min),e=d.call(t,n.valueTemplate,e),e=q(e),d.call(t,n.textTemplate,e)+""):(e=null,""),n.editable?t._hasFocus&&t._enabled?l.val(e):l.val(i):l.html(i),t._value(e),null!==e?a.attr(re,e):a.removeAttr(re),a.attr("aria-valuetext",W(i))},_value:function(){return this._original.attr.apply(this._original,[M].concat([].slice.call(arguments)))},enabled:function(){var e=m(this.element),t=[].slice.call(arguments);if(!(0<t.length))return this._enabled;(t=!!t[0])?e.removeAttr(r).removeClass("sui-numeric-textbox-disabled"):e.attr(r,r).addClass("sui-numeric-textbox-disabled"),this._enabled=t},focus:function(){m(this.textElement).focus(),O(m(this.textElement))},destroy:function(){var e=this;e._destroyed=!0,e.options.spinners&&(m(e.spinUp).off(e._eventNS).remove(),m(e.spinDown).off(e._eventNS).remove(),e.spinUp=e.spinDown=null),m(e.textElement).off(e._eventNS).remove(),e.textElement=null,e._original.unwrap().show(),e._original=null,g.fn.destroy.call(e)}})).defaults=e,l.ui.plugin("NumericTextBox",t),e={enabled:!0,mask:"00-00-0000",promptChar:"_",value:"",rules:{0:function(e){return/^[0-9]$/.test(e)},9:function(e){return/^[0-9 ]$/.test(e)},"#":function(e){return/^[0-9 \+\-]$/.test(e)},L:function(e){return/^[a-zA-Z]$/.test(e)},"?":function(e){return/^[a-zA-Z ]$/.test(e)},"&":function(e){return/^[\S]$/.test(e)},C:function(e){return/^[.]$/.test(e)},A:function(e){return/^[0-9a-zA-Z]$/.test(e)},a:function(e){return/^[0-9a-zA-Z ]$/.test(e)}},cultureSpecific:[".",",","$"],separators:["/","-"," ","(",")"],cls:p,events:{}},(t=g.extend({init:function(){g.fn.init.apply(this,arguments);var e=this,t=e.options,n=t.dieOnError,i=t.value,a=m(e.element);b(a)!=P?x("shieldMaskedTextBox: Underlying element is not INPUT",n):e._verifyMask()?(e._eventNS=".shieldMaskedTextBox"+e.getInstanceId(),a.addClass("sui-input"),t.cls&&a.addClass(t.cls),k(i)&&e.value(i),a.on(B+e._eventNS,S(e._focus,e)).on(I+e._eventNS,S(e._blur,e)).on(N+e._eventNS,S(e._keydown,e)).on("keypress"+e._eventNS,S(e._keypress,e)).on("cut"+e._eventNS,S(e._cut,e)).on("paste"+e._eventNS,S(e._paste,e)).on(ke+e._eventNS,S(e._dragstart,e)).on(Se+e._eventNS,S(e._dragenter,e)).on(ye+e._eventNS,S(e._dragover,e)).on("drop"+e._eventNS,S(e._drop,e)),a.attr(C,ae),e.enabled(t.enabled)):x("shieldMaskedTextBox: Invalid mask",n)},_getMask:function(){for(var e,t=this.options.mask,n="",i=0;i<t.length;i++)e=t.charAt(i),n+=this._isCultureSpecific(e)?this._getCultureSpecific(e):e;return n},_isCultureSpecific:function(e){return-1!==ie(e,this.options.cultureSpecific)},_getCultureSpecific:function(e){var t=l.getCurrencyInfo();return"$"==e?t.symbol:t[e]},_skipSymbol:function(e){var t=this.options.separators;return-1!==ie(e,t)||this._isCultureSpecific(e)},_insertAt:function(e,t,n){return e.substr(0,n)+t+e.substr(n)},_removeAt:function(e,t){return e.substr(0,t)+e.substr(t+1)},_caret:function(e,t){var n,i=m(this.element);if(0!==i.length&&!i.is(":hidden"))return"number"==typeof e?(t="number"==typeof t?t:e,i.each(function(){i.setSelectionRange?i.setSelectionRange(e,t):i.createTextRange&&((n=i.createTextRange()).collapse(!0),n.moveEnd("character",t),n.moveStart("character",e),n.select())})):(i[0].setSelectionRange?(e=i[0].selectionStart,t=i[0].selectionEnd):X.selection&&X.selection.createRange&&(n=X.selection.createRange(),e=0-n.duplicate().moveStart("character",-1e5),t=e+n.text.length),{begin:e,end:t})},_caretTo:function(e){var t=m(this.element);t.prop("selectionStart")!==p?(t.prop("selectionStart",e),t.prop("selectionEnd",e)):X.selection&&(t.focus(),(t=X.selection.createRange()).moveStart("character",-this.value().length),t.moveEnd("character",-this.value().length),t.moveStart("character",e),t.select())},_isValid:function(e,t){var n=this._getMask(),i=this.options.rules;return!(t>=n.length)&&(n=n.charAt(t),$(i[n])&&i[n].call(this,e))},_removeRegion:function(e){var t,n,i=this,a=i.options,l=i._getMask(),s=i._value(),o=i._caret(),r=a.promptChar,u=o.begin;if(u==o.end)e?(t=l.charAt(--u),i._skipSymbol(t)||(0<=u?(s=i._removeAt(s,u),s=i._insertAt(s,r,u),i._value(s)):u=0)):u<s.length&&(t=l.charAt(u),i._skipSymbol(t)?u++:(s=i._shiftLeft(s,u),i._value(s)));else{for(n=u;n<o.end;n++)i._skipSymbol(l.charAt(n))||(s=i._removeAt(s,n),s=i._insertAt(s,r,n));for(;i._skipSymbol(l.charAt(u));)++u;for(n=u;n<o.end;n++)i._skipSymbol(l.charAt(n))||(s=i._shiftLeft(s,u));i._value(s)}i._caretTo(u)},_shiftLeft:function(e,t){for(var n,i,a,l=this,s=l.options,o=l._getMask(),r=s.promptChar,u=t;u<e.length-1;){for(a=u+1;l._skipSymbol(o.charAt(a));)a++;if(a>e.length-1)break;n=e.charAt(a),e=l._removeAt(e,u),i=l._isValid(n,u),e=l._insertAt(e,i?n:r,u),u=a}return e=l._removeAt(e,u),e=l._insertAt(e,r,u)},_shiftRightKey:function(e,t){var n,i,a,l=this,s=l.options,o=l._getMask(),r=e.charAt(t),u=s.promptChar;if(r!=u&&t<e.length-1){for(var c=t+1,d=e.charAt(c);d!=u&&c<=e.length;)d=e.charAt(++c);if(d==u)for(var h=c;t<h;){if(!l._skipSymbol(o.charAt(h))){for(n=e.charAt(i=h-1);l._skipSymbol(o.charAt(i));)n=e.charAt(--i);e=l._removeAt(e,h),a=l._isValid(n,h),e=l._insertAt(e,a?n:u,h)}h--}}return e},_shiftRightPaste:function(e,t){for(var n,i,a,l=this,s=l.options,o=l._getMask(),r=s.promptChar,u=t,c=e.charAt(u);u<e.length-1;){for(i=u+1;l._skipSymbol(o.charAt(i));)i++;if(i>e.length-1)break;n=e.charAt(i),e=l._removeAt(e,i),a=l._isValid(c,i),e=l._insertAt(e,a?c:r,i),c=n,u=i}return e},_commit:function(e){for(var t=this,n=t._getMask(),i=t._caret(),a=i.begin;t._skipSymbol(n.charAt(a));)++a;if(t._isValid(e,a)){for(i.end>i.begin&&t._removeRegion(!1),i=t._value(),i=t._shiftRightKey(i,a),i=t._removeAt(i,a),i=t._insertAt(i,e,a),t._value(i),a++;t._skipSymbol(n.charAt(a));)a++;t._caretTo(a)}},_verifyValue:function(e){var t=this._getMask();if(e.length!=t.length)return!1;for(var n=0;n<t.length;n++)if(this._skipSymbol(t.charAt(n))){if(t.charAt(n)!==e.charAt(n))return!1}else if(!this._isValid(e.charAt(n),n))return!1;return!0},_verifyMask:function(){for(var e,t=this._getMask(),n=this.options.rules,i=0;i<t.length;i++)if(!this._skipSymbol(t.charAt(i))&&(e=t.charAt(i),!$(n[e])))return!1;return!0},_applyMask:function(){for(var e=this.options,t=this._getMask(),n=e.promptChar,i="",a=0;a<t.length;a++)i+=this._skipSymbol(t.charAt(a))?t.charAt(a):n;this._value(i)},_isEmptyMask:function(){for(var e=this._value(),t=this.options,n=this._getMask(),i=t.promptChar,a=0;a<n.length;a++)if(!this._skipSymbol(n.charAt(a))&&e.charAt(a)!==i)return!1;return!0},_clearMaskOnBlur:function(){this._isEmptyMask()&&this._value("")},_focus:function(e){var t;m(this.element).addClass("sui-input-focus"),(t=this._value())&&""!==t||this._applyMask(),this.trigger(B)},_blur:function(e){this._clearMaskOnBlur(),this.trigger(I)},_preventDrag:function(e){var t;if(e.type==ke||e.type==Se||e.type==ye||"drop"==e.type)return t=e.originalEvent.dataTransfer,e.type==ke?t.effectAllowed="none":t.dropEffect="none",e.stopPropagation&&(e.preventDefault(),e.stopPropagation()),!1},_triggerChange:function(e){var t=this;e!==t._value()&&t.trigger(E,{value:t._value(),old:e}).isDefaultPrevented()&&t._value(t.oldValue),clearInterval(t.changeInterval),t.changeInterval=p},_dragstart:function(e){return this._preventDrag(e)},_dragenter:function(e){return this._preventDrag(e)},_dragover:function(e){return this._preventDrag(e)},_drop:function(e){return this._preventDrag(e)},_keydown:function(e){var t=this,n=e.keyCode,i=t._enabled,a=t._value();switch(i||e.preventDefault(),n){case o.BACK:case o.DEL:t._removeRegion(n==o.BACK),t.changeInterval===p&&(t.changeInterval=setInterval(S(t._triggerChange,t,a),20)),e.preventDefault();break;default:if(e.ctrlKey)switch(n){case 118:case 86:case 122:case 90:case 121:case 89:118==n||86==n?t._paste(e):122!=n&&90!=n||(t._undo(),t.changeInterval===p&&(t.changeInterval=setInterval(S(t._triggerChange,t,a),20))),e.preventDefault()}}},_keypress:function(e){var t,n=this,i=e.keyCode,a=e.which,l=(n._enabled,n._value());if(!e.ctrlKey){switch(i){case o.HOME:case o.END:case o.LEFT:case o.RIGHT:case o.TAB:if(Q.ie)break;return;default:t=String.fromCharCode(a),n._commit(t)}e.preventDefault(),n.changeInterval===p&&l!=n._value()&&(n.changeInterval=setInterval(S(n._triggerChange,n,l),20))}},_cut:function(e){var t=this,n=t._caret();t.cutInterval===p&&(t.cutInterval=setInterval(S(t._aftercut,t,n),20))},_aftercut:function(e){for(var t=this,n=t._getMask(),i=t.value(),a=i,l=t.options.promptChar,s=e.begin,o=s;o<e.end;o++)i=t._insertAt(i,t._skipSymbol(n.charAt(o))?n.charAt(o):l,o);for(t._value(i),t._caretTo(s);t._skipSymbol(n.charAt(s));)++s;for(var r=s;r<e.end;r++)t._skipSymbol(n.charAt(r))||(i=t._shiftLeft(i,s));t._value(i),t._caretTo(s),clearInterval(t.cutInterval),t.cutInterval=p,t._triggerChange(a)},_paste:function(e){var t,n,i,a,l=this,s=l._getMask(),o=l._value(),r=o,u=l._caret(),c=u.begin,d=l.options.promptChar,h=e.originalEvent||e;if(c==o.length)e.preventDefault();else if(h.clipboardData?t=h.clipboardData.getData("text/plain"):f.clipboardData&&(t=f.clipboardData.getData("Text")),null==t)e.preventDefault();else{if(c==u.end){for(;l._skipSymbol(s.charAt(c));)c++;for(a=t.length-1;0<=a;a--)o=l._shiftRightPaste(o,c),o=l._removeAt(o,c),n=l._isValid(t.charAt(a),c),o=l._insertAt(o,n?t.charAt(a):d,c);c+=t.length}else{for(i=c;i<u.end;i++)l._skipSymbol(s.charAt(i))||(o=l._removeAt(o,i),o=l._insertAt(o,d,i));for(a=0;a<t.length;a++){for(;l._skipSymbol(s.charAt(c));)c++;o=l._removeAt(o,c),n=l._isValid(t.charAt(a),c),o=l._insertAt(o,n?t.charAt(a):d,c),c++}}l._value(o),l._caretTo(c),e.preventDefault(),l.changeInterval===p&&(l.changeInterval=setInterval(S(l._triggerChange,l,r),20))}},_undo:function(){this._applyMask()},_value:function(){return this.element.val.apply(this.element,arguments)},value:function(){if(0<arguments.length){var e=[].slice.call(arguments);if(!this._verifyValue(e[0]))return!1}return this._value.apply(this,arguments)},enabled:function(){var e=m(this.element),t=[].slice.call(arguments);if(!(0<t.length))return this._enabled;(t=!!t[0])?e.removeAttr(r).removeClass("sui-input-disabled"):e.attr(r,r).addClass("sui-input-disabled"),this._enabled=t},destroy:function(){var e=this.options.cls;this.element.off(this._eventNS).removeClass("sui-input"+(e?" "+e:"")),g.fn.destroy.call(this)}})).defaults=e,l.ui.plugin("MaskedTextBox",t),e={editable:!0,enabled:!0,open:!1,cls:p,dataSource:p,autoComplete:{enabled:!1,delay:200,minLength:0,filter:p},valueTemplate:p,textTemplate:p,inputTemplate:p,selected:p,value:p,width:p,height:p,dropDownWidth:p,dropDownHeight:200,appendListBoxTo:"body",animation:{enabled:!0,openDelay:200,closeDelay:100},events:{}},(n=g.extend({init:function(){g.fn.init.apply(this,arguments);var e,t,n,i,a,l,s=this,o=s.options,r=o.editable,u=o.dieOnError,c=o.dataSource,d=o.autoComplete,h=o.selected,p=o.value,_=o.appendListBoxTo,v=o.tooltip||m(s.element).attr(ve)||"";s._original=e=m(s.element),s._utype=b(e),c||s._utype==R?(s._eventNS=".shieldComboBox"+s.getInstanceId(),s.pending=0,s.element=n=e.wrap("<span/>").parent(),e.hide(),s._onDDHandler=S(s._onDD,s),r?(i=m('<input type="text" class="sui-input"/>').focus(function(){m(this).parent().addClass("sui-combobox-focus")}).blur(function(){m(this).parent().removeClass("sui-combobox-focus"),s._blur()}).attr(C,ae).attr(oe,w),a=e.attr(we),k(a)&&i.attr(we,a)):i=m('<span class="sui-input sui-unselectable"> </span>').attr(De,"on").on(T+s._eventNS,s._onDDHandler).on(Ae+s._eventNS,function(){return!1}),(s.textElement=i).appendTo(n),s.ddElement=a=m('<span class="sui-caret-container sui-unselectable"/>').html('<span class="sui-caret sui-unselectable" unselectable="on"/>').attr(De,"on").on(T+s._eventNS,s._onDDHandler).appendTo(n),n.addClass(r?"sui-combobox":"sui-dropdown"),o.cls&&n.addClass(o.cls),t=e.attr(D),(r?i:n).attr(D,k(t)?t:"0"),k(o.width)&&n.css("width",o.width),k(o.height)&&(n.css(Te,o.height),i.css(Te,o.height),a.css(Te,o.height)),n.on(N+s._eventNS,S(s._keydown,s)).on("keyup"+s._eventNS,S(s._keyup,s)),s._focusHandler=S(s._focus,s),(r?i:n).on(B+s._eventNS,s._focusHandler),n.on(I+s._eventNS,S(s._blur,s)),s.listElement=m("<span/>").appendTo(m(_)),d&&(l=k(d.filter)?d.filter:c&&c.filter?c.filter:s._utype==R?{and:[{path:"text",filter:"contains",value:""}]}:{and:[{path:"",filter:"contains",value:""}]}),s.listBox=new Ie(e,{cls:"sui-autocomplete",dataSource:c,readDataSource:!1,valueTemplate:o.valueTemplate,textTemplate:o.textTemplate,multiple:!1,selected:k(h)&&z(h)?h[0]:h,values:p,width:o.dropDownWidth||n.innerWidth(),maxHeight:o.dropDownHeight,renderToINTERNAL:s.listElement,wrapOriginalINTERNAL:!1,tabindexINTERNAL:Q.ie&&Q.version<=8?0:-1,filterINTERNAL:l,events:{select:function(e){s._onLBSelChanged(),s.trigger(L,{index:e.index,item:e.item,text:e.text,value:e.value})},itemclick:function(e){(r?i:n).focus(),s._hideDD(),s.trigger(fe,{index:e.index,item:e.item,text:e.text,value:e.value})},blur:function(e){setTimeout(S(s._blur,s),20)}}}),s.listBox.element.hide(),s.dataSource=s.listBox.dataSource,s.listBox.dataSource.on(E+s._eventNS,S(s._dsChange,s)),o.textTemplate=s.listBox.options.textTemplate,o.valueTemplate=s.listBox.options.valueTemplate,n.attr(C,"combobox"),r&&(i.attr(le,"list"),i.attr(pe,s.listBox.element.attr(y)),i.attr(ce,s.listBox.element.attr(C))),s.listBox.dataSource.read(),m(f).on(Ce+s._eventNS,S(s._position,s)),v&&G(v)&&n.attr(ve,v),s.enabled(o.enabled),s._open=!1,o.enabled&&o.open&&s._showDD(!0),s._destroyed=!1):(s.destroy(),x((r?"shieldComboBox":"shieldDropDown")+": No dataSource or underlying SELECT element found.",u))},refresh:function(e){this.refreshWithElement(this._original,e)},focus:function(){this.options.editable?(m(this.textElement).focus(),O(m(this.textElement))):m(this.element).focus()},_focus:function(e){var t=this;t._hasFocus||(t._hasFocus=!0,t._oldValue=t.value(),t.trigger(B))},_blur:function(e){var t=this;setTimeout(function(){t._destroyed||null==t.listBox||m(t.listBox.element).is(":focus")||m(t.element).is(":focus")||m(t.textElement).is(":focus")||(t._hideDD(),t._oldValue!==t.value()&&t.trigger(E),t.trigger(I),t._hasFocus=!1)},100)},_keydown:function(e){switch(e.keyCode){case o.TAB:break;case o.UP:case o.DOWN:this._keydownUpDown(e),e.preventDefault();break;case o.ESC:case o.ENTER:e.preventDefault(),this.cancelSearch=!0,this._hideDD();break;default:this._keydownDefault(e)}},_keyup:function(e){e=e.keyCode;this.options.editable&&this._utype==P&&e!=o.UP&&e!=o.DOWN&&e!=o.ENTER&&e!=o.TAB&&m(this._original).attr(M,m(this.textElement).val())},_keydownUpDown:function(e){this._enabled&&m(this.listBox.element).trigger(e)},_keydownDefault:function(e){this.listBox.clearSelection(),this._searchTimeout(e)},_searchTimeout:function(e){var t=this,n=t.options.autoComplete;n&&n.enabled&&(clearTimeout(t.searchTimeout),t.searchTimeout=setTimeout(function(){t.term!==m(t.textElement).val()&&t._search()},n.delay))},_search:function(){var e=this;e.listBox.dataSource;e.term=m(e.textElement).val(),e.term.length<e.options.autoComplete.minLength?e._hideDD():(e.cancelSearch=!1,e.pending++,m(e.textElement).addClass("sui-autocomplete-loading"),u(e.listBox.dataSource.filter,e.term),e.listBox.dataSource.read())},_dsChange:function(){var e=this,t=e._original,n=e._utype,i=e.textElement.val();e._dsLoaded?(e.pending--,e.pending||m(e.textElement).removeClass("sui-autocomplete-loading"),!e.cancelSearch&&e._hasData()?e._showDD(!0):e._hideDD(),n==R?t.val(i):n==P&&t.attr(M,i),e.trigger(L,{index:-1,item:i})):(e._dsLoaded=!0,!e.options.editable&&e.listBox.selected().length<=0&&e.listBox.selected(0),e._onLBSelChanged())},_hasData:function(){var e=this.listBox.dataSource.view;return e&&0<e.length},_onLBSelChanged:function(){var e,t=this,n=t.options,i=n.editable,a=t.listBox,l=a.selectedItems();l&&0<l.length?(d.call(t,n.valueTemplate,l[0]),e=d.call(t,n.textTemplate,l[0]),n=k(n.inputTemplate)?d.call(t,n.inputTemplate,l[0]):e,i?(t.textElement.val(n),t.textElement.attr(se,a.element.attr(se))):t.textElement.html(n)):i?(t.textElement.val(""),t.textElement.removeAttr(se)):t.textElement.html(" ")},_onDD:function(e){var t=this,n=t.textElement;t.options.editable?(n.focus(),O(n)):t.element.focus(),t._open?t._hideDD():t._hasData()&&t._showDD(!1)},_position:function(){var e=m(this.element),t=m(this.listBox.element);t.width(this.options.dropDownWidth||e.innerWidth()),i.Set(t,e,{source:"left top",target:"left bottom",overflow:"none"})},_showDD:function(e){var t=this,n=t.listBox,i=m(n.element),a=t.options.animation;t._enabled&&(i.css({top:0,left:0}),i.show(),t._position(),!e&&a&&a.enabled?i.hide().slideDown(a.openDelay,S(n.ensureActiveViewableINTERNAL,n)):n.ensureActiveViewableINTERNAL(),t._open=!0,m(t.element).attr(_e,_))},_hideDD:function(){var e=m(this.listBox.element),t=this.options.animation;t&&t.enabled?e.slideUp(t.closeDelay):e.hide(),this._open=!1,m(this.element).attr(_e,w)},enabled:function(){var e=this,t=e.options.editable,n=m(e.element),i=e.textElement,a=e.ddElement,l=e._original,s=[].slice.call(arguments);if(!(0<s.length))return e._enabled;(s=!!s[0])?(n.removeAttr(r).removeClass(t?"sui-combobox-disabled":"sui-dropdown-disabled"),i.removeAttr(r),a.removeAttr(r),l.removeAttr(r)):(e._open&&e._hideDD(),n.attr(r,r).addClass(t?"sui-combobox-disabled":"sui-dropdown-disabled"),i.attr(r,r),a.attr(r,r),l.attr(r,r)),e._enabled=s},selected:function(){var e,t=this.listBox,n=[].slice.call(arguments);if(!(0<n.length))return(e=t.selected())&&0<e.length?e[0]:-1;e=n[0],t.clearSelection(),k(e)&&(-1<(e=j(e))?t.selected(e):this.options.editable||t.selected(0)),this._onLBSelChanged()},selectedItem:function(){var e=this.listBox.selectedItems();return e&&0<e.length?e[0]:null},value:function(){var e,t=this.listBox,n=[].slice.call(arguments);if(!(0<n.length))return(e=t.values())&&0<e.length?e[0]:this.options.editable?m(this.textElement).val():null;t.clearSelection(),t.values(n[0]),this._onLBSelChanged()},text:function(){var e=this.listBox.texts();return e&&0<e.length?e[0]:this.options.editable?m(this.textElement).val():null},destroy:function(){var e=this,t=m(e.element),n=m(e.textElement),i=m(e.ddElement);e._destroyed||(e._destroyed=!0,e._dsLoaded=!1,n.off(e._eventNS),i.off(e._eventNS),e._onDDHandler=null,m(f).off(Ce+e._eventNS),t.off(e._eventNS),e.dataSource=null,e.listBox&&(e.listBox.dataSource.off(E+e._eventNS),e.listBox.destroy(),e.listBox=null),m(e.listElement).remove(),n.remove(),i.remove(),e._original.unwrap().show(),e._original=null,g.fn.destroy.call(e))}})).defaults=e,l.ui.plugin("ComboBox",n),t=te({},e,{editable:!1,autoComplete:p}),(e=n.extend({init:function(e,t){t&&(t.editable=!1,t.autoComplete=p),n.prototype.init.call(this,e,t)}})).defaults=t,l.ui.plugin("DropDown",e),t={enabled:!0,cls:p,toggle:!1,checked:!1,events:{}},(s=g.extend({init:function(){g.fn.init.apply(this,arguments);var e=this,t=m(e.element),n=e.options,i=n.cls;e._eventNS=".shieldButton"+e.getInstanceId(),t.addClass("sui-button"),i&&t.addClass(i),t.on(T+e._eventNS,S(e._click,e)),t.attr(C,"button"),e.enabled(n.enabled),n.toggle&&(e._checked=!!n.checked,e._checked?t.addClass("sui-button-checked"):t.removeClass("sui-button-checked"),t.attr(a+"-pressed",e._checked?_:w))},_click:function(e){var t=this,n=m(t.element);t._enabled&&(t.options.toggle&&(t._checked=!t._checked,t._checked?n.addClass("sui-button-checked"):n.removeClass("sui-button-checked"),n.attr(a+"-pressed",t._checked?_:w)),t.trigger(T,e))},checked:function(){var e=this,t=m(e.element),n=[].slice.call(arguments);if(!(0<n.length))return e._checked;e.options.toggle&&(e._checked=!!n[0],e._checked?t.addClass("sui-button-checked"):t.removeClass("sui-button-checked"),t.attr(a+"-pressed",e._checked?_:w))},enabled:function(){var e=m(this.element),t=[].slice.call(arguments);if(!(0<t.length))return this._enabled;(t=!!t[0])?e.removeAttr(r).removeClass("sui-button-disabled").removeAttr(ue):e.attr(r,r).addClass("sui-button-disabled").attr(ue,_),this._enabled=t},destroy:function(){var e=this.options.cls;this.element.off(T+this._eventNS).removeClass("sui-button sui-button-checked sui-button-disabled"+(e?" "+e:"")),g.fn.destroy.call(this)}})).defaults=t,l.ui.plugin("Button",s),e=te({},t,{menu:p,dataSource:p,events:{}}),(t=s.extend({init:function(){var n,i,e,t,a;s.fn.init.apply(this,arguments),l.ui.ContextMenu&&(i=m((n=this).element),t=(e=n.options).menu,a=e.cls,n._handle=m('<button type="button"><span class="sui-caret-down"/></button>'),i.after(n._handle),n._handleButton=new s(n._handle,{cls:"sui-button-split-handle"+(a?" "+a:""),events:{click:function(e){var t;n.menu.visible()?n.menu.visible(!1):(t=m(i).offset(),n.menu.visible(!0,{x:t.left,y:t.top+m(i).outerHeight()}))}}}),k(t)?n._menuElement=m(t):(n._menuElement=m("<ul/>"),n._customMenuElement=!0,n._handle.after(n._menuElement)),n._menuElement.attr(y)||n._menuElement.attr(y,h()),n.menu=new l.ui.ContextMenu(n._menuElement,{cls:"sui-button-split-menu",dataSource:e.dataSource,minWidth:i.outerWidth()+n._handle.outerWidth()-2,events:{click:S(n.trigger,n,"menuClick")}}),m(n._handle).attr(ce,_).attr(pe,n._menuElement.attr(y)))},enabled:function(){var e=this;if(!(arguments&&0<arguments.length))return s.fn.enabled.apply(e,arguments);s.fn.enabled.apply(e,arguments),e._handleButton&&e._handleButton.enabled.apply(e._handleButton,arguments),e.menu&&!arguments[0]&&e.menu.visible(!1)},visible:function(){var e=this;if(!(arguments&&0<arguments.length))return s.fn.visible.apply(e,arguments);s.fn.visible.apply(e,arguments),e._handleButton&&e._handleButton.visible.apply(e._handleButton,arguments),e.menu&&!arguments[0]&&e.menu.visible(!1)},destroy:function(){var e=this;e.menu&&(e.menu.destroy(),e.menu=p),e._menuElement&&(e._customMenuElement&&(m(e._menuElement).remove(),e._customMenuElement=p),e._menuElement=p),e._handleButton&&(e._handleButton.destroy(),e._handleButton=p),e._handle&&(m(e._handle).remove(),e._handle=p),s.fn.destroy.call(e)}})).defaults=e,l.ui.plugin("SplitButton",t),e={enabled:!0,enableThreeStates:!1,enableLabelClick:!0,checked:!1,label:"",events:{}},(t=g.extend({init:function(){var e,t,n=this,i=(g.fn.init.apply(this,arguments),n._eventNS=".shieldCheckBox"+n.getInstanceId(),e=n.options,m(n.element).addClass("sui-checkbox-input")),a=i.attr(y),l=(a||i.attr(y,a=h()),i.attr(D)),l=n.wrapper=i.wrap('<span class="sui-checkbox"/>').parent().attr(D,k(l)?l:0),s=m('<span class="sui-checkbox-element sui-checkbox-unchecked"/>');s.appendTo(l),n.checkBoxElement=s,m('<span class="sui-checkmark"/>').appendTo(s),e.label?((t=m('<label class="sui-checkbox-label"/>')).appendTo(l),t.attr("for",a),t.get(0).innerHTML=e.label,e.enableLabelClick&&t.addClass("sui-checkbox-label-hover")):(t=(t=i.parent().parent())&&!t.is("label")?m('label[for="'+a+'"]'):t)&&e.enableLabelClick&&t.addClass("sui-checkbox-label-hover"),l.attr(C,"checkbox"),t&&((s=t.attr(y))||t.attr(y,s=h()),l.attr(he,s)),i.attr(A)&&(e.checked=!0),n.enabled(e.enabled),n.checked(e.checked),l.on(T+n._eventNS,S(n._click,n)).on(N+n._eventNS,S(n._keydown,n)),t&&e.enableLabelClick&&t.on(T+n._eventNS,S(n._click,n)).on(N+n._eventNS,S(n._keydown,n)),l.onselectstart=function(){return!1},l.onmousedown=function(){return!1}},_click:function(e){var t=this;m(t.element);t._enabled&&(t._checked?t.options.enableThreeStates?t._checked=null:t._checked=!1:!1===t._checked?t._checked=!0:null===t._checked&&(t._checked=!1),t.checked(t._checked),t.trigger(T,e),e.preventDefault(),e.stopPropagation())},_keydown:function(e){e.keyCode==o.SPACE&&this._click(e)},hide:function(){m(this.wrapper).hide()},show:function(){m(this.wrapper).show()},isVisible:function(){return m(this.wrapper).is(":visible")},checked:function(){var e=this,t=[].slice.call(arguments),n=m(e.element),i=e.wrapper,a=i.find(".sui-checkmark");if(!(0<t.length))return e._checked;e._checked=t=t[0],t?(i.find(".sui-checkbox-element").removeClass("sui-checkbox-unchecked sui-checkbox-indeterminate").addClass("sui-checkbox-checked"),i.attr(c,_),n.attr(A,A),n.data("1"),Q.ie&&Q.version<=8&&a.css("filter","progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=0.7071067811865475, M21=-0.7071067811865475, M22=0.7071067811865476)")):!1===t?(i.find(".sui-checkbox-element").removeClass("sui-checkbox-checked sui-checkbox-indeterminate").addClass("sui-checkbox-unchecked"),i.attr(c,w),n.removeAttr(A),n.data("0"),a.css("filter","")):null===t&&e.options.enableThreeStates&&(i.find(".sui-checkbox-element").removeClass("sui-checkbox-checked sui-checkbox-unchecked").addClass("sui-checkbox-indeterminate"),i.attr(c,"mixed"),n.removeAttr(A),n.data("2"),a.css("filter",""))},enabled:function(){var e=this,t=[].slice.call(arguments),n=m(e.element);if(!(0<t.length))return e._enabled;t=!!t[0];t?(e.wrapper.removeAttr(r).removeClass("sui-checkbox-disabled"),n.removeAttr(r)):(e.wrapper.attr(r,r).addClass("sui-checkbox-disabled"),n.attr(r,r)),e._enabled=t},destroy:function(){var e=this;e.element.removeClass("sui-checkbox-input").removeAttr(D),e.checkBoxElement&&e.checkBoxElement.off(e._eventNS),e.wrapper&&(e.wrapper.find(".sui-checkbox-label").off(e._eventNS).end().removeAttr(r).removeClass("sui-checkbox-disabled").replaceWith(e.element),e.wrapper=null),g.fn.destroy.call(e)}})).defaults=e,l.ui.plugin("CheckBox",t),e={enabled:!0,enableLabelClick:!0,checked:!1,label:"",events:{}},(t=g.extend({init:function(){g.fn.init.apply(this,arguments);var e,t,n,i=this,a=m(i.element),l=i.options,s=(i._eventNS=".shieldRadioButton"+i.getInstanceId(),a.addClass("sui-radiobutton-input"),(n=a.attr(y))||a.attr(y,n=h()),s=a.attr(D),(t=i.wrapper=a.wrap('<span class="sui-radiobutton"/>').parent()).attr(D,k(s)?s:0),m('<span class="sui-radiobutton-element"/>'));s.appendTo(t),i.radioButtonElement=s,m('<span class="sui-checkmark"/>').appendTo(s),l.label?((e=m('<label class="sui-radiobutton-label"/>')).appendTo(t),e.attr("for",n),e.get(0).innerHTML=l.label,l.enableLabelClick&&e.addClass("sui-radiobutton-label-hover")):(e=(e=a.parent().parent())&&!e.is("label")?m('label[for="'+n+'"]'):e)&&l.enableLabelClick&&e.addClass("sui-radiobutton-label-hover"),t.attr(C,"radio"),e&&((s=e.attr(y))||e.attr(y,s=h()),t.attr(he,s)),a.attr(A)&&(l.checked=!0),i.enabled(l.enabled),l.checked?i.checked(l.checked):i._checked=!1,t.on(T+i._eventNS,S(i._click,i)).on(N+i._eventNS,S(i._keydown,i)),e&&l.enableLabelClick&&e.on(T+i._eventNS,S(i._click,i)).on(N+i._eventNS,S(i._keydown,i)),t.onselectstart=function(){return!1},t.onmousedown=function(){return!1}},_click:function(e){this._enabled&&(this.checked(!0),this.trigger(T,e),e.preventDefault(),e.stopPropagation())},_keydown:function(e){e.keyCode==o.SPACE&&this._click(e)},hide:function(){m(this.wrapper).hide()},show:function(){m(this.wrapper).show()},isVisible:function(){return m(this.wrapper).is(":visible")},checked:function(){var e=[].slice.call(arguments);if(!(0<e.length))return this._checked;this._uncheckAllFromSameGroup(),this._checkInternal(e[0])},_checkInternal:function(e){var t=m(this.element),n=this.wrapper;(this._checked=e)?(n.find(".sui-radiobutton-element").removeClass("sui-radiobutton-unchecked sui-radiobutton-indeterminate").addClass("sui-radiobutton-checked"),n.attr(c,_),t.attr(A,A)):(n.find(".sui-radiobutton-element").removeClass("sui-radiobutton-checked"),n.attr(c,w),t.removeAttr(A))},_uncheckAllFromSameGroup:function(){var e=m(this.element);m('input[type="radio"][name="'+e.attr("name")+'"]').not(e).each(function(){var e=m(this).swidget();e&&(e._checkInternal(!1),e.trigger(E))})},enabled:function(){var e=this,t=[].slice.call(arguments),n=m(e.element);if(!(0<t.length))return e._enabled;t=!!t[0];t?(e.wrapper.removeAttr(r).removeClass("sui-radiobutton-disabled"),n.removeAttr(r)):(e.wrapper.attr(r,r).addClass("sui-radiobutton-disabled"),n.attr(r,r)),e._enabled=t},destroy:function(){var e=this;e.element.removeClass("sui-radiobutton-input").removeAttr(D),e.radioButtonElement&&(e.radioButtonElement.off(e._eventNS),e.radioButtonElement=null),e.wrapper&&(e.label&&(e.label.off(e._eventNS),e.label=null),e.wrapper.removeAttr(r).removeClass("sui-radiobutton-disabled"),e.wrapper.replaceWith(e.element),e.wrapper=null),g.fn.destroy.call(e)}})).defaults=e,l.ui.plugin("RadioButton",t),e={cls:p,enabled:!0,checked:p,onText:p,offText:p,events:{}},(t=g.extend({init:function(){g.fn.init.apply(this,arguments);var e,t=this,n=t.options,i=n.dieOnError,a=n.cls,l=n.checked;t._original=e=m(t.element),b(e)!==P||"checkbox"!==e.attr("type")?x("shieldSwitch: Underlying element must ne an input of type checkbox.",i):(t._eventNS=".shieldSwitch"+t.getInstanceId(),t.element=i=e.wrap('<div class="sui-switch sui-unselectable'+(a?" "+a:"")+'" />').parent(),a=m('<div class="sui-switch-inner sui-unselectable" />').appendTo(i),t._text=m('<span class="sui-switch-text sui-unselectable" />').appendTo(a),t._handle=a=m('<div class="sui-switch-handle sui-unselectable" />').appendTo(i),a.height(i.height()),e.hide(),a=e.attr(D),i.attr(D,k(a)?a:"0"),i.on(T+t._eventNS,S(t._click,t)).on(N+t._eventNS,S(t._keydown,t)),l=k(l)?!!l:!!e.attr(A),i.attr(C,"switch"),t.checked(l,!1),t.enabled(n.enabled))},refresh:function(e){this.refreshWithElement(this._original,e)},_keydown:function(e){e.keyCode===o.SPACE&&(this._click(e),e.preventDefault())},_click:function(e){this._enabled&&(this.checked(!this._checked),this.trigger(T,e),e.preventDefault(),e.stopPropagation())},checked:function(){var e,t=this,n=t.options,i=n.onText,a=n.offText,l=m(t.element),n=m(t._handle),s=m(t._text),o=t._original,r=[].slice.call(arguments),u=100;if(!(0<r.length))return t._checked;e=!!r[0],k(r[1])&&!r[1]&&(u=0),e?(o.attr(A,A),n.animate({left:l.width()-n.width()-2},u,function(){l.addClass("sui-switch-checked").attr(c,_),k(i)&&(s.html(i),l.attr(de,W(i)))})):(o.removeAttr(A),n.animate({left:-2},u,function(){l.removeClass("sui-switch-checked").attr(c,w),k(a)&&(s.html(a),l.attr(de,W(a)))})),t._checked=e},enabled:function(){var e=m(this.element),t=this._original,n=[].slice.call(arguments);if(!(0<n.length))return this._enabled;(n=!!n[0])?(e.removeAttr(r).removeClass("sui-switch-disabled"),t.removeAttr(r)):(e.attr(r,r).addClass("sui-switch-disabled"),t.attr(r,r)),this._enabled=n},destroy:function(){var e=this;m(e.element).off(e._eventNS),m(e._inner).remove(),m(e._handle).remove(),e._original.unwrap().show(),e._original=e._inner=e._handle=null,g.fn.destroy.call(e)}})).defaults=e,l.ui.plugin("Switch",t)}(jQuery,shield,this); -!function(A,O,o){function n(e){var t=!1,a="Webkit Moz ms O".split(" "),i=d.createElement("div");if(e=e.toLowerCase(),!1===(t=i.style[e]?!0:t))for(var n=e.charAt(0).toUpperCase()+e.substr(1),l=0;l<a.length;l++)if(void 0!==i.style[a[l]+n]){t=!0;break}return t}var a,r=O.ui.Widget,e=O.Class,z=O.format,l=O.parseDate,d=document,U=O.is.func,s=O.is,u=A.proxy,t=navigator.userAgent,i=o.opera,c=/msie/i.test(t)&&!i,p=c&&8===d.documentMode,_=A.extend,h=s[void 0],m=s.string,g="month",D="year",w="decade",x="century",v="click",f="mousedown",b="focus",T="selectstart",y="change",P="viewChange",M="depthChange",C="close",I="blur",k="display",B="none",t={enabled:!0,readOnly:!1,hover:!0,footer:{enabled:!0,footerTemlpate:"Today"},min:new Date(1900,0,1),max:new Date(2099,11,31),value:void 0,focused:new Date,labels:{previous:"Previous",next:"Next"},view:{depth:g,start:g,minDepth:x},dayTemplate:"{day}",otherMonthDayTemplate:"{day}",outOfRangeDayTemplate:" ",dateTooltipTemplate:"{date:MM/dd/yyyy}",events:{}},F=e.extend({init:function(e){var t=e.listbox,a=e.min,i=e.max,n=e.interval,l=e.parent,e=e.textTemplate;O.ui.ListBox&&(s.object(t)&&t instanceof O.ui.ListBox?l.listBox=t:(l._listBoxWrapper=A("<div style='display: none;' />").appendTo(d.body),a=this._populateDataSource(a,i,n),l.listBox=new O.ui.ListBox(l._listBoxWrapper,_({},t,{dataSource:{data:a},multiple:!1,textTemplate:e,width:l._wrapper.innerWidth(),maxHeight:200})),l._wrapper.parent().hasClass("sui-rtl")?l.listBox.element.parent().addClass("sui-rtl"):l.listBox.element.parent().css(k,B)),l._shouldShowPopup=!0)},_populateDataSource:function(e,t,a){var i,n,l=[];for((t<=e||(t=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),t.getSeconds())).getTime()==e.getTime())&&(t=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1,t.getHours(),t.getMinutes(),t.getSeconds())),i=e.getTime(),n=t.getTime();i<n;)l.push(new Date(i)),i+=60*a*1e3;return l},destroy:function(){this.listBox;this.listBox&&(this.listBox.destroy(),this.listBox=null)}}),i=r.extend({init:function(){r.fn.init.apply(this,arguments);var e=this,t=A(e.element),a=e.options,i=a.cls,n=a.value;t.addClass("sui-calendar"+(i?" "+i:"")),e._focusedDate=a.focused,e._view=a.view.start,e._enabled=a.enabled,n&&(m(n)&&(n=new Date(n)),e._focusedDate=e._selectedDate=new Date(n.getFullYear(),n.getMonth(),n.getDate())),e._initializeHeader(),e._render(),a.footer.enabled&&e._initializeFooter(),!a.readOnly&&a.enabled?(t.find(".sui-prev").on(v,e._movePrev=u(e._movePrevHandler,e)),t.find(".sui-next").on(v,e._moveNext=u(e._moveNextHandler,e)),t.find(".sui-text").on(v,e._changeViewDepth=u(e._changeViewDepthHandler,e)),t.find(".sui-footer").on(v,e._selectToday=u(e._selectTodayHandler,e))):a.readOnly?t.addClass("sui-read-only"):t.addClass("sui-calendar-disabled"),c&&t.on(T,e._selectStart=function(){return!1})},_calendarSelectionHandler:function(e){var t,a=this,i=A(e.target).closest("td"),n=a._focusedDate,l=a.options.view.depth;if(i.length&&!i.hasClass("sui-out-of-range")&&!i.hasClass("sui-no-hover")&&a._enabled)switch(A(a._calendarTable).find(".sui-focused").removeClass("sui-focused"),a._view){case g:var s=new Date(i.attr("data-value")),r=a._shouldChangeView(s),o=!1;s.getTime()>a._focusedDate&&(o=!0),a._focusedDate=s,a._selectedDate=s,r&&(a._animationBegins(o),a._renderView(),a._animationEnds(o),a.trigger(P)),a._selectDateCell(s),a.trigger(y);break;case D:r=parseInt(i.attr("data-value"),10);(s=new Date(n.getFullYear(),r,n.getDate())).getDate()!=n.getDate()&&(s=new Date(n.getFullYear(),r+1,0)),a._focusedDate=s,l==D?(a._selectedDate=s,a._selectDateCell(s),a.trigger(y)):(a._view=g,a._viewDepthAnimationBegins(),a._renderView(),a._viewDepthAnimationEnds(),a.trigger(M));break;case w:t=parseInt(i.attr("data-value"),10),(s=new Date(t,n.getMonth(),n.getDate())).getDate()!=n.getDate()&&(s=new Date(t,n.getMonth()+1,0)),a._focusedDate=s,l==w?(a._selectedDate=s,a._selectDateCell(s),a.trigger(y)):(a._view=D,a._viewDepthAnimationBegins(),a._renderView(),a._viewDepthAnimationEnds(),a.trigger(M));break;case x:t=parseInt(i.attr("data-value"),10),(s=new Date(t,n.getMonth(),n.getDate())).getDate()!=n.getDate()&&(s=new Date(t,n.getMonth()+1,0)),a._focusedDate=s,l==x?(a._selectedDate=s,a._selectDateCell(s),a.trigger(y)):(a._view=w,a._viewDepthAnimationBegins(),a._renderView(),a._viewDepthAnimationEnds(),a.trigger(M))}},_shouldChangeView:function(e){var t,a,i=this._focusedDate,n=!1,l=i.getFullYear(),s=e.getFullYear();switch(this._view){case g:s==l&&e.getMonth()==i.getMonth()||(n=!0);break;case D:s!=l&&(n=!0);break;case w:a=(t=l-l%10)+10,(s<t||a<s)&&(n=!0);break;case x:a=(t=l-l%100)+100,(s<t||a<s)&&(n=!0)}return n},_selectTodayHandler:function(){var e=this,t=new Date,a=e._shouldChangeView(t),i=!1,n=e.options.view.depth;e._enabled&&((t=new Date(t.getFullYear(),t.getMonth(),t.getDate())).getTime()>e._focusedDate&&(i=!0),e._selectedDate=e._focusedDate=t,e._view!=n?(e._view=n,e._viewDepthAnimationBegins(),e._renderView(),e._viewDepthAnimationEnds(),e.trigger(M)):a?(e._animationBegins(i),e._renderView(),e._animationEnds(i),e.trigger(P)):e._selectDateCell(e._focusedDate),e.trigger(y))},_selectDateCell:function(t){var e=this,a=null;switch(e._view){case g:a=e._calendarTable.find(".sui-date:not('.sui-other-month')").filter(function(){var e=A(this).attr("data-value"),e=new Date(e);return e.getDate()==t.getDate()&&e.getMonth()==t.getMonth()&&e.getFullYear()==t.getFullYear()});break;case D:a=e._calendarTable.find(".sui-month").filter(function(){return A(this).attr("data-value")==t.getMonth()});break;case w:a=e._calendarTable.find(".sui-year").filter(function(){return A(this).attr("data-value")==t.getFullYear()});break;case x:a=e._calendarTable.find(".sui-years").filter(function(){var e=parseInt(A(this).attr("data-value"),10);return t.getFullYear()>=e&&t.getFullYear()<e+10})}e._calendarTable.find(".sui-selected").removeClass("sui-selected"),a.addClass("sui-selected")},_viewDepthAnimationBegins:function(){var t,a,i=this;n("transition")?(i._enabled=!1,t=i._calendarTable,a=!1,t.bind("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(e){a=i._removeOldTable(t,i)}),setTimeout(function(){a||i._removeOldTable(t,i)},1e3),t.addClass("sui-fade-in"),i._renderTable()):i._calendarTable.empty()},_removeOldTable:function(e,t){return e.unbind("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend"),e.remove(),t._enabled=!0},_viewDepthAnimationEnds:function(){n("transition")&&this._calendarTable.addClass("sui-scaling")},_changeViewDepthHandler:function(e){var t=this,a=[g,D,w,x],i=A.inArray(t._view,a),n=A.inArray(t.options.view.minDepth,a);t._enabled&&i<n&&(t._view=a[i+1],t._viewDepthAnimationBegins(),t._renderView(),t._viewDepthAnimationEnds())},_movePrevMonth:function(){var e=this._focusedDate,t=(this._view,new Date(e.getFullYear(),e.getMonth()-1,e.getDate()));t.getDate()!=e.getDate()&&(t=new Date(e.getFullYear(),e.getMonth(),0)),this._focusedDate=t},_moveNextMonth:function(){var e=this._focusedDate,t=(this._view,new Date(e.getFullYear(),e.getMonth()+1,e.getDate()));t.getDate()!=e.getDate()&&(t=new Date(e.getFullYear(),e.getMonth()+2,0)),this._focusedDate=t},_movePrevYears:function(e){var t=this._focusedDate,a=(this._view,new Date(t.getFullYear()-e,t.getMonth(),t.getDate()));a.getMonth()!=t.getMonth()&&(a=new Date(t.getFullYear()-e,t.getMonth()+1,0)),this._focusedDate=a,this._calendarTable.empty()},_moveNextYears:function(e){var t=this._focusedDate,a=(this._view,new Date(t.getFullYear()+e,t.getMonth(),t.getDate()));a.getMonth()!=t.getMonth()&&(a=new Date(t.getFullYear()+e,t.getMonth()+1,0)),this._focusedDate=a,this._calendarTable.empty()},_animationBegins:function(e){var t,a=this,i="-";n("transition")?(a._calendarTable.removeClass("sui-scaling"),a._tableWrapper=A("<div>").insertAfter(a.element.find(".sui-header")),a._tableWrapper.width(2*a.element.width()),a.element.find(".sui-calendar-view").appendTo(a._tableWrapper),a.element.parent().hasClass("sui-rtl")&&(e=!e,i="+"),a._renderTable(e),e||(a._tableWrapper.css("position","relative"),a._tableWrapper.css("left",i+a.element.width()+"px")),a._tableWrapper.addClass("sui-calendar-animation"),t=a._enabled=!1,a._tableWrapper.bind("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(e){t=a._removeTempTables(a)}),setTimeout(function(){t||a._removeTempTables(a)},1e3)):a._calendarTable.empty()},_removeTempTables:function(e){return e._tempTable.remove(),e._calendarTable.insertAfter(e.element.find(".sui-header")),e._tableWrapper.unbind("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend"),e._tableWrapper.remove(),e._tableWrapper=null,e._enabled=!0},_animationEnds:function(e){var t;n("transition")&&(t=this.element.width(),e&&(t*=-1),this._tableWrapper.css("transform","translateX("+t+"px)"))},_moveView:function(e){var t=this;switch(t._animationBegins(e),t._view){case g:e?t._moveNextMonth():t._movePrevMonth(),t._createMonthView();break;case D:e?t._moveNextYears(1):t._movePrevYears(1),t._createYearsView();break;case w:e?t._moveNextYears(10):t._movePrevYears(10),t._createDecadeView();break;case x:e?t._moveNextYears(100):t._movePrevYears(100),t._createcenturyView()}t._animationEnds(e),t.trigger(P)},_disablePrev:function(e){var t=this.element.find(".sui-prev");e?(this.preventPrevNavigation=!0,t.addClass("sui-calendar-disabled")):(this.preventPrevNavigation=!1,t.removeClass("sui-calendar-disabled"))},_disableNext:function(e){var t=this.element.find(".sui-next");e?(this.preventNextNavigation=!0,t.addClass("sui-calendar-disabled")):(this.preventNextNavigation=!1,t.removeClass("sui-calendar-disabled"))},_movePrevHandler:function(){!this.preventPrevNavigation&&this._enabled&&this._moveView(!1)},_moveNextHandler:function(){!this.preventNextNavigation&&this._enabled&&this._moveView(!0)},_initializeHeader:function(){var e=this.options.labels;this._header=A('<div class="sui-header"><span unselectable="on" title="'+e.previous+'" class="sui-prev"><span unselectable="on" class="sui-left-arrow"></span></span><span class="sui-text"></span><span unselectable="on" title="'+e.next+'" class="sui-next"><span unselectable="on" class="sui-right-arrow"></span></span></div>').appendTo(this.element)},_renderTable:function(e){var t=this,a=t.options,i="sui-calendar-view";a.hover&&a.enabled&&(i+=" sui-hoverable"),t._calendarTable?(t.element.find(".sui-calendar-view").off(v,t._calendarSelection),t._calendarSelection=null,e?(t._tempTable=t.element.find(".sui-calendar-view"),t._calendarTable=A("<table />").width(t.element.width()).addClass(i).insertAfter(t._tempTable)):(t._tempTable=t.element.find(".sui-calendar-view"),t._calendarTable=A("<table />").width(t.element.width()).addClass(i).insertBefore(t._tempTable))):t._calendarTable=A("<table />").width(t.element.width()).addClass(i).insertAfter(t.element.find(".sui-header")),!a.readOnly&&a.enabled&&t.element.find(".sui-calendar-view").on(v,t._calendarSelection=u(t._calendarSelectionHandler,t))},_render:function(){this._renderTable(),this._renderView()},_renderView:function(){var e=this;switch(e._view){case g:e._createMonthView();break;case D:e._createYearsView();break;case w:e._createDecadeView();break;case x:e._createcenturyView();break;default:e._createMonthView()}},_initializeFooter:function(){var t=this.options.footer.footerTemlpate,e=U(t)?t:function(e){return z(t,e)};A('<div class="sui-footer"><span class="sui-footer-text">'+e.call(this,new Date)+"</span></div>").appendTo(this.element)},_createMonthView:function(){for(var e=this,t=e.options,a=e._focusedDate,i=e._calendarTable,n=O.getCalendarInfo(),l=n.days,s=n.firstDay,n=n.months,r=l.namesShort,o=[],d=l.namesAbbr,u=l.names,c=t.min,p=t.max,_=t.dayTemplate,h=t.otherMonthDayTemplate,m=t.dateTooltipTemplate,g=t.outOfRangeDayTemplate,v=U(_)?_:function(e){return z(_,e)},S=U(h)?h:function(e){return z(h,e)},E=U(m)?m:function(e){return z(m,e)},N=U(g)?g:function(e){return z(g,e)},l=A("<thead/>").appendTo(i),t=A("<tr/>").addClass("sui-week-header").appendTo(l),f="",b=0,b=s;b<r.length;b++)o.push(r[b]);for(var D=0;D<s;D++)o.push(r[D]);for(var w=0;w<o.length;w++)f+="<th scope='col' abbr='"+d[w]+"' title='"+u[w]+"'>"+o[w]+"</th>";t.html(f);var L=A('<tbody class="sui-days"/>').appendTo(i),T=a.getFullYear(),x=a.getMonth(),l=new Date(T,x,1).getDay()-s,t=new Date(T,x+1,0).getDay()-s,y=new Date(T,x+1,0).getDate(),i=7,n=(e._header.find(".sui-text").text(n.names[x]+" "+T),l<=0&&(l=7-(0===l?0:s),i=0),-1*l+1),P=6-t+y+i,M=0,C="";for(42<P-n&&(P-=7),P-n<35&&(P+=7),b=n;b<=P;b++){var I=new Date(T,x,b,0,0,0,0),k="sui-date",B=I.getTime()<c.getTime()||I.getTime()>p.getTime()?" sui-out-of-range":"",F=b<1||y<b?" sui-other-month":"",Y=6==I.getDay()||0===I.getDay()?" sui-weekend":"",V=B||a.getDate()!=b||F?"":" sui-focused",W=e._selectedDate&&I.getTime()==e._selectedDate.getTime()&&!F?" sui-selected":"",H=null;B?(H=N.call(e,{date:I,day:I.getDate()}),k=W=V=Y=F=""):F?""===(H=S.call(e,{date:I,day:I.getDate()}))&&(F+=" sui-no-hover"):H=v.call(e,{date:I,day:I.getDate()}),C+='<td title="'+E.call(e,{date:I,day:I.getDate()})+'" data-value="'+I.getFullYear()+"/"+(I.getMonth()+1)+"/"+I.getDate()+'" class="'+k+F+Y+V+W+B+'">'+H+"</td>",7==++M&&(A('<tr role="row"/>').appendTo(L).html(C),M=0,C="")}l=new Date(T,x,1,0,0,0,0),t=new Date(T,x+1,0);l.getTime()<=c.getTime()?e._disablePrev(!0):e.element.find(".sui-prev").hasClass("sui-calendar-disabled")&&e._disablePrev(!1),t.getTime()>=p.getTime()?e._disableNext(!0):e.element.find(".sui-next").hasClass("sui-calendar-disabled")&&e._disableNext(!1)},_createYearsView:function(){var e=this,t=e.options,a=e._calendarTable,i=e._focusedDate,n=O.getCalendarInfo().months,l=n.names,s=n.namesAbbr,r=A('<tbody class="sui-months"/>').appendTo(a),o="",d=t.min,u=t.max,c="",p=0;e._header.find(".sui-text").text(i.getFullYear());for(var _=0;_<s.length;_++){var h=new Date(i.getFullYear(),_,i.getDate(),0,0,0,0),m=i.getMonth()==_?" sui-focused":"",g=(t.view.depth==D&&(c=e._selectedDate&&h.getTime()==e._selectedDate.getTime()?" sui-selected":""),""),v=l[_],f=s[_],b="sui-month";(g=h.getFullYear()<=d.getFullYear()&&h.getMonth()<d.getMonth()||h.getFullYear()>=u.getFullYear()&&h.getMonth()>u.getMonth()?" sui-out-of-range":g)&&(v=f=" ",b=c=m=""),o+="<td data-value='"+_+"' class='"+b+m+c+g+"' title='"+v+"'>"+f+"</td>",4==++p&&(A("<tr/>").appendTo(r).html(o),p=0,o="")}i.getFullYear()<=d.getFullYear()?e._disablePrev(!0):e.element.find(".sui-prev").hasClass("sui-calendar-disabled")&&e._disablePrev(!1),i.getFullYear()>=u.getFullYear()?e._disableNext(!0):e.element.find(".sui-next").hasClass("sui-calendar-disabled")&&e._disableNext(!1)},_createDecadeView:function(){var e=this,t=e.options,a=e._calendarTable,i=e._focusedDate,n=i.getFullYear(),l=n%10,s=A('<tbody class="sui-decade"/>').appendTo(a),r="",o=0,d=t.min,u=t.max,c=n-l-1,p="",_=n+(10-l);e._header.find(".sui-text").text(1+c+"-"+(_-1));for(var h=c;h<=_;h++){var m=new Date(h,i.getMonth(),i.getDate(),0,0,0,0),g=h==c||h==_?" sui-other-year":"",v=n==h?" sui-focused":"",f="",b=h,D="sui-year";(m.getFullYear()<d.getFullYear()||m.getFullYear()>u.getFullYear())&&(f=" sui-out-of-range"),t.view.depth==w&&(p=e._selectedDate&&m.getTime()==e._selectedDate.getTime()?" sui-selected":""),f&&(D=p=v=g="",b=" "),r+="<td data-value='"+b+"' class='"+D+g+v+p+f+"' title='"+b+"'>"+b+"</td>",4==++o&&(A("<tr />").appendTo(s).html(r),o=0,r="")}c<d.getFullYear()?e._disablePrev(!0):e.element.find(".sui-prev").hasClass("sui-calendar-disabled")&&e._disablePrev(!1),_>u.getFullYear()?e._disableNext(!0):e.element.find(".sui-next").hasClass("sui-calendar-disabled")&&e._disableNext(!1)},_createcenturyView:function(){var e=this,t=e.options,a=e._calendarTable,i=e._focusedDate,n=i.getFullYear(),l=n%100,s=A('<tbody class="sui-decade"/>').appendTo(a),r="",o="",d=t.min,u=t.max,c=0,p=n-l-10,_=99+p+10+2;e._header.find(".sui-text").text(10+p+"-"+(_-2));for(var h=p;h<_;h+=10){var m=h==p||h==_-1?" sui-other-years":"",g=new Date(h,i.getMonth(),i.getDate(),0,0,0,0),v=new Date(h+10,i.getMonth(),i.getDate(),0,0,0,0),f="",b=h<=n&&n<h+10?" sui-focused":"",D="sui-years",w=h+" - "+(h+9),T=h;(g.getFullYear()<d.getFullYear()&&v.getFullYear()<=d.getFullYear()||g.getFullYear()>u.getFullYear())&&(f=" sui-out-of-range"),t.view.depth==x&&(o=e._selectedDate&&e._selectedDate.getFullYear()>=g.getFullYear()&&e._selectedDate.getFullYear()<g.getFullYear()+10?" sui-selected":""),f&&(D=o=b=m="",T=w=" "),r+="<td data-value='"+T+"' class='"+D+m+b+o+f+"' title='"+w+"'>"+w+"</td>",4==++c&&(A("<tr />").appendTo(s).html(r),c=0,r="")}p<d.getFullYear()?e._disablePrev(!0):e.element.find(".sui-prev").hasClass("sui-calendar-disabled")&&e._disablePrev(!1),_>u.getFullYear()?e._disableNext(!0):e.element.find(".sui-next").hasClass("sui-calendar-disabled")&&e._disableNext(!1)},value:function(){var e=this,t=e.options,a=t.min,i=t.max,n=[].slice.call(arguments);if(!(0<n.length))return e._selectedDate;n=n[0];if(null==n||""===n||h(n))e._selectedDate=null,e._focusedDate=t.focused;else{if(n.getTime()<a.getTime()||n.getTime()>i.getTime())return;e._focusedDate=e._selectedDate=new Date(n.getFullYear(),n.getMonth(),n.getDate())}e._calendarTable.empty(),e._renderView()},enabled:function(){var e=this,t=e.options,a=[].slice.call(arguments);if(!(0<a.length))return e._enabled;a=a[0];a?(t.hover&&e._calendarTable.addClass("sui-hoverable"),e.element.removeClass("sui-calendar-disabled")):(e._calendarTable.removeClass("sui-hoverable"),e.element.addClass("sui-calendar-disabled")),e._enabled=a},previous:function(){this.preventPrevNavigation||this._moveView(!1)},next:function(){this.preventNextNavigation||this._moveView(!0)},view:function(){var e=this,t=[].slice.call(arguments);if(!(0<t.length))return e._view;t=t[0];t!=e._view&&(e._view=t,e._calendarTable.empty(),e._renderView())},focused:function(){var e=this,t=[].slice.call(arguments);if(!(0<t.length))return e._focusedDate;e._focusedDate=t[0];1<t.length&&e._view!=t[1]&&(e._view=t[1]),e._calendarTable.empty(),e._renderView()},visible:function(){var e=this,t=(e.options,[].slice.call(arguments));if(!(0<t.length))return!e.element.hasClass("sui-hidden")&&"none"!=e.element.css("display");t[0]?e.element.removeClass("sui-hidden"):e.element.addClass("sui-hidden")},destroy:function(){var e=this,t=e.options.cls,a=A(e.element);a.removeClass("sui-calendar sui-read-only sui-calendar-disabled"+(t?" "+t:"")),e._focusedDate=null,e._header=null,e._calendarTable=null,e._view=null,e._enabled=null,e._selectedDate=null,e._tempTable=null,e._tableWrapper=null,a.find(".sui-prev").off(v,e._movePrev),e._movePrev=null,a.find(".sui-next").off(v,e._moveNext),e._moveNext=null,a.find(".sui-text").off(v,e._changeViewDepth),e._changeViewDepth=null,a.find(".sui-footer").off(v,e._selectToday),e._selectToday=null,a.find(".sui-calendar-view").off(v,e._calendarSelection),e._calendarSelection=null,a.off(T,e._selectStart),e._selectStart=null,a.empty(),r.fn.destroy.call(e)}});i.defaults=t,O.ui.plugin("Calendar",i),e={calendar:null,format:"{0:MM/dd/yyyy}",textTemplate:"{0:MM/dd/yyyy}",value:null,parseFormats:["MM/dd/yyyy"],openOnFocus:!1,showButton:!0,editable:!0,enabled:!0,messages:{calendarIconTooltip:"",buttonText:"select"},min:new Date(1900,0,1),max:new Date(2099,11,31),events:{}},(a=r.extend({init:function(e,t){r.fn.init.apply(this,arguments);var a,i=this,n=i.options,l=n.value,s=n.showButton?"":" sui-no-button",s=(p&&(s+=" sui-ie8"),n.isMonthYearPicker?A("<span class='sui-monthyearpicker"+s+"' />"):n.isTimePicker?A("<span class='sui-timepicker"+s+"' />"):n.isDateTimePicker?A("<span class='sui-datetimepicker"+s+"' />"):A("<span class='sui-datepicker"+s+"' />"));i._selectedDate=null,A(e).after(s),i._wrapper=s,i._visibleInput=A("<input class='sui-picker-input' type='text' />").appendTo(s),n.showButton&&(a=n.messages.calendarIconTooltip,n.isTimePicker&&(a=n.messages.timeIconTooltip),i._iconWrapper=A("<span class='sui-icon-wrapper' unselectable='on' title='"+a+"' />").appendTo(s),A('<span class="sui-sprite sui-calendar-icon" unselectable="on">'+n.messages.buttonText+"</span>").appendTo(i._iconWrapper),n.isDateTimePicker&&(i._timeIconWrapper=A("<span class='sui-time-icon-wrapper' unselectable='on' title='"+n.messages.timeIconTooltip+"' />").appendTo(s),A('<span class="sui-sprite sui-time-icon" unselectable="on">'+n.messages.buttonText+"</span>").appendTo(i._timeIconWrapper))),A(e).css(k,B).appendTo(s),i._enabled=n.enabled,n.enabled||(s.addClass("sui-disabled"),i._visibleInput.on(b,i._visibleInputFocused=u(i._visibleInputFocusedHandler,i))),i._attachEvents(),l||(a=i._value())&&(l=a),l&&(m(l)&&(l=new Date(l)),n.isMonthYearPicker?i._selectedDate=new Date(l.getFullYear(),l.getMonth(),1):i._selectedDate=l,i._changeInputsValues(l))},_changeInputsValues:function(e){var t=this,a=t.options,i=a.format,n=a.textTemplate,l=U(i)?i:function(e){return z(i,e.date)},l=(t._value(l.call(t,{date:e})),U(n)?n:function(e){return z(n,e.date)});t._visibleInput.get(0).value=l.call(t,{date:e}),a.isMonthYearPicker?t._selectedDate=new Date(e.getFullYear(),e.getMonth(),1):t._selectedDate=e},_attachEvents:function(){var e=this,t=e.options;t.showButton&&(t.isTimePicker?e._iconWrapper.on(v,e._toggleListBoxVisibility=u(e._toggleListBoxVisibilityHandler,e)):(t.isDateTimePicker&&e._timeIconWrapper.on(v,e._toggleListBoxVisibility=u(e._toggleListBoxVisibilityHandler,e)),e._iconWrapper.on(v,e._toggleCalendarVisibility=u(e._toggleCalendarVisibilityHandler,e)))),e._visibleInput.on("keypress",e._visibleInputKeyPress=u(e._visibleInputKeyPressHandler,e)),A(d).on(f+".shieldDatePicker"+e.getInstanceId(),u(e._hidePopupHandler,e)),e._visibleInput.on(b,e._visibleInputFocused=u(e._visibleInputFocusedHandler,e)),e._visibleInput.on(I,e._visibleInputBlured=u(e._visibleInputBluredHandler,e)),e._visibleInput.on(y,e._visibleInputChanged=u(e._visibleInputChangedHandler,e))},_visibleInputChangedHandler:function(){var e=this,t=e.options,a=t.format,i=t.min,n=t.max;e._enabled&&(e._selectedDate=l(e._visibleInput.get(0).value,t.parseFormats),e._selectedDate&&(e._selectedDate.getTime()>n||e._selectedDate.getTime()<i)&&(t.isTimePicker?e._selectedDate=new Date(i.getFullYear(),i.getMonth(),i.getDate(),e._selectedDate.getHours(),e._selectedDate.getMinutes(),e._selectedDate.getSeconds()):e._selectedDate=null),null!=e._selectedDate&&(e._selectedDate&&e.calendar&&e.calendar.value(e._selectedDate),e._selectedDate&&e.listBox&&e._selectValueInListBox(e._selectedDate)),n=U(a)?a:function(e){return z(a,e.date)},e.element.get(0).value=n.call(e,{date:e._selectedDate}),e.trigger(y))},_visibleInputFocusedHandler:function(e){var t=this,a=t.options;t._enabled?(a.isMonthYearPicker?t._wrapper.addClass("sui-monthyearpicker-focus"):a.isTimePicker?t._wrapper.addClass("sui-timepicker-focus"):a.isDateTimePicker?t._wrapper.addClass("sui-datetimepicker-focus"):t._wrapper.addClass("sui-datepicker-focus"),!a.openOnFocus||!t._shouldShowPopup&&t.calendar||(t._toggleCalendarVisibilityHandler(),t._shouldShowPopup=!1)):e.target.blur()},_visibleInputBluredHandler:function(){var e=this.options,t=this._wrapper;e.isMonthYearPicker?t.removeClass("sui-monthyearpicker-focus"):e.isTimePicker?t.removeClass("sui-timepicker-focus"):e.isDateTimePicker?t.removeClass("sui-datetimepicker-focus"):t.removeClass("sui-datepicker-focus")},_visibleInputKeyPressHandler:function(e){var t=this,a=t.options;t._enabled&&(!1===a.editable?(e.preventDefault(),e.stopPropagation()):13!=(a=e.keyCode||e.charCode)&&9!=a&&27!=a||(t._shouldShowPopup=!0,t.calendar&&t.calendar.element.css(k)!=B&&(t.calendar.element.css(k,B),t.trigger(C))))},_hidePopupHandler:function(e){var t,a=this;if(a.listBox){if(a._visibleInput.get(0)==e.target||a._iconWrapper&&a._iconWrapper.get(0)==e.target||a._iconWrapper&&a._iconWrapper.children(0).get(0)==e.target||a._timeIconWrapper&&a._timeIconWrapper.get(0)==e.target||a._timeIconWrapper&&a._timeIconWrapper.children(0).get(0)==e.target)return;a._popupIsOver?(t=a.listBox.element.parent().height(),a.listBox.element.parent().animate({height:0,top:a._visibleInput.offset().top},150,function(){A(this).css(k,B),A(this).css("height",t)})):a.listBox.element.parent().slideUp(150,function(){}),a._shouldShowPopup=!0}!a.calendar||a._visibleInput.get(0)==e.target||a._iconWrapper&&a._iconWrapper.get(0)==e.target||a._iconWrapper&&a._iconWrapper.children(0).get(0)==e.target||(a._popupIsOver?(t=a.calendar.element.height(),a.calendar.element.animate({height:0,top:a._visibleInput.offset().top},150,function(){A(this).css(k,B),A(this).css("height",t)})):a.calendar.element.slideUp(150,function(){}),a._shouldShowPopup=!0)},_toggleListBoxVisibilityHandler:function(){var e=this,t=e.options,a=t.listBox;e._enabled&&(e.listBox||(new F({listbox:a,parent:e,min:t.min,max:t.max,interval:t.interval,textTemplate:t.isDateTimePicker?t.timeFormat:t.textTemplate}),e.listBox.on("select",e._listBoxChange=u(e._listBoxChangeHandler,e)),e.listBox.element.on(f,e._popupMouseDown=u(e._popupMouseDownHandler,e)),e._selectedDate&&e._selectValueInListBox(e._selectedDate)),t.isDateTimePicker&&(e.calendar&&e.calendar.element.css(k)!=B&&(e.calendar.element.slideUp(150,function(){}),e._shouldShowPopup=!0),e._toggleTimePopup=!0),e._shouldShowPopup?e._showPopup():e._hidePopup(),e._shouldShowPopup?e._shouldShowPopup=!1:e._shouldShowPopup=!0)},_listBoxChangeHandler:function(e){for(var t,a=this,i=(a.options.isDateTimePicker?(i=a._selectedDate,t=e.item,i=i||new Date,a._selectedDate=new Date(i.getFullYear(),i.getMonth(),i.getDate(),t.getHours(),t.getMinutes(),t.getSeconds())):a._selectedDate=e.item,a.options),n=i.isDateTimePicker?O.format(i.timeFormat,a._selectedDate):O.format(i.textTemplate,a._selectedDate),l=a.listBox.element.find(".sui-listbox-item"),s=0;s<l.length;s++)if(l[s].innerHTML==n){a._selectedElement=A(l[s]);break}a._changeInputsValues(a._selectedDate),a._hidePopup(),a._shouldShowPopup=!0,a.trigger(y)},_toggleCalendarVisibilityHandler:function(){var e=this,t=e.options,a=t.calendar;e._enabled&&(e.calendar||(O.ui.Calendar&&(s.object(a)&&a instanceof O.ui.Calendar?e.calendar=a:(e._wrapper.parent().hasClass("sui-rtl")?(e._calendarWrapper=A("<div style='display: none;' />").appendTo(d.body),e._calendarWrapper.wrap("<span class='sui-rtl'></span>")):e._calendarWrapper=A("<div style='display: none;' />").appendTo(d.body),e.calendar=new O.ui.Calendar(e._calendarWrapper,_({},a,{min:t.min,max:t.max}))),e._shouldShowPopup=!0),e.calendar.on(y,e._calendarChange=u(e._calendarChangeHandler,e)),e.calendar.element.on(f,e._popupMouseDown=u(e._popupMouseDownHandler,e)),e._selectedDate&&e.calendar.value(e._selectedDate)),t.isDateTimePicker&&(e.listBox&&e.listBox.element.parent().css(k)!=B&&(e.listBox.element.parent().slideUp(150,function(){}),e._shouldShowPopup=!0),e._toggleTimePopup=!1),e._shouldShowPopup?e._showPopup():e._hidePopup(),e._shouldShowPopup?e._shouldShowPopup=!1:e._shouldShowPopup=!0)},_calendarChangeHandler:function(){var e,t=this,a=t.options;a.isMonthYearPicker?(e=t.calendar.value(),t._selectedDate=new Date(e.getFullYear(),e.getMonth(),1)):a.isDateTimePicker&&(e=t.calendar.value(),t._selectedDate)?t._selectedDate=new Date(e.getFullYear(),e.getMonth(),e.getDate(),t._selectedDate.getHours(),t._selectedDate.getMinutes(),t._selectedDate.getSeconds()):t._selectedDate=t.calendar.value(),t._changeInputsValues(t._selectedDate),t._hidePopup(),t._shouldShowPopup=!0,t.trigger(y)},_calculateLeftOffsetWhenRtl:function(){var e,t=this,a=t.options,i=(t._wrapper.offset(),0);return a.isTimePicker||a.isDateTimePicker&&t._toggleTimePopup?0<(e=t._visibleInput.offset().left-(t.listBox.element.parent().width()-t._visibleInput.width()))&&(i=e):0<(e=t._visibleInput.offset().left-(t.calendar.element.width()-t._visibleInput.width()))&&(i=e),i},_showPopup:function(){var a=this,e=a.options,t=a._wrapper.offset(),i=t.top-A(d).scrollTop(),n=a._wrapper.height(),l=A(o).height(),s=t.top+n,r=t.left;a._wrapper.parent().hasClass("sui-rtl")&&(r=a._calculateLeftOffsetWhenRtl()),l<(l=(e.isTimePicker||e.isDateTimePicker&&a._toggleTimePopup?a.listBox.element.parent():a.calendar.element).height())+i+n?s=t.top-l-1:s++,(s<0||A(d).scrollTop()>s)&&(s=t.top+n+1),a._visibleInput.offset().top>s?a._popupIsOver=!0:a._popupIsOver=!1,e.isTimePicker||e.isDateTimePicker&&a._toggleTimePopup?a._popupIsOver?(a.listBox.element.parent().css({position:"absolute",zIndex:10002,top:s+l,left:r,height:0,display:""}),a.listBox.element.parent().animate({height:l,top:s+2},150)):(a.listBox.element.parent().css({position:"absolute",top:s,left:r,zIndex:10002}),a.listBox.element.parent().slideDown(150,function(){var e,t;a._selectedElement&&(e=Math.abs(a._selectedElement.get(0).offsetTop),t=a._selectedElement.parent().scrollTop(),e>a._selectedElement.parent().get(0).scrollTopMax&&(e=a._selectedElement.parent().get(0).scrollTopMax),t+a.listBox.element.height()>e&&t<e||a.listBox.element.scrollTop(e))})):a._popupIsOver?(a.calendar.element.css({position:"absolute",zIndex:10002,top:s+l,left:r,height:0,display:""}),a.calendar.element.animate({height:l,top:s},150)):(a.calendar.element.css({position:"absolute",zIndex:10002,top:s,left:r}),a.calendar.element.slideDown(150,function(){})),a.trigger("open")},_hidePopup:function(){var e,t=this,a=t.options;a.isTimePicker||a.isDateTimePicker&&t._toggleTimePopup?t.listBox&&t.listBox.element.parent().css(k)!=B&&(t._popupIsOver?(e=t.listBox.element.parent().height(),t.listBox.element.parent().animate({height:0,top:t._visibleInput.offset().top},150,function(){A(this).css(k,B),A(this).css("height",e)})):t.listBox.element.parent().slideUp(150,function(){})):t.calendar&&t.calendar.element.css(k)!=B&&(t._popupIsOver?(e=t.calendar.element.height(),t.calendar.element.animate({height:0,top:t._visibleInput.offset().top},150,function(){A(this).css(k,B),A(this).css("height",e)})):t.calendar.element.slideUp(150,function(){})),t.trigger(C)},_popupMouseDownHandler:function(e){e.preventDefault(),e.stopPropagation()},_selectValueInListBox:function(e){var t=this;if(t.listBox){for(var a=t.options,i=a.isDateTimePicker?O.format(a.timeFormat,e):O.format(a.textTemplate,e),n=t.listBox.element.find(".sui-listbox-item"),l=0;l<n.length;l++)if(n[l].innerHTML==i){t._selectedElement=A(n[l]);break}t.listBox.selected(l,!0)}},enabled:function(){var e=this,t=(e.options,[].slice.call(arguments));if(!(0<t.length))return e._enabled;t=t[0];(e._enabled=t)?(e._visibleInputFocused&&(e._visibleInput.off(b,e._visibleInputFocused),e._visibleInputFocused=null),e._wrapper.removeClass("sui-disabled")):(e._wrapper.addClass("sui-disabled"),e._visibleInput.on(b,e._visibleInputFocused=u(e._visibleInputFocusedHandler,e)))},visible:function(){var e=this,t=(e.options,[].slice.call(arguments));if(!(0<t.length))return!e._wrapper.hasClass("sui-hidden")&&"none"!=e._wrapper.css("display");t[0]?e._wrapper.removeClass("sui-hidden"):e._wrapper.addClass("sui-hidden")},focus:function(){A(this._visibleInput).focus()},_value:function(){return this.element.attr.apply(this.element,["value"].concat([].slice.call(arguments)))},value:function(){var e=this,t=e.options,a=t.min,i=t.max,n=[].slice.call(arguments);if(!(0<n.length))return e._selectedDate;n=n[0];null==n||""===n||h(n)?(e._visibleInput.get(0).value="",e._selectedDate=null,e.calendar&&e.calendar.value(null),(t.isTimePicker||t.isDateTimePicker)&&e.listBox&&e.listBox.clearSelection()):!t.isTimePicker&&(n.getTime()<a.getTime()||n.getTime()>i.getTime())||(e._changeInputsValues(n),e.calendar&&e.calendar.value(n),e._selectedDate=n,(t.isTimePicker||t.isDateTimePicker)&&e._selectValueInListBox(n))},close:function(){var e=this,t=[].slice.call(arguments);e.options.isDateTimePicker?0<t.length&&("calendar"==t[0]&&(e._shouldShowPopup=!1,e._toggleCalendarVisibilityHandler()),"timeview"==t[0]&&(e._shouldShowPopup=!1,e._toggleListBoxVisibilityHandler())):(e._shouldShowPopup=!1,e._toggleCalendarVisibilityHandler())},open:function(){var e=this,t=[].slice.call(arguments);e.options.isDateTimePicker?0<t.length&&("calendar"==t[0]&&(e._shouldShowPopup=!0,e._toggleCalendarVisibilityHandler()),"timeview"==t[0]&&(e._shouldShowPopup=!0,e._toggleListBoxVisibilityHandler())):(e._shouldShowPopup=!0,e._toggleCalendarVisibilityHandler())},destroy:function(){var e=this;e.options.isTimePicker?(e._iconWrapper.off(v,e._toggleListBoxVisibility),e._toggleListBoxVisibility=null):(e.options.isDateTimePicker&&(e._iconWrapper.off(v,e._toggleListBoxVisibility),e._toggleListBoxVisibility=null,e._timeIconWrapper=null),e._iconWrapper.off(v,e._toggleCalendarVisibility),e._toggleCalendarVisibility=null),e._iconWrapper=null,e._popupIsOver=null,A(d).off(f+".shieldDatePicker"+e.getInstanceId()),A(e.element).css(k,"").insertAfter(e._wrapper),e._wrapper.remove(),e._wrapper=null,e._destroyCalendar(),e._destroyListBox(),e._shouldShowPopup=null,e._visibleInput.off(b,e._visibleInputFocused),e._visibleInput.off(y,e._visibleInputChanged),e._visibleInput.off(I,e._visibleInputBlured),e._visibleInputFocused=null,e._visibleInputChanged=null,e._visibleInputBlured=null,e._visibleInput=null,e._selectedDate=null,e._enabled=null,r.fn.destroy.call(e)},_destroyCalendar:function(){var e=this;e.calendar&&(e.calendar.off(y,e._calendarChange),e._calendarChange=null,e.calendar.element.off(f,e._popupMouseDown),e._popupMouseDown=null,e.calendar.destroy(),e.calendar=null,e._calendarWrapper&&e._calendarWrapper.remove())},_destroyListBox:function(){var e=this;e.listBox&&(e._selectedElement=null,e.listBox.off(y,e._listBoxChange),e._listBoxChange=null,e.listBox.destroy(),e.listBox=null,e._listBoxWrapper&&(e._listBoxWrapper.remove(),e._listBoxWrapper=null))}})).defaults=e,O.ui.plugin("DatePicker",a),t=_({},e,{isMonthYearPicker:!0,calendar:{view:{depth:D,start:D}},format:"{0:MMMM yyyy}",textTemplate:"{0:MMMM yyyy}",parseFormats:["MMMM yyyy"]}),(i=a.extend({init:function(e,t){t&&(t.isMonthYearPicker=!0),a.prototype.init.call(this,e,t)}})).defaults=t,O.ui.plugin("MonthYearPicker",i),t=_({},e,{isTimePicker:!0,listBox:null,format:"{0:h:mm tt}",textTemplate:"{0:h:mm tt}",parseFormats:["h:mm tt"],interval:30,min:new Date(1900,0,1,0,0,0),max:new Date(1900,0,1,0,0,0),messages:{timeIconTooltip:"",buttonText:"select"}}),(i=a.extend({init:function(e,t){t&&(t.isTimePicker=!0),a.prototype.init.call(this,e,t)}})).defaults=t,O.ui.plugin("TimePicker",i),t=_({},e,{isDateTimePicker:!0,listBox:null,format:"{0:MM/dd/yyyy h:mm tt}",textTemplate:"{0:MM/dd/yyyy h:mm tt}",parseFormats:["MM/dd/yyyy h:mm tt"],interval:30,min:new Date(1900,0,1,0,0,0),max:new Date(2099,11,31,0,0,0),messages:{calendarIconTooltip:"",timeIconTooltip:"",buttonText:"select"},timeFormat:"{0:h:mm tt}"}),(i=a.extend({init:function(e,t){t&&(t.isDateTimePicker=!0),a.prototype.init.call(this,e,t)}})).defaults=t,O.ui.plugin("DateTimePicker",i)}(jQuery,shield,this); -!function(s,i,a,e){var c=i.ui.Widget,t=i.Class,u=document,p=i.is,d=(i.get,i.format,i.to.int),h=(Math.abs,s.each,s.proxy),g=(s.extend,s.map,p[void 0]),o=a.opera,r=navigator.userAgent,l=(/msie/i.test(r)&&!o&&u.documentMode,"keydown"),v="click",f="mousedown",n="change",_="select",C="cancel",b="display",y="none",r={cls:e,palette:"basic",basicPalette:{columns:10,tileSize:{width:16,height:16},tileBorderWidth:0,palette:["#FFFFFF","#FFCCCC","#FFCC99","#FFFF99","#FFFFCC","#99FF99","#99FFFF","#CCFFFF","#CCCCFF","#FFCCFF","#CCCCCC","#FF6666","#FF9966","#FFFF66","#FFFF33","#66FF99","#33FFFF","#66FFFF","#9999FF","#FF99FF","#BBBBBB","#FF0000","#FF9900","#FFCC66","#FFFF00","#33FF33","#66CCCC","#33CCFF","#6666CC","#CC66CC","#999999","#CC0000","#FF6600","#FFCC33","#FFCC00","#33CC00","#00CCCC","#3366FF","#6633FF","#CC33CC","#666666","#990000","#CC6600","#CC9933","#999900","#009900","#339999","#3333FF","#6600CC","#993399","#333333","#660000","#993300","#996633","#666600","#006600","#336666","#000099","#333399","#663366","#000000","#330000","#663300","#663333","#333300","#003300","#003333","#000066","#330099","#330033"]},advancedPalette:{type:"hex",buttons:!0,messages:{apply:"Apply",cancel:"Cancel"}},displayInline:!1,showLetter:!1,value:e,valueTemplate:function(e){return e?(e.hex?e:e.toRGB()).hex():null}},o=c.extend({init:function(e,t){c.fn.init.apply(this,arguments);var o=this,r=o.options,n=r.tooltip||s(o.element).attr("title")||"",i=r.cls,l=p.defined(r.value)?r.value:o._value();1<arguments.length&&(t=arguments[1]).basicPalette&&t.basicPalette.palette&&(r.basicPalette.palette=t.basicPalette.palette),o.element.css(b,y),o._enabled=!0,o.currentColor=new w({color:l}),r.displayInline?(o._buildPalette(),i&&o._picker.addClass(i)):(o._picker=l=s('<span class="sui-color-picker-dropdown" tabindex="0"><span class="sui-color-cell sui-unselectable" unselectable="on"> </span><span class="sui-caret-container sui-unselectable" unselectable="on"><span class="sui-caret" unselectable="on"></span></span></span>').insertAfter(o.element),i&&o._picker.addClass(i),(r.showLetter?(i=l.find(".sui-color-cell"),s('<span class="sui-tool-letter">A<span class="sui-selected-color"></span></span>').appendTo(i),l.find(".sui-selected-color")):l.find(".sui-color-cell")).css("background-color",o.currentColor.color.cssa()),l.on(v,o._pickerClicked=h(o._pickerClickedHandler,o)),s(u).on(f+".shieldColorPicker"+o.getInstanceId(),h(o._hidePopup,o))),o.currentColor.color.cssa?o._oldColor=o.currentColor.color.cssa():o._oldColor=o.currentColor.color.toRGB().cssa(),n&&p.string(n)&&o._picker.attr("title",n),o._changed()},hidePalette:function(){this._hidePopup({})},hide:function(){var e=this;e.options.displayInline?s(e.wrapperDiv).hide():(s(e._picker).hide(),e._hidePopup({}))},show:function(){var e=this;e.options.displayInline?s(e.wrapperDiv).hide():s(e._picker).show()},isVisible:function(){var e=this;return(e.options.displayInline?s(e.wrapperDiv):s(e._picker)).is(":visible")},_changed:function(){var e=this;e._value(i.format.call(e,e.options.valueTemplate,e.currentColor.color))},_value:function(){return this.element.attr.apply(this.element,["value"].concat([].slice.call(arguments)))},_buildPalette:function(){var e=this;"basic"==e.options.palette?e._buildBasicPalette():(e._buildAdvancedPalette(),e._changeAdvancedPaletteColor())},_changeAdvancedPaletteColor:function(){var e=this,t=e.currentColor.color.toHSV();e.wrapperDiv&&(e._hue=t.hue,e._isHsl?(t=e.currentColor.color.toHSL(),e._XY(e,{pointer:e.wrapperDiv.find(".sui-color-palette .pointer").get(0),x:t.hue,y:1-t.saturation}),e._Z(e,1-t.lightness,e.wrapperDiv.find(".sui-color-scale .pointer").get(0))):(e._XY(e,{pointer:e.wrapperDiv.find(".sui-color-palette .pointer").get(0),x:t.saturation,y:1-t.value}),e._Z(e,t.hue,e.wrapperDiv.find(".sui-color-scale .pointer").get(0))))},_pickerClickedHandler:function(){var e=this;e.wrapperDiv||e._buildPalette(),e._showPopup()},_showPopup:function(){var e,t,o=this,r=o._picker.offset(),n=r.top-s(u).scrollTop(),i=o._picker.height(),l=s(a).height();"advanced"===o.options.palette&&(o.currentColor.color.cssa?o._oldColor=o.currentColor.color.cssa():o._oldColor=o.currentColor.color.toRGB().cssa()),o.wrapperDiv&&o.wrapperDiv.css(b)!=y||(o._popupIsOver=!1,e=r.top+i+1,t=r.left,l<(l=o.wrapperDiv.height())+n+i?e=r.top-l-1:e++,(e<0||s(u).scrollTop()>e)&&(e=r.top+i+1),r.top>e?o._popupIsOver=!0:o._popupIsOver=!1,o.wrapperDiv||this._buildPalette(),o._popupIsOver?(o.wrapperDiv.css({position:"absolute",zIndex:10002,top:e+l,left:t,height:0,display:""}),o.wrapperDiv.animate({height:l,top:e},150)):(o.wrapperDiv.css({position:"absolute",zIndex:10002,top:e-1,left:t}),o.wrapperDiv.slideDown(150,function(){})))},_hidePopup:function(e){var t,o=this,r=o.options,e=s(e.target);"basic"!=r.palette&&(e.hasClass("sui-colorpicker")||0<e.parents(".sui-colorpicker").length)||o.wrapperDiv&&o.wrapperDiv.css(b)!=y&&("basic"===r.palette&&(e=0===(e=o._picker.find(".sui-tool-letter > .sui-selected-color")).length?o._picker.find(".sui-color-cell"):e).css("background-color",o.currentColor.color.css()),o._popupIsOver?(t=o.wrapperDiv.height(),o.wrapperDiv.animate({height:0,top:o._picker.offset().top},150,function(){s(this).css(b,y).css("height",t)})):o.wrapperDiv.slideUp(150,function(){}),e=(o.currentColor.color.cssa?o.currentColor.color:o.currentColor.color.toRGB()).cssa(),"basic"!=r.palette&&(r.advancedPalette.buttons?e!==o._oldColor?(o.currentColor=new w({color:o._oldColor}),setTimeout(function(){o._update(),o.trigger(C)},200)):o._changed():(o._changeSelectedColorCell(),o._changed(),o.trigger(n))))},_buildBasicPalette:function(){for(var e=this,t=e.options,o=t.basicPalette,r=o.palette,n=o.tileSize,i=s("<div class='sui-colorpicker sui-colorpicker-basic-palette'/>"),l=t.displayInline?i.insertAfter(e.element):i.appendTo(u.body).css(b,y),a=0;a<r.length;a++)s("<div class='sui-palette-tile'/>").css({backgroundColor:r[a],width:n.width,height:n.height,borderWidth:o.tileBorderWidth,margin:"0 "+o.tileBorderWidth+"px "+o.tileBorderWidth+"px 0"}).on(f,e._tileClicked=h(e._tileClickedHandler,e)).appendTo(l).addClass(e.currentColor.color.hex().toUpperCase()==r[a].toUpperCase()?"sui-palette-tile-selected":"");t=o.columns*d(n.width)+o.columns*o.tileBorderWidth,l.css("width",t+"px"),e.wrapperDiv=l},_tileClickedHandler:function(e){var t=this;t._enabled&&(t.wrapperDiv.find(".sui-palette-tile-selected").removeClass("sui-palette-tile-selected"),s(e.target).addClass("sui-palette-tile-selected"),e=s(e.target).css("background-color"),t.currentColor=new w({color:e}),t.trigger(_),t._changed())},_buildAdvancedPalette:function(){var e,t=this,o=t.options,r=o.displayInline?s("<div/>").insertAfter(t.element).addClass("sui-colorpicker"):s("<div/>").appendTo(u.body).addClass("sui-colorpicker").css(b,y),n=(t.wrapperDiv=r,n=s("<div class='sui-hex-wrapper'/>").appendTo(r),t.colorDiv=s("<div class='sui-color-div'/>").appendTo(n),"hsl"==o.advancedPalette.type?t.colorInput=s("<input class='sui-alpha-input'/>").appendTo(n):t.colorInput=s("<input class='sui-hex-input'/>").appendTo(n),t.colorInput.on(l,t._colorInputKeyDown=h(t._colorInputKeyDownHandler,t)),s("<div class='sui-color-palette'><div class='pointer'><div class='shape shape1'></div><div class='shape shape2'></div></div><div class='bg bg1'></div><div class='bg bg2'></div></div><div class='sui-color-scale'><div class='pointer'><div class='shape'></div></div><div class='bg'></div></div>").appendTo(r),new I({twod:r.find(".sui-color-palette").get(0),pointer:r.find(".sui-color-palette .pointer").get(0),oned:r.find(".sui-color-scale").get(0),isXYslider:!0,cbs:{begin:t._changeXY,change:t._changeXY,end:t._done}},t)),n=(t.xy=n,new I({twod:r.find(".sui-color-palette").get(0),pointer:r.find(".sui-color-scale .pointer").get(0),oned:r.find(".sui-color-scale").get(0),isXYslider:!1,cbs:{begin:t._changeZ,change:t._changeZ,end:t._done}},t));t.z=n,"rgb"==o.advancedPalette.type&&(n=s(e="<div class='extras'/>").appendTo(r),s("<span class='sui-r-text'>R:</span>").appendTo(n),t.rInput=s("<input class='sui-r-input'/>").appendTo(n),t._rInputKeyDown=h(t._rInputKeyDownHandler,t),s("<span class='sui-g-text'>G:</span>").appendTo(n),t.gInput=s("<input class='sui-g-input'/>").appendTo(n),t._gInputKeyDown=h(t._gInputKeyDownHandler,t),s("<span class='sui-b-text'>B:</span>").appendTo(n),t.bInput=s("<input class='sui-b-input'/>").appendTo(n),t._bInputKeyDown=h(t._bInputKeyDownHandler,t),i.ui.NumericTextBox&&(t.rInput=new i.ui.NumericTextBox(t.rInput,{min:0,max:255,step:.01,spinners:!1,cls:"rgbInputs",events:{change:t._rInputKeyDown}}),t.gInput=new i.ui.NumericTextBox(t.gInput,{min:0,max:255,step:.01,spinners:!1,cls:"rgbInputs",events:{change:t._gInputKeyDown}}),t.bInput=new i.ui.NumericTextBox(t.bInput,{min:0,max:255,step:.01,spinners:!1,cls:"rgbInputs",events:{change:t._bInputKeyDown}}))),"hsl"==o.advancedPalette.type&&(t._isHsl=!0,e="<div class='sui-transparent-slider'><div class='sui-color-scale alpha'><div class='pointer' style='top: 0%;'><div class='shape'></div></div><div class='bg'></div></div></div>",r.addClass("sui-hsl"),s(e).appendTo(r),n=new I({twod:r.find(".alpha").get(0),pointer:r.find(".alpha .pointer").get(0),oned:r.find(".alpha").get(0),isXYslider:!1,cbs:{begin:t._changeA,change:t._changeA,end:t._done}},t),t.a=n),o.advancedPalette.buttons&&t._buildButtons()},_buildButtons:function(){var e,t=this.options.advancedPalette.messages,o=s("<div class='sui-buttons-wrapper'/>").appendTo(this.wrapperDiv);i.ui.Button&&(e=s("<button type='button'>"+t.apply+"</button>").appendTo(o),e=new i.ui.Button(e,{cls:"sui-apply",events:{click:h(this._applyHandler,this)}}),this._applyButton=e,e=s("<button type='button'>"+t.cancel+"</button>").appendTo(o),t=new i.ui.Button(e,{cls:"sui-cancel",events:{click:h(this._cancelHandler,this)}}),this._cancelButton=t)},_applyHandler:function(e){var t=this;t.currentColor.color.cssa?t._oldColor=t.currentColor.color.cssa():t._oldColor=t.currentColor.color.toRGB().cssa(),t._changeSelectedColorCell(),t.options.displayInline||t._hidePopup(e),t._changed(),t.trigger(n)},_changeSelectedColorCell:function(){var e=this,t=e.options,o=e._picker,e=(e.currentColor.color.cssa?e.currentColor.color:e.currentColor.color.toRGB()).cssa();t.displayInline||(t.showLetter?o.find(".sui-selected-color"):o.find(".sui-color-cell")).css("background-color",e)},_cancelHandler:function(e){var t=this;t.options.displayInline?(t.currentColor=new w({color:t._oldColor}),setTimeout(function(){t._update(),t.trigger(C)},200)):t._hidePopup(e)},_update:function(){var e,t=this,o=t._shouldUpdateMainInput,r=t._shouldUpdateRgbInputs;t._isHsl?(e=t.currentColor.color.toHSL(),t._XY(t,{pointer:t.wrapperDiv.find(".sui-color-palette .pointer").get(0),x:e.hue,y:1-e.saturation}),t._shouldUpdateMainInput=o,t._Z(t,1-e.lightness,t.wrapperDiv.find(".sui-color-scale .pointer").get(0)),t.Y(t.wrapperDiv.find(".alpha .pointer").get(0),(1-e.alpha).toFixed(2))):(e=t.currentColor.color.toHSV(),t._XY(t,{pointer:t.wrapperDiv.find(".sui-color-palette .pointer").get(0),x:e.saturation,y:1-e.value}),t._shouldUpdateMainInput=o,t._shouldUpdateRgbInputs=r,t._Z(t,e.hue,t.wrapperDiv.find(".sui-color-scale .pointer").get(0)))},_rInputKeyDownHandler:function(t){var o=this;setTimeout(function(){var e=t.value;o.currentColor.color.red=parseFloat(e)/255,o._shouldUpdateRgbInputs=!1,o._update(),o.trigger(_)},1)},_gInputKeyDownHandler:function(t){var o=this;setTimeout(function(){var e=t.value;o.currentColor.color.green=parseFloat(e)/255,o._shouldUpdateRgbInputs=!1,o._update(),o.trigger(_)},1)},_bInputKeyDownHandler:function(t){var o=this;setTimeout(function(){var e=t.value;o.currentColor.color.blue=parseFloat(e)/255,o._shouldUpdateRgbInputs=!1,o._update(),o.trigger(_)},1)},_colorInputKeyDownHandler:function(o){var r=this;o.ctrlKey||setTimeout(function(){var e=o.currentTarget.value,t=r.currentColor;r.currentColor=new w({color:e}),p.object(r.currentColor.color)?(r._shouldUpdateRgbInputs=!0,r._shouldUpdateMainInput=!1,r._update()):r.currentColor=t,r.trigger(_)},1)},_changeA:function(e,t){e.colorPicker._enabled&&(e.colorPicker.colorInput.val("rgba(0,0,0,1)"),e.colorPicker._A(e.colorPicker,e.colorPicker.clamp(t.y,0,1),e.colorPicker.a.pointer))},_changeZ:function(e,t){e.colorPicker._enabled&&(e.colorPicker._isHsl?e.colorPicker.colorInput.val("rgba(0,0,0,1)"):e.colorPicker.colorInput.val("#000000"),e.colorPicker._Z(e.colorPicker,e.colorPicker.clamp(t.y,0,1),e.colorPicker.z.pointer),e.colorPicker.trigger(_))},_changeXY:function(e,t){e.colorPicker._enabled&&(e.colorPicker._isHsl?e.colorPicker.colorInput.val("rgba(0,0,0,1)"):e.colorPicker.colorInput.val("#000000"),e.colorPicker._XY(e.colorPicker,{x:e.colorPicker.clamp(t.x,0,1),y:e.colorPicker.clamp(t.y,0,1),pointer:t.pointer},e.colorPicker.xy),e.colorPicker.X(t.pointer,t.x),e.colorPicker.Y(t.pointer,t.y),e.colorPicker.trigger(_))},_XY:function(e,t){var o,r,n=this;e._enabled&&(e.X(t.pointer,t.x),e.Y(t.pointer,t.y),n._isHsl?((o=e.currentColor.color.toHSL?e.currentColor.color.toHSL():e.currentColor.color).hue=t.x,o.saturation=1-t.y,r=o.lightness,o.lightness=.5,n.wrapperDiv.find(".sui-color-scale").css("background-color",o.toRGB().cssa()),o.lightness=r):(o=e.currentColor.color.toHSV(),1<t.x&&(t.x=1),t.x<0&&(t.x=0),t.y<0&&(t.y=0),1<t.y&&(t.y=1),o.saturation=t.x,o.value=1-t.y,0===o.hue&&(o.hue=n._hue)),r=o.toRGB(),(t=e.colorInput.val())!=r.hex()&&(n._shouldUpdateMainInput?(4<t.length||0===t.length)&&(n._isHsl?e.colorInput.val(r.cssa()):e.colorInput.val(r.hex())):n._shouldUpdateMainInput=!0),e.rInput&&(n._shouldUpdateRgbInputs?(e.rInput.value((255*r.red).toFixed(2)),e.gInput.value((255*r.green).toFixed(2)),e.bInput.value((255*r.blue).toFixed(2))):n._shouldUpdateRgbInputs=!0),e.colorDiv.get(0).style.background=r.cssa(),e.currentColor.color=r)},_Z:function(e,t,o){var r,n=this,i=e.colorInput.val();n._isHsl?(r=e.currentColor.color.toHSL?e.currentColor.color.toHSL():e.currentColor.color,e.Y(o,t),r.lightness=1-t,e.colorDiv.get(0).style.background=r.toRGB().cssa(),i!=(e.currentColor.color=r).toRGB().hex()&&(n._shouldUpdateMainInput?(4<i.length||0===i.length)&&(n._isHsl?e.colorInput.val(r.toRGB().cssa()):e.colorInput.val(r.toRGB().hex())):n._shouldUpdateMainInput=!0)):(r=e.currentColor.color.toHSV(),e.Y(o,t),e._rgbBg(e,e.wrapperDiv.find(".sui-color-palette").get(0),t),n._hue=r.hue=t,i!=(o=r.toRGB()).hex()&&(4<i.length||0===i.length)&&(n._isHsl?e.colorInput.val(o.cssa()):e.colorInput.val(o.hex())),e.rInput&&(n._shouldUpdateRgbInputs?(e.rInput.value((255*o.red).toFixed(2)),e.gInput.value((255*o.green).toFixed(2)),e.bInput.value((255*o.blue).toFixed(2))):n._shouldUpdateRgbInputs=!0),e.colorDiv.get(0).style.background=o.cssa(),e.currentColor.color=o)},_A:function(e,t,o){var r=e.colorInput.val(),n=e.currentColor.color.toHSL?e.currentColor.color.toHSL():e.currentColor.color;e.Y(o,t),n.alpha=(1-t).toFixed(2),e.colorDiv.get(0).style.background=n.toRGB().cssa(),r!=(e.currentColor.color=n).toRGB().hex()&&(this._shouldUpdateMainInput?(4<r.length||0===r.length)&&(e.colorInput.val(n.toRGB().cssa()),this.trigger(_)):this._shouldUpdateMainInput=!0)},_rgbBg:function(e,t,o){o=new w({}).HSV(o,1,1).toRGB().cssa();e.BG(t,o)},clamp:function(e,t,o){return Math.min(Math.max(e,t),o)},X:function(e,t){e.style.left=this.clamp(100*t,0,100)+"%"},Y:function(e,t){e.style.top=this.clamp(100*t,0,100)+"%"},BG:function(e,t){e.style.background=t},_done:function(){},enabled:function(){var e=this,t=(e.options,[].slice.call(arguments));if(!(0<t.length))return e._enabled;(t=t[0])?(e._picker&&e._picker.removeClass("sui-colorpicker-disabled"),e.wrapperDiv&&e.wrapperDiv.removeClass("sui-colorpicker-disabled")):(e._picker&&e._picker.addClass("sui-colorpicker-disabled"),e.wrapperDiv&&e.wrapperDiv.addClass("sui-colorpicker-disabled")),e._applyButton&&e._applyButton.enabled(t),e._cancelButton&&e._cancelButton.enabled(t),t?(e.colorInput&&e.colorInput.removeAttr("readonly"),e.rInput&&(e.rInput.enable(!0),e.gInput.enable(!0),e.bInput.enable(!0))):(e.colorInput&&e.colorInput.attr("readonly","readonly"),e.rInput&&(e.rInput.enable(!1),e.gInput.enable(!1),e.bInput.enable(!1))),e._enabled=t},value:function(){var e,t=this,o=t.options,r=[].slice.call(arguments);if(!(0<r.length))return e=(e=t.currentColor.color).css?e:e.toRGB();if(e=r[0],t.currentColor=new w({color:e}),"basic"==o.palette){var n=t.currentColor.color.css();if(t.wrapperDiv)for(var i=t.wrapperDiv.find(".sui-palette-tile"),l=0;l<i.length;l++)i[l].style.backgroundColor.replace(/\s+/g,"")===n.replace(/\s+/g,"")&&(i.removeClass("sui-palette-tile-selected"),s(i[l]).addClass("sui-palette-tile-selected"))}else t._changeAdvancedPaletteColor();o.displayInline||(o.showLetter?(t._picker.find(".sui-color-cell"),t._picker.find(".sui-selected-color")):t._picker.find(".sui-color-cell")).css("background-color",t.currentColor.color.cssa()),t._changed()},destroy:function(){var e=this;e.element.show(),e.wrapperDiv.remove(),e.colorInput&&e.colorInput.off(l,e._colorInputKeyDown),e.rInput&&(e.rInput.destroy(),e.gInput.destroy(),e.bInput.destroy()),e.options.displayInline&&"basic"==e.options.palette&&(e.wrapperDiv.find(".sui-palette-tile").off(v,e._tileClicked),e.wrapperDiv.remove()),e._applyButton&&e._applyButton.destroy(),e._cancelButton&&e._cancelButton.destroy(),s(u).off(f+".shieldColorPicker"+e.getInstanceId()),e._tileClicked=e._rInputKeyDown=e._gInputKeyDown=e._bInputKeyDown=e._hidePopupDelegate=e._picker=e._applyButton=e._cancelButton=e._isHsl=e.currentColor=e.wrapperDiv=e.colorInput=e.colorDiv=e.rInput=e.gInput=e._enabled=e._popupIsOver=e.bInput=null,c.fn.destroy.call(e)}}),I=t.extend({init:function(e,t){var o=this,r=e.isXYslider,n=e.cbs,i=e.twod,l=e.pointer,e=e.oned;return o.colorPicker=t,r?(o.drag(i,o.attachPointer(o,n,l)),{background:i,pointer:l}):(o.drag(e,o.attachPointer(o,n,l)),{background:e,pointer:l})},drag:function(e,t){e?this.isTouch()?this.dragTemplate(e,t,"touchstart","touchmove","touchend"):this.dragTemplate(e,t,"mousedown","mousemove","mouseup"):console.warn("drag is missing elem!")},attachPointer:function(e,t,r){var o,n={};for(o in t)t.hasOwnProperty(o)&&(n[o]=function(o){return function(e,t){t.pointer=r,o(e,t)}}(t[o]));return n},isTouch:function(){return void 0!==a.ontouchstart},dragTemplate:function(r,e,t,n,i){var l=this,a=(e=l.getCbs(e)).begin,s=e.change,c=e.end;l.on(r,t,function(t){0;var o=l.partial(l,l.callCb,s,r);l.on(u,n,o),l.on(u,i,function e(){l.off(u,n,o),l.off(u,i,e),l.callCb(c,r,t)}),l.callCb(a,r,t)})},on:function(e,t,o){e.addEventListener?e.addEventListener(t,o,!1):e.attachEvent&&e.attachEvent("on"+t,o)},off:function(e,t,o){e.removeEventListener?e.removeEventListener(t,o,!1):e.detachEvent&&e.detachEvent("on"+t,o)},getCbs:function(e){var t,o;return e?{begin:e.begin||function(){},change:e.change||function(){},end:e.end||function(){}}:{begin:function(e){t={x:e.elem.offsetLeft,y:e.elem.offsetTop},o=e.cursor},change:function(e){e.elem.style.left=t.x+e.cursor.x-o.x+"px",e.elem.style.top=t.y+e.cursor.y-o.y+"px"},end:function(){}}},callCb:function(e,t,o){o.preventDefault();var r=s(t).offset(),n=t.clientWidth,i=t.clientHeight,l={x:this.cursorX(t,o),y:this.cursorY(t,o)},n=(l.x-r.left)/n,r=(l.y-r.top)/i;e(this,{x:isNaN(n)?0:n,y:isNaN(r)?0:r,cursor:l,elem:t,e:o})},partial:function(e,t){var o=Array.prototype.slice,r=o.apply(arguments,[2]),n=this;return function(){return t.apply(n,r.concat(o.apply(arguments)))}},cursorX:function(e,t){return this.isFixed(e)?(e=parseInt(this.getStyle(u.body,"marginLeft"),10)-this.calc(e,"scrollLeft")+a.pageXOffset+e.style.marginLeft,t.clientX-e):t.pageX||(t.clientX?t.clientX+u.body.scrollLeft:void 0)},cursorY:function(e,t){return this.isFixed(e)?(e=parseInt(this.getStyle(u.body,"marginTop"),10)-this.calc(e,"scrollTop")+a.pageYOffset+e.style.marginTop,t.clientY-e):t.pageY||(t.clientY?t.clientY+u.body.scrollTop:void 0)},calc:function(e,t){for(var o=0;"HTML"!=e.nodeName;)o+=e[t],e=e.parentNode;return o},isFixed:function(e){for(;"HTML"!=e.nodeName&&"fixed"!=this.usedStyle(e,"position");)e=e.parentNode;return"HTML"!=e.nodeName},getStyle:function(e,t){return(e.currentStyle||(u.defaultView&&u.defaultView.getComputedStyle?u.defaultView.getComputedStyle(e,""):e.style))[t]},usedStyle:function(e,t){e=a.getComputedStyle?a.getComputedStyle(e,null):e.currentStyle;return e[t]}}),w=t.extend({init:function(e){var t,o=this,e=e.color;g(e)||null===e||""===(t=e,p.string(t)?t.replace(/^\s+/,"").replace(/\s+$/,""):t)?o.color=o.getColor("#000"):p.integer(e)?o.color=o.getColor("rgb("+(t=[(16711680&(t=e+0))>>16,(65280&t)>>8,255&t])[2]+","+t[1]+","+t[0]+")"):o.color=o.getColor(e)},getColor:function(e){var t,o,r,n,i,l=/\s*(\.\d+|\d+(?:\.\d+)?)(%)?\s*/,l=new RegExp("^(rgb|hsl|hsv)a?\\("+l.source+","+l.source+","+l.source+"(?:,"+/\s*(\.\d+|\d+(?:\.\d+)?)\s*/.source+")?\\)$","i");return(l=(e="transparent"===e.toLowerCase()?"rgba(0,0,0,0)":e).match(l))?(t=l[1].toUpperCase(),o=g(l[8])?l[8]:parseFloat(l[8]),i="H"===t[0],r=l[3]?100:i?360:255,n=l[5]||i?100:255,i=l[7]||i?100:255,this[t](parseFloat(l[2])/r,parseFloat(l[4])/n,parseFloat(l[6])/i,o)):(t=(e=e.length<6?e.replace(/^#?([0-9a-f])([0-9a-f])([0-9a-f])$/i,"$1$1$2$2$3$3"):e).match(/^#?([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])$/i))?this.RGB(parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255):e},RGB:function(e,t,o,s){var c=this;return{red:e,green:t,blue:o,alpha:g(s)?1:s,hex:function(){var e=(65536*Math.round(255*this.red)+256*Math.round(255*this.green)+Math.round(255*this.blue)).toString(16);return"#"+"00000".substr(0,6-e.length)+e},hexa:function(){var e=Math.round(255*this.alpha).toString(16);return"#"+"00".substr(0,2-e.length)+e+this.hex().substr(1,6)},css:function(){return"rgb("+Math.round(255*this.red)+","+Math.round(255*this.green)+","+Math.round(255*this.blue)+")"},cssa:function(){return"rgba("+Math.round(255*this.red)+","+Math.round(255*this.green)+","+Math.round(255*this.blue)+","+this.alpha+")"},toHSV:function(){var e,t=this.red,o=this.green,r=this.blue,n=Math.max(t,o,r),i=n-Math.min(t,o,r),l=0===n?0:i/n,a=n;if(0==i)e=0;else switch(n){case t:e=(o-r)/i/6+(o<r?1:0);break;case o:e=(r-t)/i/6+1/3;break;case r:e=(t-o)/i/6+2/3}return c.HSV(e,l,a,s)},toHSL:function(){var e=this.toHSV();return c.HSV(e.hue,e.saturation,e.value,e.alpha).toHSL()},toCMYK:function(){var e=this.red,t=this.green,o=this.blue,r=1-e,n=1-t,i=1-o,l=1;return e||t||o?(r=(r-(l=Math.min(r,Math.min(n,i))))/(1-l),n=(n-l)/(1-l),i=(i-l)/(1-l)):l=1,c.CMYK(r,n,i,l,s)}}},HSV:function(e,t,o,u){var p=this;return{hue:e,saturation:t,value:o,alpha:g(u)?1:u,toRGB:function(){var e,t,o,r=this.hue,n=this.saturation,i=this.value,l=Math.min(5,Math.floor(6*r)),r=6*r-l,a=i*(1-n),s=i*(1-r*n),c=i*(1-(1-r)*n);switch(l){case 0:e=i,t=c,o=a;break;case 1:e=s,t=i,o=a;break;case 2:e=a,t=i,o=c;break;case 3:e=a,t=s,o=i;break;case 4:e=c,t=a,o=i;break;case 5:e=i,t=a,o=s}return p.RGB(e,t,o,u)},toHSL:function(){var e=(2-this.saturation)*this.value,t=this.saturation*this.value,o=e<=1?e:2-e,t=o<1e-9?0:t/o;return p.HSL(this.hue,t,e/2,this.alpha)}}},HSL:function(e,t,o,r){var n=this;return{hue:e,saturation:t,lightness:o,alpha:g(r)?1:r,toHSV:function(){var e=2*this.lightness,t=this.saturation*(e<=1?e:2-e),o=e+t<1e-9?0:2*t/(e+t);return n.HSV(this.hue,o,(e+t)/2,this.alpha)},toRGB:function(){return this.toHSV().toRGB()}}},CMYK:function(e,t,o,r,n){var i=this;return{cyan:e,magenta:t,yellow:o,black:r,alpha:g(n)?1:n,toRGB:function(){return i.RGB(1-this.cyan*(1-this.black)-this.black,1-this.magenta*(1-this.black)-this.black,1-this.yellow*(1-this.black)-this.black,this.alpha)}}},destroy:function(){this.color=null}});o.defaults=r,i.ui.plugin("ColorPicker",o),i.ui.ColorPicker=o}(jQuery,shield,this); -!function(x,_,s,C){var e=_.ui.Widget,a=_.Class,M=_.DataSource,T=_.format,g=_.support,w=_.exp,y=_.get,r=_.iid,h=(_.strid,_.Constants.KeyCode),n=_.is,S=n.func,k=n.string,o=n.object,p=n.boolean,I=n.defined,t=n.number,B=n[void 0],q=n.null,f=_.to.int,m=document,d=Math.abs,v=Math.min,b=Math.max,O=x.each,N=x.proxy,R=x.extend,L=x.map,U=x.grep,X=x.inArray,i=navigator.userAgent,j=s.opera,Y=/msie/i.test(i)&&!j,E=Y&&7===m.documentMode,K=Y&&8===m.documentMode,Q=(Y&&m.documentMode,m.documentMode,/AppleWebKit/.test(i)),$=(/Firefox/.test(i),"role"),J="aria-sort",Z="aria-readonly",W="tabindex",ee="true",te="height",P="sui-selected",z="command",ie="selectionChanged",F="dataBound",ne="virtualRowsLoaded",re="keydown",l="mousedown",u="mousemove",oe="mouseup",H="click",le="detailCreated",ae="columnReorder",se="columnResize",de="groupsReorder",ce="ungroup",ue="editorCreating",pe="filterWidgetCreating",he="cancel",fe="edit",ge="save",_e="error",me="collapse",D="display",A="none",c="@@custom",V="row",ve="sui-viewindex",G="sui-fieldname";function be(e){var t,i=" ";if(e){if(k(e))return e;for(t in e)e.hasOwnProperty(t)&&(i+=t+'="'+e[t]+'"')}return i}function Ce(e,t){e=x(e).attr(t);return I(e)&&!1!==e}function xe(){for(var e,t,i,n=[].slice.call(arguments),r=n.shift(),o=0;o<n.length&&!(e=x(r.target).closest(".sui-cell",n[o])).length;o++);return!e.length||(t=e[0].parentNode,i=e[0],null==t||null==i)?null:{row:t,cell:i}}function Te(e){return e&&(x(e.row).hasClass(P)||x(e.cell).hasClass(P))}function we(e,t){return 0<x(e.target).closest(".sui-cell",t).length}function ye(e){e=x(e).find('.sui-checkbox:not(.sui-checkbox-disabled), .sui-radiobutton:not(.sui-radiobutton-disabled), .sui-input:not(.sui-input-disabled), .sui-combobox:not(.sui-combobox-disabled), .sui-dropdown:not(.sui-dropdown-disabled), .sui-listbox:not(.sui-listbox-disabled), .sui-switch:not(.sui-switch-disabled), a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex]:not([tabindex="-1"]), *[contenteditable]').filter(":visible").first();0<x(e).length&&x(e).focus()}var j={columns:[],rowHover:!0,scrolling:!1,paging:!1,columnReorder:!1,showHeader:!0,grouping:{showGroupHeader:!1,allowDragToGroup:!1,message:"Drag a column header here to group by a column"}},Se=a.extend({init:function(e,t){var i,n,r,o;for(this._grid=t,o=0;o<e.length;o++)r=(i=e[o]).position||"top",n=x('<div class="sui-toolbar"/>'),"top"===r?0<(r=t.element.find(".sui-toolbar")).length?x(r[0]).after(n):t.element.prepend(n):(n.addClass("sui-toolbar-bottom"),n.appendTo(t.element)),i.template?this._initializeTemplate(i,n):0<i.buttons.length&&this._buildButtons(n,i)},_buildButtons:function(e,t){for(var i=t.buttons,n=0;n<i.length;n++)this._buildButton(i[n],e)},_buildButton:function(e,t){var i=this,n=e.commandName,r=e.click;_.ui.Button&&(t=x('<button type="button">'+e.caption+"</button>").appendTo(t),"insert"==n?r=i._insertButtonClicked:"save"==n?r=i._saveButtonClicked:"cancel"==n?r=i._cancelButtonClicked:"excel"==n?r=i._excelButtonClicked:"pdf"==n?r=i._pdfButtonClicked:"csv"==n&&(r=i._csvButtonClicked),new _.ui.Button(t,{cls:e.cls,events:{click:N(r,i._grid)}}))},_excelButtonClicked:function(){this._doExcelExport()},_pdfButtonClicked:function(){this._doPdfExport()},_csvButtonClicked:function(){this._doCsvExport()},_insertButtonClicked:function(e,t){var i,n,r,o=this,l=o.options,a=l.editing.insertNewRowAt,s=o.dataSource,d=!1;if(t||!o.trigger(z,{commandName:"insert",cancel:!1}).cancel)if(s.sort&&0<s.sort.length)s.sort=[],o._sortingInProgress=!0,o.pager&&(s.skip=0,s.take=o.pager.pageSize(),o.pager.refresh(!0)),s.read().always(N(o._toolbar._insertButtonClicked,o,e,!0));else{for(r in o._editingInProcess=!0,"pagebottom"===a?(n=b(0,o.contentTable.find(">tbody > tr").length-1),l.paging&&(!o.pager||o.pager.hasNext())||(n+=1,d=!0)):n=0,(i=d?s.add({}):s.insertView(n,{})).fields)i.fields.hasOwnProperty(r)&&(i.data[r]=null);o._editing._insertedItems.push(i),t=o.contentTable.find(">tbody > tr").eq(n),"popup"!=o.options.editing.mode?o._editing._putRowInEditMode(t,0):o._initializePopupForm(0,!0),o.trigger("insert")}},_saveButtonClicked:function(e){var t=this,i=t.contentTable.find(">tbody > tr > .sui-editable-cell");0<i.length&&(i=i.get(0).parentNode.rowIndex,t._updateItem(i,null),t._errorDuringEdit)?t._errorDuringEdit=!1:t.trigger(z,{commandName:ge,cancel:!1}).cancel||(t.dataSource.save(),t.trigger(ge))},_cancelButtonClicked:function(e){this.trigger(z,{commandName:he,cancel:!1}).cancel||(this.dataSource.cancel(),this.trigger(he))},_initializeTemplate:function(e,t){var i,e=e.template;S(e)?(i=e.call(this._grid,t),I(i)&&!q(i)&&""!==i&&t.html(i)):t.html(e)},destroy:function(){}}),ke=a.extend({init:function(e,t){var i=this;i._grid=t,i.options=e,i._eventNS=".shieldGridEditing"+r(),i._editors={},i._insertedItems=[],e.enabled&&i._initEditing(),i._grid.dataSource.on(_e+i._eventNS,N(i._dsError,i))},_dsError:function(e){var t=this._editors[e.path];this._grid.trigger(_e,{type:e.type,path:e.path,value:e.value,editor:t,reason:e.reason}),this._errorDuringEdit=!0},_initEditing:function(){var e=this,t=e.options.event,i=e._eventNS;B(t)||(t===H?e._grid.element.on(H+i,".sui-cell",N(e._editingTriggered,e)):"doubleclick"===t&&e._grid.element.on("dblclick"+i,".sui-cell",N(e._editingTriggered,e)),x(m).on(H+i,N(e._documentClicked,e)))},_editingTriggered:function(e){var t,i,n=this,r=n._grid,o=e.target,l=x(o).parent(),a=l.get(0).rowIndex,s=r._getRowIndex(l),d=n.options,c=d.mode,u=d.type,p=r.dataSource,h=d.batch,f=r.trigger(z,{commandName:fe,cancel:!1,row:l,cell:o,index:s}),g=!1;if(!f.cancel){if(h){if(0<(t=r.contentTable.find(">tbody > tr > .sui-editable-cell")).length){if(a=t.get(0).parentNode.rowIndex,"TR"!==l.get(0).nodeName.toUpperCase()||l.get(0).rowIndex==a&&u==V)return;f=r._updateItem(a,o);if(n._errorDuringEdit)return n._errorDuringEdit=!1,void(f=null);i=l.get(0).rowIndex,r._putRowInViewMode(a,null),!r._populateInsertedItem&&f&&0<f.length&&r._renderUpdateMarkers(f,a),r._populateInsertedItem=!1,i===a&&(o=r.contentTable.find(">tbody > tr").eq(a).get(0).cells[o.cellIndex]),a=i}B(u)||"cell"===u?(n._putCellInEditMode(o),g=!0):u===V?(n._putRowInEditMode(l,o.cellIndex),g=!0):_.error("Invalid editing.type declaration. The editing.type must be 'row' or 'cell'.",d.dieOnError)}else if(p.tracker&&p.tracker.changes&&p.tracker.changes.added&&0<p.tracker.changes.added.length)"TR"!==l.get(0).nodeName.toUpperCase()||l.get(0).rowIndex==a&&u==V||p.cancel();else if(B(c)||"inline"===c){if(0<(t=r.contentTable.find(">tbody > tr > .sui-editable-cell")).length){if(a=t.get(0).parentNode.rowIndex,"TR"!==l.get(0).nodeName.toUpperCase()||l.get(0).rowIndex==a&&u==V)return;if(r._updateItem(a,o),n._errorDuringEdit)return void(n._errorDuringEdit=!1);i=l.get(0).rowIndex,r._closeAllEditedRows(),i===a&&(o=r.contentTable.find(">tbody > tr").eq(a).get(0).cells[o.cellIndex]),a=i}B(u)||"cell"==u?(n._putCellInEditMode(o),g=!0):u==V?(n._putRowInEditMode(l,o.cellIndex),g=!0):_.error("Invalid editing.type declaration. The editing.type must be 'row' or 'cell'.",d.dieOnError)}g&&(e.preventDefault(),e.stopPropagation(),r.trigger(fe,{row:l,cell:o,index:s}))}},_documentClicked:function(e){var t=this,i=t.options,n=i.batch,i=(i.type,i.event),r=x(e.target);t._grid._editingInProcess||t._grid._preventClosingEditors?t._grid._editingInProcess=!1:(!r.hasClass("sui-cell")&&!r.parents().hasClass("sui-cell")&&!r.parents().hasClass("sui-calendar")&&!r.parents().hasClass("sui-listbox")||"doubleclick"===i&&e.type===H&&r.closest(".sui-editable-cell").length<=0)&&0<(i=t._grid.contentTable.find(">tbody > tr > .sui-editable-cell")).length&&(e=i.get(0).parentNode.rowIndex,r=t._grid._updateItem(e,null),t._errorDuringEdit?t._errorDuringEdit=!1:(t._grid._putRowInViewMode(e,null),n&&!t._grid._populateInsertedItem&&r&&0<r.length&&t._grid._renderUpdateMarkers(r,e),t._grid._populateInsertedItem=!1))},_getColumnIndex:function(e){return e.cellIndex-x(e.parentNode).find(".sui-indent-cell, .sui-expand-cell, .sui-expand-cell-disabled, .sui-collapse-cell").length},_putCellInEditMode:function(e){var t,i=this,n=i._getColumnIndex(e),r=i._grid,o=r.dataSource,l=r._getRowIndex(x(e).parent()),r=r.columns[n],a=!1;if(r&&r.field&&!1!==r.editable)if(t=o.editView(l).data,!(1<arguments.length&&arguments[1]!=n||!(a=!0)),r.editor)i._instantiateCustomEditor(r,e,t,l,a);else{var n=I(o.schema.options.fields)?o.schema.options.fields[r.field].type:String,s=y(t,r.field);switch(n){case Number:i._instantiateNumeric(e,s,a);break;case Date:i._instantiateDatePicker(e,s,a);break;case String:i._instantiateTextBox(e,s,a);break;case Boolean:i._instantiateCheckBox(e,s,a)}}},_prepareCell:function(e){x(e).empty().addClass("sui-editable-cell")},_instantiateCustomEditor:function(e,t,i,n,r,o){var l,a=this;o?l=o:(o=a._getColumnIndex(t),l=a._grid.columns[o].field,a._prepareCell(t)),o=e.editor.call(a._grid,t,i,n,r),x(t).html(o),a._editors[l]="custom"},_instantiateNumeric:function(e,t,i,n){var r,o=this,e=(n?r=n:(n=o._getColumnIndex(e),r=o._grid.columns[n].field,o._prepareCell(e)),(n=x('<input name="'+r+'"/>')).appendTo(e),o._grid.trigger(ue,{field:r,options:{}})),e=R({},e.options,{value:t});_.ui.NumericTextBox&&(t=new _.ui.NumericTextBox(n,e),i&&t.focus(),o._editors[r]=t)},_instantiateDatePicker:function(e,t,i,n){var r,o=this,e=(n?r=n:(n=o._getColumnIndex(e),r=o._grid.columns[n].field,o._prepareCell(e)),(n=x('<input name="'+r+'"/>')).appendTo(e),o._grid.trigger(ue,{field:r,options:{}})),e=R({},e.options,{value:t});_.ui.DatePicker&&(t=new _.ui.DatePicker(n,e),i&&t.focus(),o._editors[r]=t)},_instantiateTextBox:function(e,t,i,n){var r,o=this,e=(n?r=n:(n=o._getColumnIndex(e),r=o._grid.columns[n].field,o._prepareCell(e)),(n=x('<input type="text" name="'+r+'"/>')).appendTo(e),o._grid.trigger(ue,{field:r,options:{}})),e=R({},e.options,{value:t,cls:"sui-input-textbox"});_.ui.TextBox&&(t=new _.ui.TextBox(n,e),i&&t.focus(),o._editors[r]=t)},_instantiateCheckBox:function(e,t,i,n){var r,o=this,e=(n?r=n:(n=o._getColumnIndex(e),r=o._grid.columns[n].field,o._prepareCell(e)),(n=x('<input type="checkbox" name="'+r+'"/>')).appendTo(e),o._grid.trigger(ue,{field:r,options:{}})),e=R({},e.options,{value:t});_.ui.CheckBox&&(n=new _.ui.CheckBox(n,e),i&&n.focus(),n.checked(t),o._editors[r]=n)},_putRowInEditMode:function(e,t){for(var i=e.find(".sui-cell"),n=0;n<i.length;n++)this._putCellInEditMode(i[n],t-e.find(".sui-indent-cell, .sui-expand-cell, .sui-expand-cell-disabled, .sui-collapse-cell").length);0<e.find(".sui-edit").length&&this._grid._changeEditColumnButtons(e.get(0).rowIndex,x(e.children(".sui-button-cell")[0]))},_destroyRow:function(e){for(var t,i=this._grid,e=i.contentTable.find(">tbody > tr").eq(e),n=i.columns,r=0;r<n.length;r++)(t=this._editors[n[r].field])&&(S(t.destroy)&&this._editors[n[r].field].destroy(),delete this._editors[n[r].field]);e.remove()},destroy:function(){var e,t,i=this,n=i._eventNS;if(i._grid.dataSource.off(_e+n),i._grid.element.off(n,".sui-cell"),x(m).off(H+n),i._editors)for(e=0;e<i._editors.length;e++)t=i._editors[e].editor.element(),i._editors[e].editor.destroy(),t.remove();i._errorDuringEdit=i.options=null}}),Ie=a.extend({init:function(e){var t=this;k(e)?(t.field=e,t.title=t.field,t.groupTitle=t.title,t.groupHeaderTitle=t.title,t.resizable=!0,t.sortable=!0,t.filterable=!0,t.editable=!0,t.visible=!0,t.locked=!1):o(e)&&(t.field=e.field,t.title=e.title,t.groupTitle=I(e.groupTitle)?e.groupTitle:t.title,t.groupHeaderTitle=I(e.groupHeaderTitle)?e.groupHeaderTitle:t.title,t.format=e.format,t.width=e.width,t.minWidth=e.minWidth,t.maxWidth=e.maxWidth,t.resizable=!I(e.resizable)||!!e.resizable,t.attributes=e.attributes,t.headerAttributes=e.headerAttributes,t.headerTemplate=e.headerTemplate,t.columnTemplate=e.columnTemplate,t.footerTemplate=e.footerTemplate,t.groupFooterTemplate=e.groupFooterTemplate,t.buttons=e.buttons,t.editor=e.editor,t.customFilter=e.customFilter,t.sortable=!I(e.sortable)||!!e.sortable,t.filterable=!I(e.filterable)||!!e.filterable,t.editable=!I(e.editable)||!!e.editable,t.visible=!I(e.visible)||!!e.visible,t.locked=!!t.visible&&!!e.locked)},destroy:function(){var e=this;e.field=e.buttons=e.title=e.editor=e.editable=e.format=e.width=e.minWidth=e.maxWidth=e.resizable=e.attributes=e.headerAttributes=e.headerTemplate=e.buttons=e.customFilter=e.footerTemplate=e.groupFooterTemplate=e.sortable=e.filterable=e.visible=e.locked=e.columnTemplate=null}}),Be=a.extend({options:{ns:".shieldGridColumnResizing",width:12,offset:6,min:12},init:function(e){var t=this;t.grid=e,t.options=R(!0,{},Be.fn.options),t._eventNS=t.options.ns+r(),e.headerTable.on(u+t._eventNS,".sui-headercell",N(t._showHandle,t))},_showHandle:function(e){var t,i,n,r,o;this.resizing||(i=(t=this).options,t.grid,n=t.handle,o=(r=e.pageX)>=(e=t.params=t._params(x(e.currentTarget))).offset.left&&r<=e.offset.left+i.offset&&0<e.headerIndex,(e=(o=e.isRtl?r>=e.offset.left+e.width-i.offset&&r<=e.offset.left+e.width&&0<e.headerIndex:o)?t.params=t._params(e.header.prev()):e).column&&e.column.resizable&&!e.column.locked&&(r>=e.threshold&&r<=e.edge+i.offset?(n=n||(t.handle=x('<div class="sui-resizable-handle"/>').on(l+t._eventNS,N(t._down,t)).appendTo(e.header.parents(".sui-headercontent")))).css({top:e.position.top,left:n.parent()[0].scrollLeft+e.handleLeft,width:i.width,height:e.height}).show():n&&n.hide()))},_params:function(e){var t=this.options,i=e.offset(),n=e.position(),r=g.isRtl(this.grid.element),o=e.outerWidth(),l=i.left+(r?t.width:o),a=e.index(),s=this.grid._getColumnByField(e.attr("data-field")),d=s?0<=s.minWidth?+s.minWidth:t.min:null;return{header:e,headerIndex:a,column:s,min:d,max:s&&s.maxWidth>=d?+s.maxWidth:null,offset:i,isRtl:r,width:o,current:o,height:e.outerHeight(),edge:l,threshold:l-t.width+(r?-1:1)*t.offset,position:n,handleLeft:n.left+(r?t.width:o)-t.width+(r?-1:1)*t.offset}},_down:function(e){var t,i=this,n=i.grid,r=i.params;if(!(1<e.button)&&r)return t="> colgroup col:nth-child("+(r.headerIndex+1)+")",r.origin=e.pageX,r.cols=x().add(n.headerTable.find(t)).add(n.contentTable.find(t)),i.resizing=!0,i._cancelled=null,i.handle.hide(),x(m).on(u+i._eventNS,N(i._move,i)).on(oe+i._eventNS,N(i._up,i)),_.selection(!1),!1},_move:function(e){var t,i=this,n=i.params;i.resizing&&(e=(n.isRtl?-1:1)*(e.pageX-n.origin),e=b(n.width+e,n.min),n.max&&(e=v(e,n.max)),(t=i.grid.trigger(z,{commandName:se,cancel:!1,field:n.column.field,width:e}))&&t.cancel?i._cancelled=!0:e!==n.current&&(n.cols.width(n.current=e),i.grid._fixHeaderPadding(),i.grid._adjustHeightsLocked(!0)))},_up:function(){var e=this,t=e.grid,i=e.params,n=i.current,i=i.column||{},r=(t.options.columns||[])[x(t.columns).index(i)]||{};e.resizing=!1,e.params=null,i.width=r.width=n+"px",x(m).off(e._eventNS),_.selection(!0),!0!==e._cancelled&&t.trigger(se,{field:i.field,width:n}),e._cancelled=null},destroy:function(){var e=this;e.grid.headerTable.off(e._eventNS),e._cancelled=null,e.handle&&(e.handle.off(e._eventNS).remove(),e.handle=null)}}),Ne=a.extend({init:function(e){this.grid=e,this._filters={},this._eventNS=".shieldGridFiltering"+r(),this._createFilterRow()},_createFilterRow:function(){var e,t,i,n,r,o=this,l=o.grid,a=l.headerTable.find(">thead"),s=a.find(".sui-indent-cell").length,d=l.dataSource.schema,c=l.columns;for(o._tr=e=x('<tr class="sui-filter-row"/>'),r=0;r<s;r++)x('<th class="sui-indent-cell"/>').appendTo(e);for(d&&d.options.fields&&(n=d.options.fields),r=0;r<c.length;r++)t=n&&n[c[r].field]?n[c[r].field].type:null,p=c[r].field?c[r].field.replace(/[\"\']/g,"@"):"",i=x('<th class="sui-filter-cell" data-field="'+p+'" role="gridcell" tabindex="-1"/>').appendTo(e),!1!==c[r].filterable&&0<p.length&&(o._initializeEditor(i,t,c[r].field,c[r]),o._appendFilterButton(i));for(e.appendTo(a),x(m).on(H+o._eventNS,N(o._documentClicked,o)),r=0;r<c.length;r++){var u,p=c[r].field?c[r].field.replace(/[\"\']/g,"@"):"";!1!==c[r].filterable&&0<p.length&&((u=o._getFilter(c[r].field))&&(o._setEditorValue(c[r].field,c[r],u.value),o._addRemoveFilterButton(c[r].field)))}},_documentClicked:function(e){var t,i;!this.listBox||x(e.target).hasClass("sui-filter-button")||x(e.target).hasClass("sui-filter-button-content")||(i=this.listBox.element.parent()).css(D)!=A&&(this._filterByField=null,t=i.height(),e=i.offset().top,this._slideUp?i.animate({height:0,top:e+t},150,function(){i.css({display:A,height:t})}):i.animate({height:0},150,function(){i.css({display:A,height:t})}))},_appendFilterButton:function(e){_.ui.Button&&(e=x('<button type="button"><span class="sui-sprite sui-filter-button-content"/></button>').appendTo(e),new _.ui.Button(e,{cls:"sui-filter-button",events:{click:N(this._filterButtonClicked,this)}}))},_filterButtonClicked:function(e){var t=this,i=t.grid,n=i.dataSource.schema,i=i.options.filtering,r=i.stringFunc||[{func:"eq",name:"Equal to"},{func:"neq",name:"Not equal to"},{func:"con",name:"Contains"},{func:"notcon",name:"Not contains"},{func:"starts",name:"Starts with"},{func:"ends",name:"Ends with"},{func:"gt",name:"Greater than"},{func:"lt",name:"Less than"},{func:"gte",name:"Greater than or equal"},{func:"lte",name:"Less than or equal"},{func:"isnull",name:"Is null"},{func:"notnull",name:"Is not null"}],i=i.nonStingFunc||[{func:"eq",name:"Equal to"},{func:"neq",name:"Not equal to"},{func:"gt",name:"Greater than"},{func:"lt",name:"Less than"},{func:"gte",name:"Greater than or equal"},{func:"lte",name:"Less than or equal"},{func:"isnull",name:"Is null"},{func:"notnull",name:"Is not null"}],o=e.target.element.parent().attr("data-field").replace(/[@]/g,"'");t._filterByField=o,n=!n||!n.options.fields||(n=n.options.fields)&&n[o]&&n[o].type===String?r:i,_.ui.ListBox&&(t.listBox||(t._menuWrapper=x('<div style="display:none;"/>').appendTo(m.body),t.listBox=new _.ui.ListBox(t._menuWrapper,R({},{},{dataSource:{data:n},textTemplate:"{name}",valueTemplate:"{func}",multiple:!1,width:150,maxHeight:300,events:{select:N(t._selectFilterFunction,t)}})),t.grid.element.parent().hasClass("sui-rtl")?t.listBox.element.parent().addClass("sui-rtl"):t.listBox.element.parent().css(D,A)),r=t.listBox.element.parent().height(),t._positionListBox(e),t._slideUp?(i=e.target.element.offset().top-r,t.listBox.element.parent().css({top:e.target.element.offset().top}),t.listBox.element.parent().animate({height:r,top:i-t.listBox.element.parent().innerHeight()},150)):t.listBox.element.parent().animate({height:r},150)),t._selectFilterMenuValue(o)},_getFilter:function(e){var t,i,n,r=this.grid.dataSource.filter;if(r&&r.and&&0<r.and.length)for(t=r.and,n=0;n<t.length;n++)t[n].path===e&&(i=t[n]);return i},_selectFilterMenuValue:function(e){e=this._getFilter(e),e=e?e.filter:C;e?this.listBox.values(e):this.listBox.clearSelection()},_selectFilterFunction:function(e){var t=this,i=!0,n=t._filters[t._filterByField]==c?c:t._filters[t._filterByField].value(),e=e.item.func,r={path:t._filterByField,filter:e,value:n};if(n==c&&(n=t.grid.trigger("getCustomFilterValue",{field:t._filterByField,value:null}).value,r={path:t._filterByField,filter:e,value:n}),""!==n&&null!==n||"notnull"==e||"isnull"==e){if(t.grid.dataSource.filter&&t.grid.dataSource.filter.and){for(var o=t.grid.dataSource.filter.and,l=0;l<o.length;l++)o[l].path===t._filterByField&&(o[l]=r,i=!1);i&&o.push(r)}else t.grid.dataSource.filter={and:[r]};t.grid.dataSource.read(),t._addRemoveFilterButton(t._filterByField)}},_addRemoveFilterButton:function(e){var t,i;if(_.ui.Button){for(var n,r=x(this._tr).children("th"),o=0;o<r.length;o++)if((t=x(r[o])).attr("data-field")&&t.attr("data-field").replace(/[@]/g,"'")==e){i=r[o];break}t&&0===t.find(".sui-clear-filter-button").length&&(n=x('<button type="button"><span class="sui-sprite sui-clear-filter-button-content"></span></button>').appendTo(i),new _.ui.Button(n,{cls:"sui-clear-filter-button",events:{click:N(this._clearFilterButtonClicked,this)}}))}},_clearFilterButtonClicked:function(e){for(var t,i=this,n=e.target.element.parent().attr("data-field").replace(/[@]/g,"'"),r=i.grid.dataSource.filter.and,o=0;o<r.length;o++)r[o].path==n&&r.splice(o,1);t=e.target.element,e.target.destroy(),t.remove(),i._filters[n]!=c?i._filters[n].value(null):i.grid.trigger("clearFilter",{field:n,value:null}),i.grid.dataSource.read()},_positionListBox:function(e){var t=this,e=e.target.element,i=e.offset(),n=i.top,r=i.left,o=t.listBox.element.parent().innerWidth(),l=t.listBox.element.parent().innerHeight(),a=(e.innerWidth(),e.innerHeight());(r=r<0?1:r)+o>s.innerWidth&&(r=s.innerWidth-o-20),t._slideUp=!1,n+l>s.innerHeight&&(n-=l,t._slideUp=!(a=0)),n<0&&(n=i.top,a=e.innerHeight(),t._slideUp=!1),t.listBox.element.parent().css({position:"absolute",zIndex:10002,top:n+a,left:r,height:0,display:""})},_setEditorValue:function(e,t,i){t.customFilter||(t=this._filters[e])&&t.value(i)},_initializeEditor:function(e,t,i,n){var r=this;if(n.customFilter)r._filters[i]=c,n.customFilter.call(r.grid,e);else switch(t){case Number:r._instantiateNumeric(e,i);break;case Date:r._instantiateDatePicker(e,i);break;default:String;r._instantiateTextBox(e,i)}},_instantiateNumeric:function(e,t){var e=x("<input/>").appendTo(e),i=this.grid.trigger(pe,{field:t,options:{}}),i=R({},i.options);_.ui.NumericTextBox&&(e=new _.ui.NumericTextBox(e,i),this._filters[t]=e)},_instantiateDatePicker:function(e,t){var e=x("<input/>").appendTo(e),i=this.grid.trigger(pe,{field:t,options:{}}),i=R({},i.options);_.ui.DatePicker&&(e=new _.ui.DatePicker(e,i),this._filters[t]=e)},_instantiateTextBox:function(e,t){var e=x('<input type="text"/>').appendTo(e),i=this.grid.trigger(pe,{field:t,options:{}}),i=R({},i.options);_.ui.TextBox&&(e=new _.ui.TextBox(e,i),this._filters[t]=e)},destroy:function(){var e,t=this;for(e in t._filters)t._filters.hasOwnProperty(e)&&(t._filters[e]!=c&&t._filters[e].destroy(),t._filters[e]=null);t.listBox&&(t.listBox.destroy(),t.listBox=null),x(t._menuWrapper).remove(),x(t._tr).remove(),x(m).off(H+t._eventNS),t._filterByField=t._filters=t._slideUp=t._menuWrapper=t._tr=null}}),Re=a.extend({init:function(e,t){var i=this;i.grid=t,i.sortExpressions=[],i._eventNS=".shieldGridSorting"+r(),p(e)?(i.allowUnsort=!0,i.multiple=!1,i.firstAscending=!0,i.ascText="▲",i.descText="▼"):o(e)&&(i.allowUnsort=!!B(e.allowUnsort)||e.allowUnsort,i.multiple=e.multiple,i.firstAscending=!!B(e.firstAscending)||e.firstAscending,i.ascText=B(e.ascText)?"▲":e.ascText,i.descText=B(e.descText)?"▼":e.descText),i._initialize()},destroy:function(){var e=this,t=e.grid.headerTable;e.allowUnsort=e.multiple=e.sortExpressions=null,e.length=0,t.find(".sui-headercell .sui-link").each(function(){x(this).parent().html(x(this).html())}),t.off(e._eventNS),t.find('.sui-headercell span[class^="sui-"]').remove()},_initialize:function(){var e,t,i,n,r,o,l,a,s=this,d=s.grid,c=d.dataSource.sort,u=d.columns,p={};if(d.headerTable.find(".sui-headercell").each(function(){var e=x(this),t=e.attr("data-field"),i=d._getColumnByField(t);p[t]=e,i&&!1!==i.sortable&&(t=e.html(),e.empty(),e.removeAttr(J),x('<a href="#" class="sui-link sui-unselectable" unselectable="on" tabindex="-1"/>').appendTo(e).html(t))}),d.headerTable.on(H+s._eventNS,".sui-link",N(s._clickHandler,s)),c)for(e=0;e<c.length;e++)for(i=c[e],t=0;t<u.length;t++)!1!==u[t].sortable&&i.path==u[t].field&&(r=(n=x(p[u[t].field])).find(".sui-link"),o="ascending",l="sui-asc",a=s.ascText,i.desc&&(o="descending",a=s.descText,l="sui-desc"),x(n).attr(J,o),r.addClass(l),x('<span class="sui-'+o+'">'+a+"</span>").appendTo(r))},_clickHandler:function(e){var t=this,e=x(e.target).closest(".sui-link"),i=t.grid._getColumnByField(e.parent().attr("data-field"));return e.hasClass("sui-desc")?t.allowUnsort&&t.firstAscending?t._sortInternal(i,!0,!0):t._sortInternal(i,!1,!1):e.hasClass("sui-asc")?t.allowUnsort&&!t.firstAscending?t._sortInternal(i,!1,!0):t._sortInternal(i,!0,!1):t.firstAscending?t._sortInternal(i,!1,!1):t._sortInternal(i,!0,!1),!1},_sortInternal:function(t,i,n){var e,r=this.grid,o=r.dataSource,l=o.sort;r.trigger(z,{commandName:"sort",cancel:!1,column:t,desc:i,unsort:n}).cancel||(l?(!this.multiple&&l?l.length=0:0<(e=U(l,function(e){return e.path===t.field&&e.desc===(n?i:!i)})).length&&(e=X(e[0],l),l.splice(e,1)),n||l.push({path:t.field,desc:i})):n||(l=o.sort=[{path:t.field,desc:i}]),r._refreshOnSort(),r.trigger("sort",{column:t,desc:i,unsort:n}))},_sort:function(t,i,e){var n,r,o,l,a=this.grid,s=a.dataSource,d=s.sort;!(n=d?U(d,function(e){return e.path===t&&e.desc===i}):n)||n.length<=0?(!this.multiple&&d&&(d.length=0),d?(o=!1,(l=U(d,function(e){return e.path===t&&e.desc!=i}))&&0<l.length&&(r=X(l[0],d),d.splice(r,1),o=!0),e||(d.push({path:t,desc:i}),o=!0),o&&a._refreshOnSort()):e||(s.sort=[{path:t,desc:i}],a._refreshOnSort())):e&&(r=X(n[0],d),d.splice(r,1),a._refreshOnSort())}}),Ee=a.extend({init:function(e,t){var i=this,n=i._eventNS=".shieldGridSelection"+r();p(e)?(i.type=V,i.multiple=!1,i.toggle=!1,i.spreadsheet=!0,i.drawArea=!1,i.disableTextSelection=!1,i._selectOnMouseDown=!1):o(e)&&(i.type=e.type||V,i.multiple=!!e.multiple,i.toggle=!!I(e.toggle)&&e.toggle,i.spreadsheet=!I(e.spreadsheet)||e.spreadsheet,i.drawArea=I(e.drawArea)?e.drawArea:e.multiple,i.disableTextSelection=!!I(e.disableTextSelection)&&e.disableTextSelection,i._selectOnMouseDown=!i.drawArea&&e.selectEvent==l),i.grid=t,i.lastSelected=null,x(t.headerTable).add(t.frozenHeaderTable).addClass("sui-non-selectable"),x(t.contentTable).add(t.frozenContentTable).addClass("sui-selectable"),x(t.contentTable).add(t.frozenContentTable).on(l+n,N(i._mouseDownHandler,i)).on(u+n,N(i._mouseMoveHandler,i)),x(m).on(oe+n,N(i._mouseUpHandler,i)),Y&&x(t.contentTable).add(t.frozenContentTable).on("selectstart"+n,function(){return!1}),i.multiple&&i.drawArea&&(i.area=x(m.createElement("span")).addClass("sui-area sui-area-color"))},destroy:function(){var e=this,t=e._eventNS,i=e.grid;x(i.contentTable).add(i.frozenContentTable).off(t),x(m).off(t),e.area&&e.area.remove(),e.type=e.multiple=e.lastSelected=e.toggle=e.spreadsheet=e.area=e.x=e.y=e.elements=null},select:function(e){var t,i,n,r;if(!e)return this.grid.contentTable.find("."+P);if(0<(i=(t=x(e)).length))for(r=0;r<i;r++)n=x(t.get(r)),this._selectElement(n),r==i-1&&(this.lastSelected=n)},clear:function(){this.type==V?this._clearSelectedRows():this._clearSelectedCells()},_getParentTable:function(e){if(e)return"TABLE"==e[0].nodeName.toUpperCase()?e[0]:e.parent()?this._getParentTable(e.parent()):void 0},_mouseDownHandler:function(e){var t=this,i=t.grid,n=e.pageX,r=e.pageY,o=x(e.target),l=t._getParentTable(o);t.x=n,t.y=r,"TD"==o[0].nodeName.toUpperCase()&&l!=x(i.contentTable)[0]&&l!=x(i.frozenContentTable)[0]||!(o.hasClass("sui-cell")||o.hasClass("sui-row")||o.hasClass("sui-alt-row")||we(e,i.contentTable)||we(e,i.frozenContentTable))||o.hasClass("sui-detail-cell")||o.hasClass("sui-detail-row")||o.hasClass("sui-collapse-cell")||o.hasClass("sui-expand-cell")||o.hasClass("sui-expand-cell-disabled")||o.hasClass("sui-indent-cell")||(t.multiple&&t.drawArea&&t.area.appendTo(m.body).css({left:n+1,top:r+1,width:0,height:0}),x(m).on(u+t._eventNS,N(t._mouseMoveHandler,t)),(t.drawArea||t.disableTextSelection)&&_.selection(!1),t.elements=xe(e,i.contentTable,i.frozenContentTable),t.elements&&t._selectOnMouseDown&&!Te(t.elements)&&t._performAndProcessSelection(e))},_mouseMoveHandler:function(e){var t=this,i=e.pageX,e=e.pageY,n=t.x,r=t.y,n={left:i<n?i:n,top:e<r?e:r,width:d(i-t.x),height:d(e-t.y)};t.multiple&&t.drawArea&&t.area.css(n)},_mouseUpHandler:function(e){var t=this,i=t.area;x(m).off(u+t._eventNS),(t.drawArea||t.disableTextSelection)&&_.selection(!0),!t.elements||t._selectOnMouseDown&&!Te(t.elements)||t._performAndProcessSelection(e),i&&i.remove()},_performAndProcessSelection:function(e){var t,i,n=this,r=n.grid,o=n.area,l=n.elements,a=e.ctrlKey,s=[],d=[],c=[],u=r.trigger(z,{commandName:"selectionChanging",cancel:!1});if(u.cancel)n.elements=null;else{for(n.elementsToBeSelected=[],n.type==V?n._performRowSelection(o,a,l,e):n._performCellSelection(o,a,l,e),i=0;i<n.elementsToBeSelected.length;i++)!((t=n.elementsToBeSelected[i]).hasClass("sui-cell")||t.hasClass("sui-row")||t.hasClass("sui-alt-row"))||t.hasClass("sui-detail-cell")||t.hasClass("sui-detail-row")||t.hasClass("sui-collapse-cell")||t.hasClass("sui-expand-cell")||t.hasClass("sui-expand-cell-disabled")||t.hasClass("sui-indent-cell")||(s.push(t),t=r._getRowIndex(n.type==V?t:x(t).parent()),d.push(t),c.push(0<=t?r.dataSource.getDataIndex(t):t));if(!r.trigger(z,{commandName:ie,cancel:!1,toBeSelected:s,viewIndices:d,indices:c}).cancel){for(i=0;i<s.length;i++)n._selectElement(s[i]);r.trigger(ie,{selected:s,viewIndices:d,indices:c}),n.elements=null}}},_performRowSelection:function(e,t,i,n){var r,o=this;x(n.target).hasClass("sui-expand-cell")||x(n.target).hasClass("sui-expand-cell-disabled")||x(n.target).hasClass("sui-collapse-cell")||x(n.target)&&x(n.target).parent()&&(x(n.target).parent().hasClass("sui-expand-cell")||x(n.target).parent().hasClass("sui-expand-cell-disabled")||x(n.target).parent().hasClass("sui-collapse-cell"))||(!o.drawArea||n.type===re||e&&0===e.height()&&0===e.width()?o.multiple?o._processMultiRowSelection(n,i):o._processSingleRowSelection(n,i):o.multiple?(e=o.grid.contentTable.find(">tbody > tr"),r=null,O(e,function(e,t){x(t).offset().top<n.pageY&&(r=t.rowIndex)}),t||o._clearSelectedRows(),o._selectRowRange(i.row.rowIndex,r,t)):o._processSingleRowSelection(n,i))},_performCellSelection:function(e,t,i,p){var h=this;if(!(x(p.target).hasClass("sui-expand-cell")||x(p.target).hasClass("sui-expand-cell-disabled")||x(p.target).hasClass("sui-collapse-cell")||x(p.target)&&x(p.target).parent()&&(x(p.target).parent().hasClass("sui-expand-cell")||x(p.target).parent().hasClass("sui-expand-cell-disabled")||x(p.target).parent().hasClass("sui-collapse-cell"))))if(!h.drawArea||p.type===re||e&&0===e.height()&&0===e.width())h.multiple?h._processMultiCellSelection(p,i):h._processSingleCellSelection(p,i);else if(h.multiple){var n,e=h.grid.contentTable.find(">tbody > tr > td"),f=[];for(O(e,function(e,t){var i=x(t),n=i.get(0).clientWidth,r=i.get(0).clientHeight,o=i.offset().top,i=i.offset().left,r=o+r,n=i+n,l=v(p.pageX,h.x),a=b(p.pageX,h.x),s=v(p.pageY,h.y),d=b(p.pageY,h.y),c=!1,u=!1;o<s?s<r&&(c=!0):o<d&&(c=!0),i<l?l<n&&(u=!0):i<a&&(u=!0),c&&u&&f.push(t)}),t||h._clearSelectedCells(),n=0;n<f.length;n++)x(f[n]).hasClass(P)?h._deselectElement(x(f[n])):h.elementsToBeSelected.push(x(f[n]))}else h._processSingleCellSelection(p,i)},_selectRowRange:function(e,t,i){for(var n,r=v(e,t),o=b(e,t),l=this.grid.contentTable.find(">tbody > tr"),a=r;a<=o;a++)n=x(l[a]),i&&n.hasClass(P)?this._deselectElement(n):this.elementsToBeSelected.push(n)},_clearSelectedRows:function(){var e=this,t=e.grid;x(t.frozenContentTable).find("> tbody > tr."+P).each(function(){e._deselectElement(x(this))}),x(t.contentTable).find("> tbody > tr."+P).each(function(){e._deselectElement(x(this))})},_clearSelectedCells:function(){var e=this,t=e.grid;x(t.frozenContentTable).find(">tbody > tr > td."+P).each(function(){e._deselectElement(x(this))}),x(t.contentTable).find(">tbody > tr > td."+P).each(function(){e._deselectElement(x(this))})},_processSingleRowSelection:function(e,t){var i=this,n=i.toggle,r=i.multiple,t=x(t.row),o=t.hasClass(P);r||i._clearSelectedRows(),n?o?i._deselectElement(t):i.elementsToBeSelected.push(t):(i._clearSelectedRows(),i.elementsToBeSelected.push(t)),i.lastSelected=t},_processMultiRowSelection:function(e,t){var i=this,n=i.grid,r=e.ctrlKey,o=e.shiftKey,l=x(t.row);if(r)l.hasClass(P)?i._deselectElement(l):i.elementsToBeSelected.push(l),i.lastSelected=l;else if(o){n.contentTable.find(">tbody > tr."+P);if(i.lastSelected){var a=i.lastSelected.get(0).rowIndex,s=n.contentTable.find(">tbody > tr"),r=l.get(0).rowIndex,o=v(r,a),d=b(r,a);i._clearSelectedRows();for(var c,u=o;u<=d;u++)u!==a&&(c=x(s[u]),i.elementsToBeSelected.push(c));i.elementsToBeSelected.push(x(s[a]))}else i.elementsToBeSelected.push(l),i.lastSelected=l}else i._processSingleRowSelection(e,t)},_processSingleCellSelection:function(e,t){var i=this,n=i.toggle,r=i.multiple,t=x(t.cell),o=t.hasClass(P);i.lastSelected;r||i._clearSelectedCells(),n?o?i._deselectElement(t):i.elementsToBeSelected.push(t):(i._clearSelectedCells(),i.elementsToBeSelected.push(t)),i.lastSelected=t},_processMultiCellSelection:function(e,t){var i=this,n=i.grid,r=e.ctrlKey,o=e.shiftKey,l=x(t.cell);if(r)l.hasClass(P)?i._deselectElement(l):i.elementsToBeSelected.push(l),i.lastSelected=l;else if(o)if(i.lastSelected){var a,r=i.lastSelected,s=n.contentTable.get(0),o=s.rows[0].cells.length,d=r.parent().get(0).rowIndex,c=d*o+r.get(0).cellIndex,u=n.contentTable.find(">tbody > tr > td"),n=l.parent().get(0).rowIndex,o=n*o+l.get(0).cellIndex,p=v(o,c),h=b(o,c);if(i._clearSelectedCells(),i.spreadsheet)for(var o=r[0].cellIndex,r=l[0].cellIndex,p=v(o,r),h=b(o,r),o=v(d,n),f=b(d,n),g=o;g<=f;g++)for(var _=s.rows[g],m=p;m<=h;m++)i.elementsToBeSelected.push(x(_.cells[m]));else for(g=p;g<=h;g++)g!==c&&(a=x(u[g]),i.elementsToBeSelected.push(a));i.elementsToBeSelected.push(x(u[c]))}else i.elementsToBeSelected.push(l),i.lastSelected=l;else i._processSingleCellSelection(e,t)},_selectElement:function(e){x(e).add(this.type==V?this.grid._getOtherRow(e):null).addClass(P)},_deselectElement:function(e){x(e).add(this.type==V?this.grid._getOtherRow(e):null).removeClass(P)}}),We=a.extend({options:{ns:".shieldGridGroupReorder",returnDuration:50,returnEasing:"ease-out",dragTreshold:20,draggedTemplate:"<div style='border-color:transparent;' class='sui-grid sui-grid-core'><div class='sui-group-panel-indicator'><span class='sui-group-title'>{0}</span><span class='sui-group-close-button'></span></div></div>"},init:function(e){var t=this;t.grid=e,t.options=R(!0,{},We.fn.options),t._eventNS=t.options.ns+r(),t._events(!0)},_events:function(e){var t=this,i=t.grid.element;e?(t._downProxy=N(t._down,t),i.on(l+t._eventNS,".sui-group-panel-indicator",t._downProxy)):(i.off(l+t._eventNS,".sui-group-panel-indicator",t._downProxy),t._downProxy=null)},_down:function(e){var t=this,i=x(e.target).closest(".sui-group-panel-indicator"),n=i.offset(),r=t.grid.element,o=r.offset(),l=e.pageX,a=e.pageY;if(t.dataField=i.attr("data-field"),!(1<e.button))return t._moveProxy=N(t._move,t),t._upProxy=N(t._up,t),x(m).on(u+t._eventNS,t._moveProxy).on(oe+t._eventNS,t._upProxy),t.start={left:l-n.left,top:a-n.top,x:l,y:a,target:i,index:i.parent().find(".sui-group-panel-indicator").index(i),positions:t._positions(i),gridPosition:{left:o.left,top:o.top,width:r.outerWidth(),height:r.outerHeight()},isRtl:g.isRtl(r)},_.selection(!1),!1},_move:function(e){var t=this,i=t.options,n=t.dragged,r=t.start,o=e.pageX,e=e.pageY,l=i.dragTreshold;n?(n.css({left:o-r.left,top:e-r.top}),t.hovered=t._index(o,e),t._indicator()):(d(r.x-o)>l||d(r.y-e)>l)&&(t.dragged=x(T(i.draggedTemplate,r.target.html())).css({position:"absolute",left:o-r.left,top:e-r.top,zIndex:999}).find("table").css("width","auto").end().find("th").attr("style",r.target[0].style.cssText).css({width:r.target.width(),height:r.target.height()}).end().appendTo(m.body))},_positions:function(e){for(var t,i,n=e.parent().children(".sui-group-panel-indicator"),r=0,o=[];r<n.length;r++)i=(t=n.eq(r)).offset(),o.push({left:i.left,top:i.top,width:t.outerWidth(),height:t.outerHeight()});return o},_index:function(e,t){for(var i,n,r=this.start,o=r.gridPosition,l=0;l<r.positions.length;l++)if(i=(i=r.positions[l]).left<=e&&e<=i.left+i.width&&i.top<=t&&t<=i.top+i.height,n=o.left<=e&&e<=o.left+o.width&&o.top<=t&&t<=o.top+o.height,i&&n)return l;return-1},_indicator:function(){var e=this.start,t=this.hovered,i=e.positions[t],n=this.reorderIndicator,r=e.gridPosition.left,o=e.gridPosition.left+e.gridPosition.width,l=e.target.parent().children(".sui-group-panel-indicator"),a=e.isRtl?e.index<t:e.index>t;l.removeClass("sui-reorder-target"),n&&n.hide(),null!=t&&-1<t&&(l.eq(t).addClass("sui-reorder-target"),n=n||(this.reorderIndicator=x("<div class='sui-grid-reorder-indicator'><span class='sui-grid-indicator-top' /><span class='sui-grid-indicator-bottom' /></div>").appendTo(m.body)),t!==e.index&&(l=i.left+(a?0:i.width),n.css({left:v(b(r,l),o),top:i.top,height:i.height}).show()))},_up:function(e){var t,i=this,n=i.options,r=i.grid,o=i.dragged,l=i.start,a=i.hovered,s=i.dataField;if(i._detachDocumentEvents(),o)if(null!=a&&-1<a){if(o.remove(),!(t=r.trigger(z,{commandName:de,cancel:!1,index:l.index,newIndex:a})).cancel)for(var d=r.dataSource.group,c=0;c<d.length;c++)if(d[c].field==s){var u=d[c];d[c]=d[a],d[a]=u;break}}else setTimeout(function(){o.remove()},g.transitions?n.returnDuration:0),!i.grid.dataSource.group||(t=r.trigger(z,{commandName:ce,cancel:!1,field:s})).cancel||(i.grid.ungroup(s),r.trigger(ce,t));i.dragged=i.dataField=i.hovered=a=null,i._indicator(),i.reorderIndicator&&(i.reorderIndicator.remove(),i.reorderIndicator=null),i.start=null,x(m).off(i._eventNS),_.selection(!0),t&&!t.cancel&&(delete t.cancel,delete t.commandName,r.dataSource.read(),r.trigger(de,t))},_detachDocumentEvents:function(){this._moveProxy=this._upProxy=null,x(m).off(this._eventNS)},destroy:function(){this.dataField=null,this._detachDocumentEvents(),this._events(!1)}}),Pe=a.extend({options:{ns:".shieldGridColumnGroupReorder",returnDuration:150,returnEasing:"ease-out",dragTreshold:20,draggedTemplate:"<div class='sui-grid sui-grid-core'><div class='sui-gridheader'><table class='sui-table'><thead><tr class='sui-columnheader'><th class='sui-headercell'>{0}</th></tr></thead></table></div></div>"},init:function(e){var t=this;t.grid=e,t.options=R(!0,{},ze.fn.options),t._eventNS=t.options.ns+r(),t._events(!0),e.headerTable.addClass("sui-reorderable")},_events:function(e){var t=this,i=t.grid.element;e?(t._downProxy=N(t._down,t),i.on(l+t._eventNS,".sui-headercell",t._downProxy)):(i.off(l+t._eventNS,".sui-headercell",t._downProxy),t._downProxy=null)},_down:function(e){var t=this,i=x(e.target).closest(".sui-headercell"),n=i.offset(),r=t.grid.element,o=r.offset(),l=e.pageX,a=e.pageY;if(!(1<e.button)){var s=i.attr("data-field"),d=t.grid.dataSource.group;if(d)for(var c=0;c<d.length;c++)if(s===d[c].field)return;return x(m).on(u+t._eventNS,N(t._move,t)).on(oe+t._eventNS,N(t._up,t)),t.start={left:l-n.left,top:a-n.top,x:l,y:a,target:i,index:1e3,positions:t._positions(i),gridPosition:{left:o.left,top:o.top,width:r.outerWidth(),height:r.outerHeight()},isRtl:g.isRtl(r)},_.selection(!1),!1}},_move:function(e){var t=this,i=t.options,n=t.dragged,r=t.start,o=e.pageX,e=e.pageY,l=i.dragTreshold;n?(n.css({left:o-r.left,top:e-r.top}),t.hovered=t._index(o,e),t._indicator()):(d(r.x-o)>l||d(r.y-e)>l)&&(t.dragged=x(T(i.draggedTemplate,r.target.html())).css({position:"absolute",left:o-r.left,top:e-r.top,zIndex:999}).find("table").css("width","auto").end().find("th").attr("style",r.target[0].style.cssText).css({width:r.target.width(),height:r.target.height()}).end().appendTo(m.body))},_positions:function(e){for(var t,i,n=this.grid.element.find(".sui-group-panel-indicator"),r=0,o=[];r<n.length;r++)i=(t=n.eq(r)).offset(),o.push({left:i.left,top:i.top,width:t.outerWidth(),height:t.outerHeight()}),r==n.length-1&&o.push({left:i.left,top:i.top,width:t.outerWidth(),height:t.outerHeight()});return o},_index:function(e,t){var i,n,r,o,l=this.start,a=l.gridPosition,s=this.grid.element.find(".sui-group-panel");if(0<l.positions.length){for(i=0;i<l.positions.length;i++)if(n=(n=l.positions[i]).left<=e&&e<=n.left+n.width&&n.top<=t&&t<=n.top+n.height,o=a.left<=e&&e<=a.left+a.width&&a.top<=t&&t<=a.top+a.height,r=s.offset().left<=e&&e<=s.offset().left+s.width()&&s.offset().top<=t&&t<=s.offset().top+s.height(),n&&o)return i}else r=s.offset().left<=e&&e<=s.offset().left+s.width()&&s.offset().top<=t&&t<=s.offset().top+s.height();return r?(this.isOnGroupPanel=!0,this.grid.element.find(".sui-group-panel-indicator").length):-1},_indicator:function(){var e,t=this,i=t.start,n=t.hovered,r=i.positions[n],o=t.reorderIndicator,l=i.gridPosition.left,a=i.gridPosition.left+i.gridPosition.width,s=i.target.parent().children(".sui-group-panel-indicator"),d=i.isRtl?i.index<n:i.index>n;s.removeClass("sui-reorder-target"),o&&o.hide(),null!=n&&-1<n&&(s.eq(n).addClass("sui-reorder-target"),o=o||(t.reorderIndicator=x("<div class='sui-grid-reorder-indicator'><span class='sui-grid-indicator-top' /><span class='sui-grid-indicator-bottom' /></div>").appendTo(m.body)),this.isOnGroupPanel&&(d=!1),(r?(e=r.left+(d?0:r.width),this.isOnGroupPanel=null,o.css({left:v(b(l,e),a),top:r.top,height:r.height})):(e=l+(d?i.gridPosition.width:0),this.isOnGroupPanel=null,o.css({left:e,top:i.gridPosition.top,height:t.grid.element.find(".sui-group-panel-empty").outerHeight()}))).show())},_up:function(e){var t,i=this,n=i.options,r=i.grid,o=i.dragged,l=i.start,a=i.hovered;o&&(o.css({left:l.x-l.left,top:l.y-l.top,transition:T("left {0} {1}ms, top {0} {1}ms",n.returnEasing,n.returnDuration)}),null!=a&&-1<a?(o.remove(),l=l.target.attr("data-field"),(t=r.trigger(z,{commandName:"group",cancel:!1,field:l,index:a})).cancel||r.group(l,a,"asc")):setTimeout(function(){o.remove()},g.transitions?n.returnDuration:0)),i.dragged=i.hovered=null,i._indicator(),i.reorderIndicator&&(i.reorderIndicator.remove(),i.reorderIndicator=null),i.start=null,x(m).off(i._eventNS),_.selection(!0),t&&!t.cancel&&(delete t.cancel,delete t.commandName,r.dataSource.read(),r.trigger("group",t))},destroy:function(){this._events(!1),this.grid.headerTable.removeClass("sui-reorderable")}}),ze=a.extend({options:{ns:".shieldGridColumnReorder",returnDuration:150,returnEasing:"ease-out",dragTreshold:20,draggedTemplate:"<div class='sui-grid sui-grid-core'><div class='sui-gridheader'><table class='sui-table'><thead><tr class='sui-columnheader'><th class='sui-headercell'>{0}</th></tr></thead></table></div></div>"},init:function(e){var t=this;t.grid=e,t.options=R(!0,{},ze.fn.options),t._eventNS=t.options.ns+r(),t._events(!0),e.headerTable.addClass("sui-reorderable")},_events:function(e){var t=this,i=t.grid.element;e?(t._downProxy=N(t._down,t),i.on(l+t._eventNS,".sui-headercell",t._downProxy)):(i.off(l+t._eventNS,".sui-headercell",t._downProxy),t._downProxy=null)},_down:function(e){var t=this,i=x(e.target).closest(".sui-headercell"),n=i.offset(),r=t.grid.element,o=r.offset(),l=e.pageX,a=e.pageY;if(!(1<e.button))return x(m).on(u+t._eventNS,N(t._move,t)).on(oe+t._eventNS,N(t._up,t)),t.start={left:l-n.left,top:a-n.top,x:l,y:a,target:i,index:i.parent().find(".sui-headercell").index(i),positions:t._positions(i),gridPosition:{left:o.left,top:o.top,width:r.outerWidth(),height:r.outerHeight()},isRtl:g.isRtl(r)},_.selection(!1),!1},_move:function(e){var t=this,i=t.options,n=t.dragged,r=t.start,o=e.pageX,e=e.pageY,l=i.dragTreshold;n?(n.css({left:o-r.left,top:e-r.top}),t.hovered=t._index(o,e),t._indicator()):(d(r.x-o)>l||d(r.y-e)>l)&&(t.dragged=x(T(i.draggedTemplate,r.target.html())).css({position:"absolute",left:o-r.left,top:e-r.top,zIndex:999}).find("table").css("width","auto").end().find("th").attr("style",r.target[0].style.cssText).css({width:r.target.width(),height:r.target.height()}).end().appendTo(m.body))},_positions:function(e){for(var t,i,n=e.parent().children(".sui-headercell"),r=0,o=[];r<n.length;r++)i=(t=n.eq(r)).offset(),o.push({left:i.left,top:i.top,width:t.outerWidth(),height:t.outerHeight()});return o},_index:function(e,t){for(var i,n,r=this.start,o=r.gridPosition,l=0;l<r.positions.length;l++)if(i=(i=r.positions[l]).left<=e&&e<=i.left+i.width&&i.top<=t&&t<=i.top+i.height,n=o.left<=e&&e<=o.left+o.width&&o.top<=t&&t<=o.top+o.height,i&&n)return l;return-1},_indicator:function(){var e=this.start,t=this.hovered,i=e.positions[t],n=this.reorderIndicator,r=e.gridPosition.left,o=e.gridPosition.left+e.gridPosition.width,l=e.target.parent().children(".sui-headercell"),a=e.isRtl?e.index<t:e.index>t;l.removeClass("sui-reorder-target"),n&&n.hide(),null!=t&&-1<t&&(l.eq(t).addClass("sui-reorder-target"),n=n||(this.reorderIndicator=x("<div class='sui-grid-reorder-indicator'><span class='sui-grid-indicator-top' /><span class='sui-grid-indicator-bottom' /></div>").appendTo(m.body)),t!==e.index&&(l=i.left+(a?0:i.width),n.css({left:v(b(r,l),o),top:i.top,height:i.height}).show()))},_up:function(e){var t,i=this,n=i.options,r=i.grid,o=i.dragged,l=i.start,a=i.hovered;o&&(o.css({left:l.x-l.left,top:l.y-l.top,transition:T("left {0} {1}ms, top {0} {1}ms",n.returnEasing,n.returnDuration)}),null!=a&&-1<a?(o.remove(),(t=r.trigger(z,{commandName:ae,cancel:!1,index:l.index,newIndex:a})).cancel||r.reorderColumn(l.index,a)):setTimeout(function(){o.remove()},g.transitions?n.returnDuration:0)),i.dragged=i.hovered=null,i._indicator(),i.reorderIndicator&&(i.reorderIndicator.remove(),i.reorderIndicator=null),i.start=null,x(m).off(i._eventNS),_.selection(!0),t&&!t.cancel&&(delete t.cancel,delete t.commandName,r.trigger(ae,t))},destroy:function(){this._events(!1),this.grid.headerTable.removeClass("sui-reorderable")}}),i=e.extend({init:function(){e.fn.init.apply(this,arguments);this._eventNS=".shieldGrid"+this.getInstanceId(),this.refresh(),this._dM()},destroy:function(){this._destroyInternal(),e.fn.destroy.call(this)},_destroyInternal:function(){var e,t,i,n=this,r=n.options,o=n._eventNS;if(n.contentWrapper){if(n._markedCells){for(t in n._markedCells)n._markedCells.hasOwnProperty(t)&&(n._markedCells[t].length=0);n._markedCells=null}if(x(s).off(o),n._destroyFrozenContainers(),n.sorting&&(n.sorting.destroy(),n.sorting=null),n.virtualizedContainer&&(n.virtualizedContainer.destroy(),n.virtualizedContainer=null),n.columns)for(e=0;e<n.columns.length;e++)n.columns[e].destroy();if(n.contentWrapper&&n.contentWrapper.off("scroll"),n.scrollableWrapper=null,n._selectable&&(n._selectable.destroy(),n._selectable=null),(r.scrolling?(n.contentWrapper.parent().remove(),n.headerWrapper.parent()):(n.contentWrapper.remove(),n.headerWrapper)).remove(),n._hasDetailTemplate()&&n.contentTable.off(o),n.popupWindow&&n.popupWindow.destroy(),n._footer&&(x(n._footer).remove(),n._footer=null),n.columns=n._gridColumns=n._windowEditingIndex=n.contentWrapper=n.headerWrapper=n.contentTable=n.hederTable=null,n._buttons){for(e=0;e<n._buttons.length;e++)i=n._buttons[e].button.element,n._buttons[e].button.destroy(),i.remove();n._buttons.length=0}n.pager&&(n.pager.destroy(),n.pager=null,n.pagerWrapper&&(n.pagerWrapper.parent().remove(),n.pagerWrapper=null)),n.loadingPanel&&(n.loadingPanel=null,clearTimeout(n.loadingPanelTimeout),n.loadingPanelTimeout=null),n._columnResizing&&(n._columnResizing.destroy(),n._columnResizing=null),n._toolbar&&(n._toolbar.destroy(),n._toolbar=null),n._editing&&(n._editing.destroy(),n._editing=null),n._columnReorder&&(n._columnReorder.destroy(),n._columnReorder=null),n._sortingInProgress=n._loadingVirtualRows=n._scrollLeft=n._scrollTop=n._populateInsertedItem=n._preventClosingEditors=n._editingInProcess=null,n._filter&&(n._filter.destroy(),n._filter=null),n._groupReorder&&(n._groupReorder.destroy(),n._groupReorder=null),n._columnGroupReorder&&(n._columnGroupReorder.destroy(),n._columnGroupReorder=null),n.dataSource.off(o),n.element.off(o).removeClass("sui-grid sui-grid-core").css(te,"").empty()}},_dM:function(){var e=m.createTextNode(x("<div/>").html("Demo Version").text());x(e).insertAfter(x(this.element))},_resizeHandler:function(){this._adjustWidthsLocked(),this._adjustHeightsLocked()},_hasDetailTemplate:function(){var e=this.options;return e.detailTemplate||e.events&&e.events.detailCreated},_hasVirtualScrolling:function(){var e=this.options;return e.scrolling&&e.scrolling.virtual&&!e.paging&&!this._hasDetailTemplate()},_canExpandCollapse:function(){return!1!==this.options.detailExpandCollapse},_resolveColumns:function(e){var t,i=this;if(i.columns=[],n.array(e))for(t=0;t<e.length;t++)i.columns.push(new Ie(e[t]));else _.error("Invalid columns declaration. The columns have to be array.",i.options.dieOnError);for(i._gridColumns={},t=0;t<i.columns.length;t++)i._gridColumns[i.columns[t].field]={index:t}},_createWrappers:function(){var e,t=this,i=t.element;t._wrapper(),(e=x("<div/>").prependTo(i)).addClass("sui-gridcontent"),(i=x("<div/>").prependTo(i)).addClass("sui-gridheader"),t.options.showHeader||(i.css(D,A),e.addClass("sui-no-header")),t.headerWrapper=i,t.contentWrapper=e},_wrapper:function(){var e=this.options.height,t=this.element;(t=t.is("div")?t:t.wrap("<div/>").parent()).addClass("sui-grid sui-grid-core"),t&&t.css(te,e)},_createGroupPanel:function(){var e,t,i,n=this,r=n.options.grouping,o=!1,l=n.dataSource,a=n.element.find(".sui-group-panel");if(0<a.length&&a.remove(),r.showGroupHeader)if(l.group&&0!==l.group.length){for(e=x('<div class="sui-group-panel"/>'),x(n.element).prepend(e),i=0;i<l.group.length;i++)t=l.group[i],n._createGroupHeaderIndicator(t,e),o=!0;o&&r.allowDragToGroup&&(n._groupReorder&&n._groupReorder.destroy(),n._groupReorder=new We(n),n._columnGroupReorder&&n._columnGroupReorder.destroy(),n._columnGroupReorder=new Pe(n))}else x(n.element).prepend(x('<div class="sui-group-panel sui-group-panel-empty">'+r.message+"</div>"))},_createGroupHeaderIndicator:function(e,t){var i=this,n=i._getColumnByField(e.field),n=n?n.groupTitle:e.field,t=x('<div class="sui-group-panel-indicator" data-field="'+e.field+'"/>').appendTo(t),e=("desc"==e.order?x('<span class="sui-descending">▼</span>'):x('<span class="sui-ascending">▲</span>')).appendTo(t);e.on(H,N(i._sortButtonClickedHandler,i)),x('<span class="sui-group-title">'+n+"</span>").appendTo(t),i.options.grouping.allowDragToGroup&&x('<span class="sui-group-close-button">✖</span>').on(H,N(i._closeButtonClickedHandler,i)).appendTo(t)},_sortButtonClickedHandler:function(e){for(var t=x(e.currentTarget),i=t.parent().attr("data-field"),n=this.dataSource.group,r=0;r<n.length;r++)n[r].field==i&&(t.hasClass("sui-descending")?n[r].order="asc":n[r].order="desc",this.dataSource.read())},_closeButtonClickedHandler:function(e){var t,e=x(e.currentTarget).parent().attr("data-field");this.dataSource.group&&!(t=this.trigger(z,{commandName:ce,cancel:!1,field:e})).cancel&&(this.ungroup(e),this.trigger(ce,t))},_createHeaderTable:function(){var e=this,t=e.headerWrapper,i=e.element;i.is("table")||(i=t.children("table")).length||(i=x("<table/>").appendTo(t)),E&&i.attr("cellspacing",0),i.addClass("sui-table"),e.headerTable=i,e._createTbody(i,!0),e._createThead(i),e._createFakeRow(i,e.columns.length)},_createContentTable:function(){var e=this,t=e.options,i=e.contentWrapper,n=e.element;n.is("table")||(n=i.children("table")).length||(n=x("<table/>").appendTo(i)),E&&n.attr("cellspacing",0),n.addClass("sui-table"),t.rowHover&&n.addClass("sui-hover"),e._hasDetailTemplate()&&(e._canExpandCollapse()&&n.addClass("sui-expandable"),n.on(H+e._eventNS,"> tbody > tr > .sui-expand-cell, > tbody > tr > .sui-collapse-cell",N(e._expandCollapseDetailTemplate,e))),e.contentTable=n,e._createTbody(e.contentTable,!1)},_createTbody:function(e,t){var i=e.find("> tbody");i.length||(i=x("<tbody/>").appendTo(e)),t&&i.addClass("sui-hide"),e.tbody=i},_createThead:function(e){this.options;var t,i,n,r,o,l,a,s=this.columns,d="",c=e.find(">thead");for(c.length||(c=x("<thead/>").insertBefore(e.tbody)),(n=(n=e.find("tr:has(th):first")).length||(n=c.children().first()).length?n:x("<tr/>").appendTo(c)).attr($,V),n.empty(),t=0,i=s.length;t<i;t++)o=(r=s[t]).headerTemplate||r.title||r.field||r,l=!!s[t].sortable,d+="<th "+be(r.headerAttributes)+' data-field="'+s[t].field+'" role="columnheader"'+(l?' tabindex="-1"':"")+">"+o+"</th>";n.html(d),n.addClass("sui-columnheader"),n.find("th").addClass("sui-headercell"),s.length&&this._hasDetailTemplate()&&this._canExpandCollapse()&&(a=x('<th class="sui-indent-cell"/>'),E&&a.html(" "),a.prependTo(n)),e.thead=c},_createFakeRow:function(e,t){var i,n,e=e.find(">tbody");if(e.length){for(i=x("<tr/>"),n=0;n<t;n++)x("<td/>").appendTo(i);i.appendTo(e)}},_createColgroup:function(e){var t,i,n,r=this.options,o=this.columns,l=e.find(">colgroup");for((l=l.length?l:x("<colgroup/>").prependTo(e)).html(""),r.columns.length&&this._hasDetailTemplate()&&this._canExpandCollapse()&&x('<col class="sui-indent-col"/>').appendTo(l),t=0,i=o.length;t<i;t++)n=o[t].width,x(n&&0!==parseInt(n,10)?T('<col style="width:{0}"/>',k(n)?n:n+"px"):"<col/>").data(G,o[t].field).appendTo(l)},scrollTop:function(e){var t=this,i=t.options.scrolling,n=t._hasVirtualScrolling(),r=t.contentWrapper;if(i){if(!I(e))return n?t.virtualizedContainer?t.virtualizedContainer.scrollTop():void 0:x(r).scrollTop();n?t.virtualizedContainer&&t.virtualizedContainer.scrollTop(e):x(r).scrollTop(e)}},_scrolling:function(){var e=this,t=e.options,i=x(e.element),n=(g.isRtl(i),e.dataSource),r=e._hasVirtualScrolling(),o=e.headerWrapper,l=e.contentWrapper,a=o.outerHeight(),s=!(r||"auto"!==t.height&&I(t.height)),t=!r&&I(t.maxHeight)?parseInt(t.maxHeight,10):C,d=0,c=0,u=0;if(o.parent().hasClass("sui-gridheader sui-scrolldiv")?a=o.parent().outerHeight():(o.addClass("sui-headercontent").removeClass("sui-gridheader"),o.wrap('<div class="sui-gridheader sui-scrolldiv"/>'),l.addClass("sui-content").removeClass("sui-gridcontent"),l.wrap('<div class="sui-gridcontent sui-scroller"/>'),E&&(e.headerTable.addClass("sui-table-ie7").removeClass("sui-table"),e.contentTable.addClass("sui-table-ie7").removeClass("sui-table")),(e.scrollableWrapper=r?l.parent():l).on("scroll",N(e._onscroll,e))),e.pagerWrapper&&(d=e.pagerWrapper.outerHeight()),e._toolbar){for(var p=i.find(".sui-toolbar"),h=0,f=0;f<p.length;f++)h+=x(p[0]).outerHeight();c+=h+1}var o=i.find(".sui-group-panel");0<o.length&&(u+=o.outerHeight()),o=s?"auto":i.innerHeight()-a-d-c-u,x(l).add(l.parent()).css(te,o),t&&t<i.innerHeight()&&(o=t-a-d-c-u,x(l).add(l.parent()).css(te,o)),r?(e._ensureVirtualizedContainer(),e.virtualizedContainer.options.total=n.total,e.virtualizedContainer.render(),e._fixHeaderPadding(e.virtualizedContainer.wrapper.parent())):(e._fixHeaderPadding(l),s||!Y||E||K||g.hasScrollbarX(l)||l.css(te,o+1))},_fixHeaderPadding:function(e){var t=g.isRtl(this.element),i=this.headerWrapper,e=x(e).get(0);e&&(1<e.scrollHeight-e.clientHeight?(i.parent().css(t?"padding-left":"padding-right",g.scrollbar()-1),i.removeClass("sui-no-y-scroll")):(i.parent().css(t?"padding-left":"padding-right",0),i.addClass("sui-no-y-scroll")))},_ensureVirtualizedContainer:function(){var e,t,i=this;i.virtualizedContainer||(t=(e=i._renderRow(0,i.contentTable.tbody,{})).outerHeight(),e.remove(),i.virtualizedContainer=new _.ui.VirtualizedContainer(i.scrollableWrapper,{itemHeight:t,total:i.dataSource.total,createContainer:function(e){return e.addClass("sui-content").append(i.contentTable).find("tbody").empty()},getItems:N(i._loadVirtualRows,i),skipRender:!0}),i.contentWrapper=i.virtualizedContainer.element.children().eq(0))},_loadVirtualRows:function(e,t,i){var n,r,o,l=this,a=l.dataSource,s=null!=a.skip?a.skip:0,d=null!=a.take?a.take:a.view.length,c=l.virtualizedContainer.container;if(e<t)if(!l._sortingInProgress&&a.remote&&(e<s||s+d<=t))clearTimeout(l._loadWaitTimeout),l._loadWaitTimeout=setTimeout((n=e,r=t,o=i,function(){l._loadWaitTimeout=null,a.skip=n,a.take=r-n,l._loadingVirtualRows=!0,a.one("change.shieldGrid"+l.getInstanceId(),function(){l._loadWaitTimeout||(l._loadingVirtualRows=!1)}),a.read().then(function(){if(!l._loadWaitTimeout){c.empty();for(var e=n;e<r&&e<a.total;e++)l._renderRow(e-n,c,a.view[e-n]);l.loading(!1),o([],!1),l.trigger(ne),l.trigger(F)}})}),100);else{c.empty();for(var u=e;u<t&&u<a.total;u++)l._renderRow(u,c,a.view[u]);i([],!1),l.trigger(ne),l.trigger(F)}else l._renderNoRecords();l._checkIfVerticalScroll(),l._initSelection()},_checkIfVerticalScroll:function(){var e=this,t=e.element.find(".sui-virtualized").get(0),i=e.element.get(0);t.scrollHeight>i.scrollHeight?(e.headerWrapper.parent().css("padding-right","16px"),e.headerWrapper.removeClass("sui-grid-no-gap")):(e.headerWrapper.parent().css("padding-right","0px"),e.headerWrapper.addClass("sui-grid-no-gap"))},_onscroll:function(e){var t=this,i=t.scrollableWrapper,n=i.get(0),r=t.headerWrapper,o=i.scrollLeft(),l=r.scrollLeft();g.isRtl(t.element)&&Q&&n.clientHeight<n.scrollHeight&&(o+=n.offsetWidth-n.clientWidth),o!=l&&(r.scrollLeft(o),t._footer&&0<(n=x(t._footer).find(".sui-footer-content")).length&&n.scrollLeft(o)),t.frozenHeaderWrapper&&(l=i.scrollTop())!=t.frozenContentWrapper.scrollTop()&&t.frozenContentWrapper.scrollTop(l)},_sorting:function(){var e=this,t=e.options.sorting;e.element;t&&e.columns.length&&(e.sorting&&e.sorting.destroy(),e.sorting=new Re(t,e))},_renderData:function(){var i,e,t=this,n=t.dataSource.view,r=t.options;r.scrolling,B(r.altRows)||r.altRows,r.rowTemplate,r.altRowTemplate,t.contentTable;t._loadingVirtualRows||t.trigger(z,{commandName:F,cancel:!1}).cancel||(t._sortingInProgress=!1,t.columns.length||(i=[],n.length&&O(n[0],function(e,t){i.push(e)}),r.columns=i,t._resolveColumns(i)),t._filtering(),t._destroyFrozenContainers(),t._createThead(t.headerTable),t._createColgroup(t.headerTable),t._createColgroup(t.contentTable),t.contentTable.tbody.empty(),t._sorting(),t._renderRows(),t._renderFooter(),e=(r=function(e){return x("<div/>").html(e).text()})("ShieldUI"),t._refreshColVisibility(),n&&0<n.length&&t._initFrozenCols(),t._initSelection(),t.loading(!1),n=r("http://www.shieldui.com"),t.trigger(F),t.dmL||(t.dmL=x('<a href="'+n+'" target="_blank"> by '+e+"</a>"),x(t.dmL).css({color:"grey","text-decoration":"none"}).insertAfter(x(this.element))))},_renderRows:function(){var e,t=this,i=t.dataSource,n=i.view;if(t._markedCells){for(e in t._markedCells)t._markedCells.hasOwnProperty(e)&&(t._markedCells[e].length=0);t._markedCells=null}n&&n.length?(t._hasVirtualScrolling()&&!t._sortingInProgress||((i=i.group)&&0<i.length?(t._renderGroupedData(n,0,0),t._addGroupIndentCells(),t._addGroupDataIndentCells(),t.contentTable.addClass("sui-grouped-table")):t._renderRowsAndDetails(n)),t._createGroupPanel()):(t._renderNoRecords(),t._createGroupPanel(),t._addGroupIndentCells()),t._initScrolling()},_addGroupIndentCells:function(){var e,t,i,n,r,o=this,l=o.dataSource.group,a=o.options,a=a.filtering&&a.filtering.enabled;if(l&&0<l.length)for(e=o.headerTable.find(">colgroup").first(),t=o.contentTable.find(">colgroup").first(),i=o.headerTable.thead.find(".sui-columnheader").first(),a&&(n=o.headerTable.find(".sui-filter-row").first()),e.find(".sui-indent-col").remove(),i.find(".sui-columnheader > .sui-indent-cell").remove(),n&&0<n.length&&n.find(".sui-indent-cell").remove(),r=0;r<l.length;r++)x('<col class="sui-indent-col"/>').prependTo(e),x('<th class="sui-indent-cell"/>').prependTo(i),n&&0<n.length&&x('<th class="sui-indent-cell"/>').prependTo(n),x('<col class="sui-indent-col"/>').prependTo(t)},_getVisibleColumnCount:function(){for(var e=this.columns||[],t=e.length,i=0,n=0;n<t;n++)e[n].visible&&i++;return i},_renderNoRecords:function(){var e=this.options,t=this.contentTable;(B(e.noRecordsTemplate)?x('<tr><td class="sui-grid-norecords-cell" colspan="'+this._getVisibleColumnCount()+'" role="gridcell">'+(e.noRecordsText||"No records to display")+"</td></tr>"):x('<td class="sui-grid-norecords-cell" colspan="'+this._getVisibleColumnCount()+'" role="gridcell"/>').append(e.noRecordsTemplate).wrap("<tr/>").parent()).appendTo(t.tbody)},_initScrolling:function(){this.options.scrolling&&!this._sortingInProgress&&this._scrolling()},_initSelection:function(){this._selection()},_addGroupDataIndentCells:function(){for(var e,t,i,n=this.contentTable.get(0).rows,r=0;r<n.length;r++)if(t=x(n[r]),i=parseInt(t.attr("data-group-level"),10),t.hasClass("sui-group-header")){if(1<i)for(e=0;e<i-1;e++)x('<td class="sui-indent-cell"/>').prependTo(t)}else for(e=0;e<i;e++)x('<td class="sui-indent-cell sui-group-intend-cell"/>').prependTo(t)},_renderGroupedData:function(e,t,i){var n,r,o=this;for(o.options.detailExpandCollapse=!1,n=0;n<e.length;n++)(r=e[n]).hasOwnProperty("field")&&r.hasOwnProperty("items")&&r.hasOwnProperty("value")?(o._renderGroupHeader(r,++i),o._renderGroupedData(r.items,t,i),o._renderGroupAggregates(r),i--):(o._renderDataItem(r,t,i),t++)},_renderGroupAggregates:function(e){if(e.aggregate){var t,i,n,r=this,o=r.columns,l={},a=e.aggregate;for(p=0;p<o.length;p++)if(i=o[p].groupFooterTemplate){t=x("<tr class='sui-group-footer' />").appendTo(r.contentTable.tbody);break}if(t){for(p=0;p<o.length;p++)if(n=x("<td class='sui-group-footer-cell' />").appendTo(t),i=o[p].groupFooterTemplate){for(var s,d=o[p].field,c=0;c<a.length;c++)a[c].field==d&&(S(a[c].aggregate)?l.custom=a[c].value:l[a[c].aggregate]=a[c].value);S(i)?(s=i.call(r,n,l),I(s)&&!q(s)&&""!==s&&n.html(s)):n.html(T.call(r,i,l))}for(var u=r.dataSource.group.length,p=0;p<u;p++)t.prepend(x("<td class='sui-indent-cell' />"))}}},_renderGroupHeader:function(e,t){var i=this,n=i.contentTable,r=i._getVisibleColumnCount()+i.dataSource.group.length-t+1,t=x('<tr class="sui-group-header" data-group-level="'+t+'"/>').appendTo(n),n=x('<td class="sui-group-header-cell" colspan="'+r+'"/>').appendTo(t),r=x('<span class="sui-collapse">▾</span>').appendTo(n),t=i._getColumnByField(e.field),t=t?t.groupHeaderTitle:e.field;x('<span class="sui-group-header-text">'+t+": "+e.value+"</span>").appendTo(n),r.on(H,N(i._expandCollapseHandler,i))},_expandCollapseHandler:function(e){var t=this,e=x(e.currentTarget),i=e.parent().parent();e.hasClass("sui-collapse")?t.trigger(z,{commandName:me,cancel:!1,row:i}).cancel||(t.collapseGroup(i),e.html("▸"),e.removeClass("sui-collapse").addClass("sui-expand"),t.trigger(me,{row:i})):t.trigger(z,{commandName:"expand",cancel:!1,row:i}).cancel||(t.expandGroup(i),e.html("▾"),e.removeClass("sui-expand").addClass("sui-collapse"),t.trigger("expand",{row:i}))},_renderDataItem:function(e,t,i){var n=this.contentTable;this._renderRow(t,n,e).attr("data-group-level",i)},_renderRowsAndDetails:function(e){for(var t=this,i=t.contentTable,n=0,r=e.length;n<r;n++)t._renderRow(n,i.tbody,t.dataSource.view[n]),t._hasDetailTemplate()&&!t._canExpandCollapse()&&t._addDetailTemplate(e[n])},_renderRow:function(e,t,i){var n,r,o=this,l=I(t),a=o.options,s=!!B(a.altRows)||a.altRows,d=s&&e%2&&a.altRowTemplate?a.altRowTemplate:a.rowTemplate,c=o.columns;if(d)k(d)&&(d=d.replace(/^\s+/,"").replace(/\s+$/,"")),p=x(T(d,i)),l&&t.append(p);else{var u,p=x('<tr class="'+(s&&e%2?"sui-alt-row":"sui-row")+'"/>').data(ve,e);for(3<arguments.length?(d=arguments[3],u=(s=t.find("tr")).eq(d),s.length==d?t.append(p):p.insertBefore(u)):l&&t.append(p),r=0;r<c.length;r++){var h,f,g=c[r],_=g.columnTemplate,m=g.format,v=g.field,b=g.buttons,C=x("<td "+be(g.attributes)+' role="gridcell" tabindex="-1"/>').addClass("sui-cell").appendTo(p);if(C.attr($,"gridcell").attr(W,"-1"),g.editable||C.attr(Z,ee),b)for(f=0;f<b.length;f++)o._buildButton(b[f],C,e);else _?S(_)?(h=_.call(o,C,i,e),I(h)&&!q(h)&&""!==h&&C.html(h)):C.html(T.call(o,_,i)):m?C.html(T.call(o,m,v?y(i,v):i)):C.html(""+y(i,v));g.visible||C.css(D,A)}}return o._hasDetailTemplate()&&o._canExpandCollapse()&&(o.trigger(z,{commandName:"expandButtonCreate",cancel:!1,item:i}).cancel?n=x('<td class="sui-cell sui-expand-cell-disabled"/>'):(n=x('<td class="sui-cell sui-expand-cell"/>'),o._setExpandCollapseCellText(n,a.detailExpandText,a.detailCollapseText)),n.prependTo(p)),p.attr($,V),p},_renderFooter:function(){var e,t,i,n,r,o,l=this,a=l.options,s=l.columns,d={},c=l.dataSource.aggregates;for(l._footer&&(x(l._footer).remove(),l._footer=null),n=0;n<s.length;n++)if(t=s[n].footerTemplate){if(a.scrolling&&a.scrolling.virtual){for(var u=x('<div class="sui-footer" style="padding-right:16px;"/>').appendTo(l.element),p=x('<div class="sui-footer-content"/>').appendTo(u),p=x('<table class="sui-table"/>').appendTo(p),h=l.element.find(".sui-headercontent > table > colgroup > col"),f=x("<colgroup/>").appendTo(p),g=0;g<h.length;g++)x(h[g].outerHTML).appendTo(f);p=x("<tbody/>").appendTo(p),l._footer=u}else p=x("<tfoot/>").appendTo(l.contentTable),l._footer=p;e=x('<tr class="sui-grid-footer"/>').appendTo(p);break}if(e){for(n=0;n<s.length;n++)if(r=x('<td class="sui-footer-cell" role="gridcell" tabindex="-1"/>').appendTo(e),t=s[n].footerTemplate){for(i=s[n].field,g=0;g<c.length;g++)c[g].field==i&&(S(c[g].aggregate)?d.custom=c[g].value:d[c[g].aggregate]=c[g].value);S(t)?(o=t.call(l,r,d),I(o)&&!q(o)&&""!==o&&r.html(o)):r.html(T.call(l,t,d))}var _=e.prev();(0<(_=_.length<=0?l.contentTable.find(">tbody > tr").first():_).find(".sui-expand-cell").length||0<_.find(".sui-expand-cell-disabled").length||0<_.find(".sui-indent-cell").length||0<_.find(".sui-collapse-cell").length)&&e.prepend(x("<td/>"))}},_buildButton:function(e,t,i){var n,r=this,o=e.commandName,l=e.click;_.ui.Button&&(n=x('<button type="button">'+e.caption+"</button>").appendTo(t),t.addClass("sui-button-cell"),"delete"===o?(l=r._deleteButtonClicked,B(e.cls)?e.cls="sui-delete":e.cls+=" sui-delete"):"edit"===o&&(r._editing&&(r._editing.type=V),r._preventClosingEditors=!0,l=r._editButtonClicked,B(e.cls)?e.cls="sui-edit":e.cls+=" sui-edit"),n=new _.ui.Button(n,{cls:e.cls,events:{click:N(l,r,i,t)}}),"delete"!=o&&"edit"!=o||(r._buttons||(r._buttons=[]),r._buttons.push({index:i,button:n})))},_deleteButtonClicked:function(e,t){var i=this.dataSource,n=this.options.editing,r=n?n.confirmation:null;this.trigger(z,{commandName:"delete",cancel:!1,rowIndex:e}).cancel||r&&r.delete&&r.delete.enabled&&!s.confirm(T(r.delete.template,i.view[e]))||(i.removeAtView(e),n&&!n.batch&&i.save(!1),this.trigger("delete",{rowIndex:e}))},_editButtonClicked:function(e,t){var i=this,n=i._editing,r=i.dataSource,o=x(t).parent();i.trigger(z,{commandName:fe,cancel:!1,row:o,cell:t,index:i._getRowIndex(o)}).cancel||(i._editingInProcess=!0,r.tracker&&r.tracker.changes&&r.tracker.changes.added&&0<r.tracker.changes.added.length?r.cancel():"popup"!=i.options.editing.mode?(i._closeAllEditedRows(),n&&n.options.enabled&&n._putRowInEditMode(o,0),i._changeEditColumnButtons(e,t)):_.ui.Window&&i._initializePopupForm(e),i.trigger(fe,{row:x(t).parent(),cell:t,index:i._getRowIndex(x(t).parent())}))},_initializePopupForm:function(e,t){for(var i,n=this,r=n._editing,o=n.dataSource,l=x('<div class="sui-modal-popup-edit-window"/>').appendTo(m.body),a=x('<div class="sui-edit-form-container"/>'),s=n.options.columns,d=0;d<s.length;d++)if(!1!==(i=s[d]).editable&&i.field){var c=I(o.schema.options.fields)?o.schema.options.fields[i.field].type:String,u=o.editView(e).data,p=y(u,i.field),h=(n._windowEditingIndex=e,x('<div class="sui-edit-form-label"><label for="'+i.field+'">'+(i.caption||i.field)+"</label></div>").appendTo(a),x('<div class="sui-edit-field"></div>').appendTo(a));if(i.editor)r._instantiateCustomEditor(i,h,u,0,!1,i.field);else switch(c){case Number:r._instantiateNumeric(h,p,!1,i.field);break;case Date:r._instantiateDatePicker(h,p,!1,i.field);break;case String:r._instantiateTextBox(h,p,!1,i.field);break;case Boolean:r._instantiateCheckBox(h,p,!1,i.field)}}var f=x('<div class="sui-update-buttons sui-popup-buttons"></div>').appendTo(a),g=x("<button type='button'>Save</button>").appendTo(f),f=x("<button type='button'>Cancel</button>").appendTo(f);_.ui.Button&&(g=new _.ui.Button(g,{events:{click:N(n._updateButtonClicked,n)}}),f=new _.ui.Button(f,{events:{click:N(n._cancelButtonClicked,n)}}),n._buttons=[],n._buttons.push({index:1e4,button:g}),n._buttons.push({index:1e4,button:f})),a.appendTo(m.body),n.popupWindow=new _.ui.Window(l,{title:t?"Insert":"Edit",draggable:{enabled:!1},events:{close:N(n._cancelButtonClicked,n)},height:x(".sui-edit-form-container").height()+57,modal:!0}),n.popupWindow.content(a),n.popupWindow.resize({width:x(".sui-modal-popup-edit-window").width(),height:x(".sui-edit-form-container").height()+66}),n.trigger(t?"insertWindowOpen":"editWindowOpen")},_changeEditColumnButtons:function(e,t){var i=this;i._removeButtons(t,e),i._buildButton({caption:"Update",click:i._updateButtonClicked,cls:"sui-update"},t,e),i._buildButton({caption:"Cancel",click:i._cancelButtonClicked,cls:"sui-cancel"},t,e),t.addClass("sui-update-buttons")},_removeButtons:function(e,t){for(var i=this._buttons.length;i--;)this._buttons[i].index==t&&(this._buttons[i].button.destroy(),this._buttons.splice(i,1));e.removeClass("sui-update-buttons").empty()},_updateButtonClicked:function(e,t){var i=this;B(i._windowEditingIndex)||(e=i._windowEditingIndex),i._updateItem(e,t),i._editing._errorDuringEdit?i._editing._errorDuringEdit=!1:(i._putRowInViewMode(e,t),"popup"===i.options.editing.mode&&i._removePopupWindow())},_updateItem:function(e,t){var i,n,r,o,l,a,s=this,d=s.dataSource,c=(s.pager,[]),u=!0;if(d.group&&0<d.group.length&&"popup"!=s.options.editing.mode)for(o=s.contentTable.find(".sui-row, .sui-alt-row"),l=s.contentTable.find("tr").get(e),a=0;a<o.length;a++)if(o[a]==l){e=a;break}for(r in(i=d.editView(e)).data)i.data.hasOwnProperty(r)&&(null!=i.data[r]&&(u=!1),s._editing._editors[r]&&("custom"==s._editing._editors[r]?(n=s.trigger("getCustomEditorValue",{field:r,value:null}).value,s._editing._editors[r]=null):n=s._editing._editors[r].value?s._editing._editors[r].value():s._editing._editors[r].checked?s._editing._editors[r].checked():C,i.data[r]!=n&&c.push(r),!B(n)&&null!=n||(n=s._getDefaultValue(r)),i.set(r,n)));if(!s._editing._errorDuringEdit)return s._editing.options.batch||s.trigger(z,{commandName:ge,cancel:!1}).cancel||(d.save(!1),s.trigger(ge)),s._populateInsertedItem=u,c;c.length=0},_getDefaultValue:function(e){var t=this.dataSource.schema;return t&&t.options.fields?(t=t.options.fields,_.Model.def(y(t,e+".type"),y(t,e+".def"),y(t,e+".nullable"))):""},_closeAllEditedRows:function(){var e,t=this.contentTable.find(".sui-editable-cell");0<t.length&&(t=t.get(0).parentNode.rowIndex,e=this.contentTable.find(".sui-update-buttons").get(0),this._cancelButtonClicked(t,x(e)))},_cancelButtonClicked:function(e,t){var i,n,r,o=this,l=o.dataSource;if(!o.trigger(z,{commandName:he,cancel:!1,rowIndex:e,cell:t}).cancel){if(l.tracker&&l.tracker.changes&&l.tracker.changes.added&&0<l.tracker.changes.added.length)l.cancel(),"popup"===o.options.editing.mode&&o._removePopupWindow();else if("popup"!=o.options.editing.mode)o._putRowInViewMode(e,t);else{for(i=o.options.columns,n=0;n<i.length;n++)(r=o._editing._editors[i[n].field])&&(S(r.destroy)&&o._editing._editors[i[n].field].destroy(),delete o._editing._editors[i[n].field]);o._removePopupWindow()}o.trigger(he)}},_removePopupWindow:function(){this._removeButtons(x(".sui-window .sui-update-buttons"),1e4),this.popupWindow.destroy(),x(".sui-modal-popup-edit-window").remove()},_getRowIndex:function(e){e=x(e).data(ve);return I(e)?e:-1},_putRowInViewMode:function(e,t){var i,n=this,r=n.options,o=r.navigation,l=n.dataSource,a=n.contentTable,s=e,d=-1;if(l.group&&0<l.group.length&&"popup"!=r.editing.mode)for(i=a.find(">tbody > tr.sui-row, >tbody > tr.sui-alt-row"),c=a.find(">tbody > tr").get(e),_=0;_<i.length;_++)if(i[_]==c){s=_;break}l=l.view[s],t&&"popup"!=r.editing.mode&&n._removeButtons(t,e);var c=a.find(">tbody > tr").get(e),u=parseInt(x(c).attr("data-group-level"),10);for(o&&(d=x(c).children("td").index(n._activeCell)),n._editing._destroyRow(e),c=n._renderRow(s,n.contentTable.tbody,l,e),o&&-1<d&&(n._activeCell=x(c).children("td").eq(d),x(n._activeCell).focus()),_=0;_<u;_++)x('<td class="sui-indent-cell sui-group-intend-cell"/>').prependTo(c);if(u&&c.attr("data-group-level",u),n._editing.options.batch){var p=c.children(".sui-cell");if(n._markedCells&&n._markedCells[e])for(var h,f,g=n._markedCells[e],_=0;_<g.length;_++)h=g[_],f=x(p[h]).html(),x(p[h]).html('<span class="sui-updated-marker"/>'+f)}},_renderUpdateMarkers:function(e,t){for(var i,n,r=this,o=r.columns,l=r.contentTable.find(">tbody > tr").eq(t).children(".sui-cell"),a=0;a<e.length;a++)for(i=0;i<o.length;i++)o[i].field===e[a]&&(n=x(l[i]).html(),x(l[i]).html('<span class="sui-updated-marker"/>'+n),r._markedCells?r._markedCells[t]||(r._markedCells[t]=[]):(r._markedCells={},r._markedCells[t]=[]),r._markedCells[t].push(i))},_selection:function(){var e=this,t=e.options;t.selection&&(e._selectable&&e._selectable.destroy(),e._selectable=new Ee(t.selection,e))},_filtering:function(){var e=this,t=e.options;t.filtering&&t.filtering.enabled&&(e._filter&&e._filter.destroy(),e._filter=new Ne(e))},_paging:function(e){var t=this,i=t.element;_.ui.Pager&&e&&(o(e)&&e instanceof _.ui.Pager?(t.pager=e,t.pager.dataSource=t.dataSource,t.pager.element.appendTo(i)):((i=x("<div/>").appendTo(i)).addClass("sui-pager"),t.pagerWrapper=i,t.pager=new _.ui.Pager(i.get(0),R({},e,{dataSource:t.dataSource}))))},_reorder:function(){this.options.columnReorder&&(this._columnReorder=new ze(this))},_expandCollapseDetailTemplate:function(e){var t=x(e.target).closest(".sui-row",this.contentTable);t.length||(t=x(e.target).closest(".sui-alt-row",this.contentTable)),this._toggleDetailTemplate(t)},_toggleDetailTemplate:function(e){var t=this,i=t.contentTable.find("tr:first").parent().children().not(".sui-detail-row"),i=X(e[0],i),n=t.dataSource.view,r=e.next(),o=t.options;r&&r.hasClass("sui-detail-row")?(r.toggle(),r=x(e.get(0).cells[0]),t._toggleClasses(r,"sui-expand-cell","sui-collapse-cell"),t._setExpandCollapseCellText(r,o.detailExpandText,o.detailCollapseText)):t._addDetailTemplate(n[i],e)},_setExpandCollapseCellText:function(e,t,i){B(i)&&(i="-"),B(t)&&(t="+");var n=this.options.detailCollapseCssClass,r=this.options.detailExpandCssClass,n=B(n)?"":" class = '"+n+"'",r=B(r)?"":" class = '"+r+"'";e.hasClass("sui-collapse-cell")?e.html("<span"+n+">"+i+"</span>"):e.hasClass("sui-expand-cell")&&e.html("<span"+r+">"+t+"</span>")},_addDetailTemplate:function(e,t){var i=this,n=i.options,r=x("<tr class='sui-detail-row'/>"),o=(i._canExpandCollapse()&&(o=x("<td class='sui-cell sui-indent-cell'/>"),E&&o.html(" "),o.appendTo(r)),x('<td class="sui-detail-cell" colspan="'+i._getVisibleColumnCount()+'"></td>'));i.trigger(z,{commandName:le,cancel:!1,detailCell:o,item:e}).cancel||(o.appendTo(r),n.detailTemplate&&o.html(T(n.detailTemplate,e)),t?r.insertAfter(t):r.appendTo(i.contentTable.tbody),i.trigger(le,{detailCell:o,item:e}),t&&(r=x(t.get(0).cells[0]),i._toggleClasses(r,"sui-expand-cell","sui-collapse-cell"),i._setExpandCollapseCellText(r,n.detailExpandText,n.detailCollapseText)))},_toggleClasses:function(e,t,i){e.hasClass(t)?(e.removeClass(t),e.addClass(i)):(e.removeClass(i),e.addClass(t))},_resizing:function(){this.options.resizing&&this.options.scrolling&&(this._columnResizing=new Be(this))},_initToolbar:function(){var e=this.options;e.toolbar&&(this._toolbar=new Se(e.toolbar,this))},_initEditing:function(){var e=this.options;e.editing&&(this._buttons=[],this._editing=new ke(e.editing,this))},_refreshOnSort:function(){this._sortingInProgress=!0,this.dataSource.read()},_dsStartHandler:function(){this.loading(!0)},_initNavigation:function(){var t=this,e=t.element,i=t._eventNS+"nav";t.options.navigation&&(e.addClass("sui-grid-nav").off(i).on("focus"+i,".sui-headercell[tabindex], .sui-filter-cell[tabindex], .sui-cell[tabindex], .sui-footer-cell[tabindex]",function(e){x(t._activeCell).attr(W,"-1"),t._activeCell=x(this),x(t._activeCell).attr(W,"0")}),t._initActiveCell(),x(t._activeCell).attr(W,"0"))},_initActiveCell:function(){var e=this;(x(e._activeCell).length<=0||!x(e._activeCell).is(":visible"))&&(e._activeCell=x(e.element).find(".sui-cell[tabindex]").first(),x(e._activeCell).length<=0&&(e._activeCell=x(e.element).find(".sui-headercell[tabindex]").first()))},_cellEditable:function(e){return x(e).attr(Z)!=ee&&!!x(e).hasClass("sui-editable-cell")},_keydown:function(e){var t,i=this,n=i.element,r=e.keyCode,o=i.options,l=o.navigation,a=o.editing,s=o.selection,d=e.ctrlKey,c=(e.shiftKey,i.pager),u=!1,p=i._cellEditable(i._activeCell);if("button"!==x(e.target).prop("tagName").toLowerCase()||r!=h.ENTER&&r!=h.SPACE){switch(r){case h.UP:!l||p||(t=i._getNextNavCell("up"))&&(x(t).focus(),u=!0);break;case h.DOWN:!l||p||(t=i._getNextNavCell("down"))&&(x(t).focus(),u=!0);break;case h.LEFT:!l||p||(t=i._getNextNavCell("left"))&&(x(t).focus(),u=!0);break;case h.RIGHT:!l||p||(t=i._getNextNavCell("right"))&&(x(t).focus(),u=!0);break;case h.HOME:!l||p||(t=d?x(n).find(".sui-cell[tabindex], .sui-headercell[tabindex], .sui-footer-cell[tabindex]").first():i._getNextNavCell("first"))&&(x(t).focus(),u=!0);break;case h.END:!l||p||(t=d?x(n).find(".sui-cell[tabindex], .sui-headercell[tabindex], .sui-footer-cell[tabindex]").last():i._getNextNavCell("last"))&&(x(t).focus(),u=!0);break;case h.ENTER:l&&(x(i._activeCell).hasClass("sui-cell")?a&&(p?i._updateButtonClicked(x(i._activeCell).parent().get(0).rowIndex,x(i._activeCell)):i._editing._editingTriggered(e),u=!0):x(i._activeCell).hasClass("sui-headercell")&&(0<x(i._activeCell).children(".sui-link").length&&(i.one(F,N(i.focus,i)),x(i._activeCell).children(".sui-link").first().click()),u=!0));break;case h.PAGEUP:l&&(c&&c.hasPrev()&&(i.one(F,N(i.focus,i)),i.pager.prev()),u=!0);break;case h.PAGEDOWN:l&&(c&&c.hasNext()&&(i.one(F,N(i.focus,i)),i.pager.next()),u=!0);break;case h.ESC:p&&(i.cancelEditing(),l&&x(i._activeCell).focus(),u=!0);break;case h.SPACE:l&&s&&i._selectable&&!p&&(i._selectable.elements=xe(e,i.contentTable,i.frozenContentTable),i._selectable.elements&&i._selectable._performAndProcessSelection(e),u=!0)}u&&e.preventDefault()}},_getNextNavCell:function(e){var t,i=this,n=(i.element,i._activeCell);return(!n||x(n).length<=0)&&(n=x(i.element).find('.sui-cell[tabindex="0"], .sui-headercell[tabindex="0"]').first()),"left"==e?t=i.__findPrevFocusCell(n):"right"==e?t=i.__findNextFocusCell(n):"up"==e?t=i.__findAboveFocusCell(n):"down"==e?t=i.__findBelowFocusCell(n):"first"==e?t=i.__findFirstFocusCell(n):"last"==e&&(t=i.__findLastFocusCell(n)),t&&0<x(t).length?x(t).get(0):null},__findFirstFocusCell:function(e){for(var t,i=this.__findPrevFocusCell(e);i&&0<i.length;)t=i,i=this.__findPrevFocusCell(i);return t},__findLastFocusCell:function(e){for(var t,i=this.__findNextFocusCell(e);i&&0<i.length;)t=i,i=this.__findNextFocusCell(i);return t},__findPrevFocusCell:function(e){for(var t=x(e).prev();t&&0<t.length;){if(Ce(t,W))return t;t=x(e).prev()}return C},__findNextFocusCell:function(e){for(var t=x(e).next();t&&0<t.length;){if(Ce(t,W))return t;t=x(e).next()}return C},__findAboveFocusCell:function(e){for(var t,i=x(e).closest("tr"),n=x(e).index(),r=this.headerTable.find(">thead > tr").add(this.contentTable.find(">tbody > tr")).add(this.contentTable.find(">tfoot > tr")),o=x(r).index(i);0<o;){if(Ce(t=x(x(r)[o-1]).children().eq(n),W))return t;o--}return C},__findBelowFocusCell:function(e){for(var t,i=x(e).closest("tr"),n=x(e).index(),r=this.headerTable.find(">thead > tr").add(this.contentTable.find(">tbody > tr")).add(this.contentTable.find(">tfoot > tr")),o=x(r).index(i);o<r.length-1;){if(Ce(t=x(x(r)[o+1]).children().eq(n),W))return t;o++}return C},focus:function(){var e=this;e.options.navigation&&(e._initActiveCell(),0<x(e._activeCell).length)?x(e._activeCell).focus():ye(e.element)},refresh:function(e){var t=this,i=e?e.dataSource:null,n=t._eventNS;e=_.extend([a],t.options,e),i&&(e.dataSource=i);var i=t.element,r=e.scrolling,o=t.pager?t.pager.options:e.paging,l=0;r&&t.contentWrapper&&(l=t.contentWrapper.get(0).scrollLeft),t._destroyInternal(),r=t.dataSource=M.create(e.dataSource),i.attr($,"grid").on(re+n,N(t._keydown,t)),e.editing||i.attr(Z,ee),r.on("change"+n,N(t._renderData,t)).on("start"+n,N(t._dsStartHandler,t)),x(s).on("resize"+n,N(t._resizeHandler,t)),t._resolveColumns(e.columns),t._createWrappers(),t._createHeaderTable(),t._createContentTable(),t._initToolbar(),t._initEditing(),t._filtering(),t._paging(o),t._resizing(),t._reorder(),t._initNavigation(),t.pager||t.dataSource.read(),t._sorting(),l&&(t.contentWrapper.get(0).scrollLeft=l)},loading:function(e,t){function i(){n.loadingPanel&&n.loadingPanel.show()}var n=this;_.ui.LoadingPanel&&(e?(n.loadingPanel||(n.loadingPanel=new _.ui.LoadingPanel(n.element.get(0))),t?i():n.loadingPanelTimeout=setTimeout(i,50)):n.loadingPanel&&(clearTimeout(n.loadingPanelTimeout),n.loadingPanelTimeout=null,n.loadingPanel.hide()))},select:function(e){var t=this._selectable;if(!(e=k(e)?this.contentTable.find(e):x(e)).length)return t.select();t.multiple||(t.clear(),e=e.first()),t.select(e)},selectedRowIndices:function(){var t=this,i=[],n=[];return t.contentTable.children("tbody").children(".sui-row, .sui-alt-row").each(function(){var e;x(this).hasClass(P)&&(e=t._getRowIndex(x(this)),i.push(e),n.push(0<=e?t.dataSource.getDataIndex(e):e))}),{view:i,data:n}},clearSelection:function(){this._selectable.clear()},sort:function(e,t,i){this.sorting&&this.sorting._sort(e,t,i)},_getItemRow:function(e){return t(e)?x(this.contentTable.children("tbody").children(".sui-row, .sui-alt-row").get(e)):x(e)},expandRow:function(e){var e=this._getItemRow(e),t=e.next();t.hasClass("sui-detail-row")&&t.css(D)!=A||this._toggleDetailTemplate(e)},collapseRow:function(e){var e=this._getItemRow(e),t=e.next();t.hasClass("sui-detail-row")?t.css(D)!=A&&this._toggleDetailTemplate(e):(this._toggleDetailTemplate(e),e.next().toggle())},reorderColumn:function(e,t,i){var n,r=this.element,o=this.columns,l=this.options.columns||[],a=this.headerWrapper,s="before",a=a.find(".sui-columnheader").first().find(".sui-indent-cell").length;if(e=+e,t=+t,isNaN(e)||isNaN(t)||e<0||t<0||e>o.length-1||t>o.length-1)throw new Error("Invalid index in column reorder.");e!==t&&(e<t&&(s="after"),!(n=o[e]).visible||!i&&n.locked||(n=o.splice(e,1)[0],o.splice(t,0,n),n=l.splice(e,1)[0],l.splice(t,0,n),t+=a,r.find(".sui-gridheader col:nth-child("+((e+=a)+1)+")").add(r.find(".sui-gridheader .sui-columnheader th:nth-child("+(e+1)+")")).add(r.find(".sui-gridheader .sui-filter-row th:nth-child("+(e+1)+")")).add(r.find(".sui-gridcontent col:nth-child("+(e+1)+")")).add(r.find(".sui-gridcontent tr:not(.sui-detail-row) td:nth-child("+(e+1)+")")).each(function(){x(this).parent().children().eq(t)[s](this)})))},addRow:function(e){return this.dataSource.add(I(e)?e:{})},insertRow:function(e,t){return this.dataSource.insertView(e,I(t)?t:{})},saveChanges:function(){this.dataSource.save()},revertChanges:function(){this.dataSource.cancel()},dataItem:function(e){return this.dataSource.view[e]},editCell:function(e,t){e=this.contentTable.find(">tbody > tr").eq(e).children("td").eq(t).get(0);this._editingInProcess=!0,this._editing._putCellInEditMode(e)},editRow:function(e){e=this.contentTable.find(">tbody > tr").eq(e).get(0);this._editingInProcess=!0,this._editing._putRowInEditMode(x(e),0)},editRowPopup:function(e){this._editingInProcess=!0,_.ui.Window&&this._initializePopupForm(e)},cancelEditing:function(){var e,t=this.contentTable.find(".sui-editable-cell");0<t.length&&(t=t.get(0).parentNode.rowIndex,e=this.contentTable.find(".sui-update-buttons").get(0),this._putRowInViewMode(t,x(e))),this._editingInProcess=!1},deleteRow:function(e){this.dataSource.removeAtView(e)},filter:function(){var e=this.dataSource,t=[].slice.call(arguments);if(!(0<t.length))return e.filter;e.filter=t[0],e.read()},group:function(e,t,i,n){var r=this.dataSource.group;r?r.splice(t,0,{field:e,order:i,aggregates:n}):(this.dataSource.group=[],this.dataSource.group.push({field:e,order:i,aggregates:n}))},ungroup:function(e){var t,i=this.dataSource.group,n=!1;for(this.headerTable.thead.find(".sui-columnheader > .sui-indent-cell").remove(),t=0;t<i.length;t++)if(i[t].field==e){i.splice(t,1),0===i.length&&(this.dataSource.group=null),n=!0;break}n&&this.dataSource.read()},collapseGroup:function(e){for(var t=!0,i=parseInt(e.attr("data-group-level"),10);t;)0<(e=e.next().css(D,A)).next().length&&!(parseInt(e.next().attr("data-group-level"),10)<=i&&e.next().hasClass("sui-group-header"))||(t=!1)},expandGroup:function(e){for(var t=!0,i=parseInt(e.attr("data-group-level"),10);t;){if((e=e.next().css(D,"")).hasClass("sui-group-header")&&0<e.find(".sui-expand").length)return;0<e.next().length&&!(parseInt(e.next().attr("data-group-level"),10)<=i&&e.next().hasClass("sui-group-header"))||(t=!1)}},_getColumnByField:function(e){for(var t=this.columns||[],i=0;i<t.length;i++)if(t[i].field===e)return t[i];return C},_refreshColVisibility:function(){for(var e=this.columns,t=e.length,i=!1,n=0;n<t;n++)if(!e[n].visible){i=!0;break}if(i)for(n=0;n<t;n++)e[n].visible?this.showColumn(e[n].field):this.hideColumn(e[n].field)},_getNextVisibleColumnRealIndex:function(e){for(var t=this.columns,i=e.index+1;i<t.length;i++)if(t[i].visible)return i;return-1},isHidden:function(e){e=this._getColumnByField(e);return e?!e.visible:C},hideColumn:function(e){var t=this,i=(x(t.element),t._getColumnByField(e));i&&!i.locked&&(x(t.headerTable).find("colgroup").first().find("col").each(function(){if(x(this).data(G)==e)return t._gridColumns[e].headerCol=x(this),x(this).detach(),!1}),x(t.contentTable).find("colgroup").first().find("col").each(function(){if(x(this).data(G)==e)return t._gridColumns[e].contentCol=x(this),x(this).detach(),!1}),t._changeColumnVisibility(e,"hide"),i.visible=!1,t._afterColumnVisibilityChange())},showColumn:function(e){var t,i,n,r,o,l=this,a=(x(l.element),l._getColumnByField(e)),s=x(l.headerTable).find("colgroup"),d=x(l.contentTable).find("colgroup");a&&!a.locked&&(t=l._gridColumns[e],i=t.headerCol,n=t.contentCol,-1===(r=l._getNextVisibleColumnRealIndex(t))?(s.append(i),d.append(n)):(o=l.columns[r].field,s.find("col").each(function(){if(x(this).data(G)==o)return x(i).insertBefore(x(this)),!1}),d.find("col").each(function(){if(x(this).data(G)==o)return x(n).insertBefore(x(this)),!1})),l._changeColumnVisibility(e,"show"),t.headerCol=t.contentCol=C,a.visible=!0,l._afterColumnVisibilityChange())},_changeColumnVisibility:function(t,e){var i,n,r=x(this.element),o=x(this.headerTable).find(".sui-columnheader").first(),l=x(this.headerTable).find(".sui-filter-row").first(),a=this._footer,s=-1;if(o.length&&x(o).children().each(function(e){if(x(this).attr("data-field")==t)return s=e,!1}),!(s<0))for(x(o.find("th")[s])[e](),x(l.find("th")[s])[e](),a&&x(a.find("td")[s])[e](),0===(i=0===(i=r.find("> .sui-gridcontent > table > tbody > tr")).length?r.find("> .sui-gridcontent > .sui-virtualized > table > tbody > tr"):i).length&&(i=r.find("> .sui-gridcontent > .sui-content > table > tbody > tr")),n=0;n<i.length;n++)x(i[n].cells[s])[e]()},_afterColumnVisibilityChange:function(){var e=this._getVisibleColumnCount(),t=this.dataSource,i=t.group?t.group.length:0;x(this.contentTable).find(".sui-grid-norecords-cell, .sui-detail-cell, .sui-group-header-cell").each(function(){x(this).hasClass("sui-group-header-cell")?x(this).attr("colspan",e+i-f(x(this).parent().attr("data-group-level"))+1):x(this).attr("colspan",e)})},_getVisibleColumnFields:function(){for(var e=this.columns||[],t=e.length,i=[],n=0;n<t;n++)e[n].visible&&i.push(e[n].field);return i},_initFrozenCols:function(){for(var e=this.columns,t=e.length,i=!1,n=0;n<t;n++)if(e[n].locked){i=!0;break}if(i)for(this._initFrozenContainers(),n=0;n<t;n++)e[n].locked&&this.lockColumn(e[n].field)},_initFrozenContainers:function(){var e=this,t=e.options,i=t.scrolling;e.frozenHeaderWrapper||(e.frozenHeaderWrapper=x('<div class="sui-header-locked"/>').prependTo(i?e.headerWrapper.parent():e.headerWrapper),e.frozenHeaderTable=x('<table class="sui-table sui-non-selectable"'+(E?' cellspacing="0"':"")+'><colgroup/><thead><tr class="sui-columnheader"/>'+(t.filtering&&t.filtering.enabled?'<tr class="sui-filter-row"/>':"")+'</thead><tbody class="sui-hide"/></table>').appendTo(e.frozenHeaderWrapper)),e.frozenContentWrapper||(e.frozenContentWrapper=x('<div class="sui-content-locked"/>').prependTo(i?e.contentWrapper.parent():e.contentWrapper),e.frozenContentWrapper.height(e.frozenContentWrapper.parent().find(".sui-content").first().height()),e.frozenContentTable=x('<table class="sui-table'+(t.rowHover?" sui-hover":"")+'"'+(E?' cellspacing="0"':"")+'><colgroup/><tbody/><tfoot><tr class="sui-grid-footer"/></tfoot></table>').appendTo(e.frozenContentWrapper),e._hasDetailTemplate()&&(e._canExpandCollapse()&&e.frozenContentTable.addClass("sui-expandable"),e.frozenContentTable.on(H+e._eventNS,"> tbody > tr > .sui-expand-cell, > tbody > tr > .sui-collapse-cell",N(e._expandCollapseDetailTemplate,e))))},_destroyFrozenContainers:function(){var e=this;e.frozenHeaderWrapper&&(x(e.frozenHeaderWrapper).remove(),e.frozenHeaderWrapper=null),e.frozenContentWrapper&&(x(e.frozenContentWrapper).find(".sui-table").off(e._eventNS),x(e.frozenContentWrapper).remove(),e.frozenContentWrapper=null)},isLocked:function(e){e=this._getColumnByField(e);return e?e.locked:C},lockColumn:function(t){var e,i=this,n=x(i.element),r=i.options.filtering,o=i._getColumnByField(t),l=-1,a=i._footer;if(o&&o.visible){if(x(i.headerTable).find("colgroup").first().find("col").each(function(){if(x(this).data(G)==t)return x(this).appendTo(x(i.frozenHeaderTable).find("colgroup")),!1}),x(i.contentTable).find("colgroup").first().find("col").each(function(){if(x(this).data(G)==t)return x(this).appendTo(x(i.frozenContentTable).find("colgroup")),!1}),x(i.headerTable).find(".sui-columnheader").children().each(function(e){if(x(this).attr("data-field")==t)return l=e,x(this).appendTo(x(i.frozenHeaderTable).find(".sui-columnheader")),!1}),r&&r.enabled&&0<=l&&x(i.headerTable).find(".sui-filter-row").children().each(function(e){if(x(this).attr("data-field")==t)return x(this).appendTo(x(i.frozenHeaderTable).find(".sui-filter-row")),!1}),a&&0<=l&&(r=x(i.frozenContentTable).find("> tfoot > .sui-grid-footer"),x(a).find(".sui-grid-footer td:eq("+l+")").appendTo(r)),0<=l){0===(e=0===(e=n.find("> .sui-gridcontent > table > tbody > tr")).length?n.find("> .sui-gridcontent > .sui-virtualized > table > tbody > tr"):e).length&&(e=n.find("> .sui-gridcontent > .sui-content > table > tbody > tr"));for(var s=x(i.frozenContentTable).find("tbody"),d=0<s.children().length,c=0;c<e.length;c++){var u=null,u=d?x(s).children()[c]:x(e[c]).clone(!0,!1).empty().appendTo(s);x(e[c].cells[l]).appendTo(u)}}o.locked=!0,i._adjustWidthsLocked(),i._adjustHeightsLocked()}},unlockColumn:function(e){var i,n,r,t,o,l,a=this,s=(x(a.element),a.options.filtering),d=a.columns,c=a._footer,u=a._getColumnByField(e),p=-1,h=-1;if(u&&u.visible){for(x(a.frozenHeaderTable).find("colgroup").first().children().each(function(){if(x(this).data(G)==e)return i=x(this),p=x(this).index(),!1}),x(a.frozenContentTable).find("colgroup").first().children().each(function(){if(x(this).data(G)==e)return n=x(this),h=x(this).index(),!1}),t=0;t<d.length;t++)if(d[t].field===e){t<=d.length-2&&(r=d[t+1].field);break}r?(x(a.headerTable).find("> colgroup col").each(function(e){var t;if(x(this).data(G)===r)return x(i).insertBefore(x(this)),x(a.frozenHeaderTable).find(".sui-columnheader th:eq("+p+")").insertBefore(x(a.headerTable).find(".sui-columnheader th:eq("+e+")")),s&&s.enabled&&x(a.frozenHeaderTable).find(".sui-filter-row th:eq("+p+")").insertBefore(x(a.headerTable).find(".sui-filter-row th:eq("+e+")")),c&&(t=x(a.frozenContentTable).find("> tfoot > .sui-grid-footer"),x(t).find("td:eq("+p+")").insertBefore(x(c).find(".sui-grid-footer td:eq("+e+")"))),!1}),x(a.contentTable).find("> colgroup col").each(function(t){var i;if(x(this).data(G)===r)return x(n).insertBefore(x(this)),i=x(a.contentTable).find(">tbody").first().children(),x(a.frozenContentTable).find(">tbody > tr").each(function(e){x(this).find("td:eq("+h+")").insertBefore(x(i[e]).find("td:eq("+t+")"))}),!1})):(x(a.headerTable).find("colgroup").append(i),x(a.contentTable).find("colgroup").append(n),x(a.frozenHeaderTable).find(".sui-columnheader th:eq("+p+")").appendTo(x(a.headerTable).find(".sui-columnheader")),s&&s.enabled&&x(a.frozenHeaderTable).find(".sui-filter-row th:eq("+p+")").appendTo(x(a.headerTable).find(".sui-filter-row")),c&&(o=x(a.frozenContentTable).find("> tfoot > .sui-grid-footer"),x(o).find("td:eq("+p+")").appendTo(x(c).find(".sui-grid-footer"))),l=x(a.contentTable).find(">tbody").first().children(),x(a.frozenContentTable).find(">tbody > tr").each(function(e){x(this).find("td:eq("+h+")").appendTo(x(l[e]))})),u.locked=!1,a._adjustWidthsLocked(),a._adjustHeightsLocked()}},_adjustWidthsLocked:function(){var e=this;e.frozenHeaderWrapper&&(x(e.headerWrapper).parent().css(g.isRtl(e.element)?"padding-left":"padding-right",0),x(e.headerWrapper).outerWidth(x(e.headerWrapper).parent().innerWidth()-x(e.frozenHeaderWrapper).outerWidth()-g.scrollbar()),x(e.contentWrapper).outerWidth(x(e.contentWrapper).parent().innerWidth()-x(e.frozenContentWrapper).outerWidth()-1))},_adjustHeightsLocked:function(e){var t,i,n,r,o,l,a,s,d,c=this,u=c.options.filtering,p=c._footer;if(c.frozenHeaderWrapper){for((a=x(c.frozenHeaderTable).find("tr").first()).height("auto"),s=f(a.height()),(d=x(c.headerTable).find("tr").first()).height("auto"),(o=f(d.height()))<s?(a.height(s),d.height(s)):s<o&&(a.height(o),d.height(o)),u&&u.enabled&&((s=x(c.frozenHeaderTable).find("tr.sui-filter-row").first()).height("auto"),a=f(s.height()),(d=x(c.headerTable).find("tr.sui-filter-row").first()).height("auto"),(o=f(d.height()))<a?(s.height(a),d.height(a)):a<o&&(s.height(o),d.height(o))),t=x(c.frozenContentTable).find("tbody").first().children(),n=x(c.contentTable).find("> tbody").children(),l=0;l<n.length;l++)x(t[l]).height("auto"),i=f(x(t[l]).height()),x(n[l]).height("auto"),(r=f(x(n[l]).height()))<i?(x(t[l]).height(i),x(n[l]).height(i)):i<r&&(x(t[l]).height(r),x(n[l]).height(r));p&&(u=x(c.frozenContentTable).find("> tfoot > .sui-grid-footer"),a=x(p).find(".sui-grid-footer").first(),u.height("auto"),s=f(u.height()),a.height("auto"),(d=f(a.height()))<s?(u.height(s),a.height(s)):s<d&&(u.height(d),a.height(d))),e&&c._initScrolling()}},_getOtherRow:function(e){var t,i,n;if(this.frozenHeaderWrapper){if(t=x(e).index(),i=x(this.frozenContentTable).find("tbody").first().children(),n=x(this.contentTable).find("> tbody").children(),x(e)[0]===x(i)[t])return x(n)[t];if(x(e)[0]===x(n)[t])return x(i)[t]}return null},exportExcel:function(){this._doExcelExport()},exportPdf:function(){this._doPdfExport()},exportCsv:function(){this._doCsvExport()},_doExcelExport:function(){var u,p,h,f,g,_,e,t,m=this,i=m.options,v=[],b=[];w&&!(e=m.trigger(z,{commandName:"exportExcel",cancel:!1,exportOptions:R(!0,{},i.exportOptions)})).cancel&&(m.loading(!0,!0),setTimeout(function(){u=R(!0,{proxy:C,excel:{fileName:"Untitled",fileFormat:"xlsx",noLegacyFallback:!1,author:C,created:new Date,producer:C,dataSource:C,readDataSource:!1,columnFields:C,header:{enabled:!0,style:{bold:!0},cells:C},worksheet:{name:"Sheet1",columns:C},worksheets:[],worksheetIndex:0}},e.exportOptions),p=u.excel,g=(g=p.columnFields)||m._getVisibleColumnFields(),_=g.length,p.worksheet.columns||(p.worksheet.columns=L(g,function(e){return{autoWidth:!0}})),f=R(!0,{},p.worksheet),p.header&&p.header.enabled&&(p.header.cells?b.push({cells:p.header.cells}):b.push({cells:L(g,function(e){var t=m._getColumnByField(e);return{type:String,value:I(t)&&t.title?t.title:e,style:p.header.style}})})),h=M.create(p.dataSource||m.dataSource),t=function(){for(var e,t,i=h.view||[],n=i.length,r=[],o=0;o<_;o++)r[o]=y(h,"schema.options.fields."+g[o]+".type");for(o=0;o<n;o++){var l,a,s=i[o],d=m.trigger(z,{commandName:"exportExcelRow",cancel:!1,item:s,index:o,row:{}}),c=[];if(!d.cancel){for(l=R(!0,{},d.row),t=0;t<_;t++)a={type:I(l.type)?l.type:r[t],value:I(l.value)?l.value:y(s,g[t])},l.cells&&l.cells[t]&&R(!0,a,l.cells[t]),c.push(a);b.push({index:l.index,height:l.height,cells:c})}}f.rows=b,(v=[].slice.call(p.worksheets)).splice(p.worksheetIndex,0,f),e={created:p.created,author:p.author,worksheets:v},new("xml"==p.fileFormat?w.ExcelXMLSpreadsheet:w.OOXMLWorkbook)(e).saveAs({fileName:p.fileName,forceExt:u.forceExt,proxy:u.proxy}),m.loading(!1)},p.readDataSource?h.read().always(t):t()},100))},_doPdfExport:function(){var s,d,c,e,t,u,p,h=this,i=h.options;w&&!(e=h.trigger(z,{commandName:"exportPdf",cancel:!1,exportOptions:R(!0,{},i.exportOptions)})).cancel&&(h.loading(!0,!0),setTimeout(function(){s=R(!0,{proxy:C,pdf:{fileName:"Untitled",author:C,created:new Date,size:"a4",orientation:"portrait",fontSize:10,dataSource:C,readDataSource:!1,columnFields:C,header:{enabled:!0,cells:C},margins:{left:72,top:72,bottom:72,right:72}}},e.exportOptions),d=s.pdf,t=(t=d.columnFields)||h._getVisibleColumnFields(),t.length,d.header&&(p=!!d.header.enabled,d.header.cells&&(u=[].concat(d.header.cells))),I(p)||(p=!0),I(u)||(u=L(t,function(e){var t=h._getColumnByField(e);return{field:e,title:t.title||e,width:t.width||C}})),c=M.create(d.dataSource||h.dataSource),t=function(){for(var e,t,i,n=c.view||[],r=n.length,o=[],l=d.margins,a=0;a<r;a++)e=n[a],(t=h.trigger(z,{commandName:"exportPdfRow",cancel:!1,item:e,index:a,row:{}})).cancel||o.push(R(!0,e,t.row));(i=new w.PDFDocument({author:d.author,created:d.created})).addPage(d.size,d.orientation),i.table(l.left,l.top,o,u,{margins:l,printHeader:p,fontSize:d.fontSize}),i.saveAs({fileName:d.fileName,forceExt:s.forceExt,proxy:s.proxy}),h.loading(!1)},d.readDataSource?c.read().always(t):t()},100))},_doCsvExport:function(){var c,u,p,e,t,h,f,g=this,i=g.options;w&&!(e=g.trigger(z,{commandName:"exportCsv",cancel:!1,exportOptions:R(!0,{},i.exportOptions)})).cancel&&(g.loading(!0,!0),setTimeout(function(){c=R(!0,{proxy:C,csv:{fileName:"Untitled",delimiter:",",dataSource:C,readDataSource:!1,columnFields:C,header:{enabled:!0,cells:C}}},e.exportOptions),u=c.csv,t=(t=u.columnFields)||g._getVisibleColumnFields(),t.length,u.header&&(f=!!u.header.enabled,u.header.cells&&(h=[].concat(u.header.cells))),I(f)||(f=!0),I(h)||(h=L(t,function(e){return{field:e,title:g._getColumnByField(e).title||e}})),p=M.create(u.dataSource||g.dataSource),t=function(){var e,t,i,n,r,o=p.view||[],l=o.length,a=h.length,s=[],d=[];for(f&&(s=L(h,function(e){return e.title})),e=0;e<l;e++)if(i=o[e],!(r=g.trigger(z,{commandName:"exportCsvRow",cancel:!1,item:i,index:e,row:n})).cancel){if((r=R(!0,{},r.row))&&r.cells)n=r.cells;else for(n=[],t=0;t<a;t++)n.push(y(i,h[t].field));d.push(n)}new w.CSVDocument({delimiter:u.delimiter,printHeader:f,header:s,records:d}).saveAs({fileName:u.fileName,forceExt:c.forceExt,proxy:c.proxy}),g.loading(!1)},u.readDataSource?p.read().always(t):t()},100))}});i.defaults=j,_.ui.plugin("Grid",i)}(jQuery,shield,this); -!function(u,r,l,g){var c=r.ui.Widget,_=(r.Class,document,Math.abs),m=(Math.min,Math.max,Math.floor),h=u.proxy,d=(u.each,u.map,r.Constants.KeyCode),f=r.format,p=r.error,t=r.is,b=t.defined,v=(t.string,t.object,t.func,r.to.number),s="aria-describedby",k="tabindex",o="disabled",T="horizontal",w="both",W="top",y="left",I="right",a="click",x="change",O="focus",B="blur",S="px",t={cls:g,orientation:T,min:0,max:100,value:g,step:1,largeStep:2,enabled:!0,buttons:!1,values:{enabled:!0,template:"{0}"},ticks:{enabled:!1,type:w,step:1},tooltip:{enabled:!1,template:"{0}"},width:g,height:g,events:{}},e=c.extend({init:function(){c.fn.init.apply(this,arguments);var t,e=this,i=e.options,n=i.cls,s=i.value,o=i.dieOnError,a=i.orientation;e._original=t=u(e.element),"input"!==t.prop("tagName").toLowerCase()?p("shieldSlider: Underlying element is not INPUT",o):(e.element=o=t.wrap('<div class="sui-slider sui-slider-'+a+(n?" "+n:"")+'" />').parent(),e._eventNS=n=".shieldSlider"+e.getInstanceId(),t.hide(),t=t.attr(k),o.attr(k,b(t)?t:"0"),o.on(O+n,h(e._focus,e)).on(B+n,h(e._blur,e)).on("keydown"+n,h(e._keyDown,e)),u(l).on("resize"+n,h(e._onWinResize,e)),b(i.width)&&o.css("width",i.width),b(i.height)&&o.css("height",i.height),e._buttonOffset=5,e._buttonScaleOffset=20,e._width=o.innerWidth(),e._height=o.innerHeight(),e._buttons=e._createButtons(),e._scale=e._createScale(),e._ticks=e._createTicks(),e._createBar(),e._showValues(),e._elWidth=o.width(),e._elHeight=o.height(),b(s)||(s=v(e._value())),o.attr("role","slider").attr("aria-orientation",a).attr("aria-valuemin",i.min).attr("aria-valuemax",i.max),e.value(s),e.enabled(i.enabled))},refresh:function(t){this.refreshWithElement(this._original,t)},_createButtons:function(){var t,e=this,i=e.options,n=i.orientation==T,s=[];if(i.buttons)return i=u('<div class="sui-slider-button sui-unselectable" unselectable="on" />').appendTo(e.element),u('<span class="sui-slider-button-arrow-'+(n?y:"up")+' sui-unselectable" unselectable="on" />').appendTo(i),t=i.outerWidth(),i.css({left:n?e._buttonOffset:(e._width-t)/2,top:n?(e._height-t)/2:e._buttonOffset}),i.click(function(){e._hasFocus||e.element.focus(),e._stepPrev()}),s.push(i),i=u('<div class="sui-slider-button sui-unselectable" unselectable="on" />').appendTo(e.element),u('<span class="sui-slider-button-arrow-'+(n?I:"down")+' sui-unselectable" unselectable="on" />').appendTo(i),i.css({left:n?e._width-(e._buttonOffset+t):(e._width-t)/2,top:n?(e._height-t)/2:e._height-(e._buttonOffset+t)}),i.click(function(){e._hasFocus||e.element.focus(),e._stepNext()}),s.push(i),s},_createScale:function(){var t=this,e=t.options.orientation,i=e==T,n=t._buttons?t._buttons[0].outerWidth():0,e=u('<div class="sui-slider-scale sui-slider-scale-'+e+' sui-unselectable" unselectable="on" />').appendTo(t.element);return e.css({left:i?t._buttonOffset+n+t._buttonScaleOffset:(t._width-e.outerWidth())/2,top:i?(t._height-e.outerHeight())/2:t._buttonOffset+n+t._buttonScaleOffset}),i?e.width(t._width-2*(t._buttonOffset+t._buttonScaleOffset+n)):e.height(t._height-2*(t._buttonOffset+t._buttonScaleOffset+n)),e.on(a,h(t._scaleClick,t)),e},_scaleClick:function(t){var e,i,n,s,o,a=this,l=a.options.orientation==T,t=t.originalEvent,r=l?t.clientX:t.clientY,t=a.element.offset(),u=m(l?t.left:t.top);if(a._hasFocus||a.element.focus(),a._enabled){for(o=0;o<a._ticks.length;o++)e=a._ticks[o],i=_(r-(e.tick+u)),(n===g||i<n)&&(n=i,s=e);a._moveBar(s)}},_keyDown:function(t){var e=this,i=e.options.orientation==T,n=t.originalEvent,s=n.keyCode,o=e._ticks.length-1,a=s===(i?d.LEFT:d.UP),l=s===(i?d.RIGHT:d.DOWN),r=s===(i?d.PAGEDOWN:d.PAGEUP),i=s===(i?d.PAGEUP:d.PAGEDOWN),u=s==d.HOME,s=s==d.END;!n.ctrlKey&&e._enabled&&(a||r?(e._stepPrev(r),t.preventDefault()):l||i?(e._stepNext(i),t.preventDefault()):u?(e._moveBar(e._ticks[0]),t.preventDefault()):s&&(e._moveBar(e._ticks[o]),t.preventDefault()))},_createTicks:function(){var t,e,i,n,s,o,a=this,l=a.options,r=l.orientation==T,u=l.max,c=l.min,_=l.step,l=l.ticks,h=l.type,d=l.step,f=m((u-c)/_),p=g,b=0,v=[],u=r?a._scale.outerWidth():a._scale.outerHeight();for(f<=u?n=u/f-(i=m(u/f)):(p=f/u*_,f=u,_=i=1),s=r?a._scale.position().left:a._scale.position().top,o=0;o<=f;o++)v.push(e={value:c+o*(p||_),tick:s}),1<=(b+=n)&&(s++,b--),s+=i;if(l.enabled)for(o=0;o<=f;o+=d)e=v[o],h!==W&&h!==y&&h!==w||(t=a._createTick()).css({left:r?e.tick+S:a._scale.position().left-t.outerWidth()+S,top:r?a._scale.position().top-t.outerHeight()+S:e.tick+S}),"bottom"!==h&&h!==I&&h!==w||(t=a._createTick()).css({left:r?e.tick+S:a._scale.position().left+a._scale.outerWidth()+S,top:r?a._scale.position().top+a._scale.outerHeight()+S:e.tick+S});return v},_createTick:function(){return u('<div class="sui-slider-tick sui-slider-tick-'+this.options.orientation+' sui-unselectable" unselectable="on" />').insertAfter(this._scale)},_showValues:function(){var t,e,i,n=this,s=n.options,o=s.orientation==T,a=s.max,l=s.min,r=(s.step,s.values||{});if(r.enabled)for(i=0;i<n._ticks.length;i++)(t=n._ticks[i]).value!==l&&t.value!==a||(e=u('<div class="sui-slider-mark sui-unselectable" unselectable="on">'+f(r.template,t.value)+"</div>").insertAfter(n._scale)).css({left:o?t.tick-2-e.width()/2:n._scale.position().left+n._scale.outerWidth()+n._bar.width()/2,top:o?n._scale.position().top-n._scale.height()-e.height()+2:t.tick-e.height()/2})},_createBar:function(){var t,e,i,n,s,o,a=this,l=a.options.orientation==T;for(a._bar=t=u('<div class="sui-slider-bar sui-unselectable" id="'+r.strid()+'" unselectable="on" />').appendTo(a.element).mousedown(function(){a._hasFocus||a.element.focus()}),e=(t.innerWidth()-a._scale.outerHeight())/2+1,i=(t.innerWidth()-a._scale.outerWidth())/2+1,t.css({left:l?a._scale.position().left-t.outerWidth()/2+S:a._scale.position().left-i+S,top:l?a._scale.position().top-e+S:a._scale.position().top-t.outerWidth()/2+S}),s=[],o=0;o<a._ticks.length;o++)n=a._ticks[o],s.push({x:l?n.tick-t.outerWidth()/2:g,y:l?g:n.tick-t.outerWidth()/2});a._dragBar=new r.ui.Draggable(t,{allowedPositions:s,events:{drag:function(t){a._changeTooltipValue(!0),a.trigger("slide")},stop:function(t){a._value(a.value()),a._tooltip&&u("#"+a._bar.attr("id")+":hover").length<=0&&a._tooltip.visible(!1),a.trigger(x,{value:a.value()})}}}),a._createTooltip()},_stepNext:function(t){var e,i=this,n=i.options,s=(n.orientation,n.step),n=n.largeStep;i._enabled&&(t=!!t,e=i._getCurrentTickInfoIndex(),(t=t?e+m(n/s):e+1)>=i._ticks.length||(n=i._ticks[t],i._moveBar(n)))},_stepPrev:function(t){var e,i=this,n=i.options,s=(n.orientation,n.step),n=n.largeStep;i._enabled&&(t=!!t,e=i._getCurrentTickInfoIndex(),(t=t?e-m(n/s):e-1)<0||(n=i._ticks[t],i._moveBar(n)))},_moveBar:function(t,e){var i=this,n=i.options.orientation==T,s=i._bar;t&&(s.css({left:n?t.tick-s.outerWidth()/2+S:s.css(y),top:n?s.css(W):t.tick-s.outerWidth()/2+S}),i._changeTooltipValue(),i._value(i.value()),i.element.attr("aria-valuenow",t.value),e||i.trigger(x,{value:i.value()}))},_createTooltip:function(){var t=this,e=t.options,i=e.tooltip,e=e.orientation==T;i&&i.enabled&&(t._tooltip=new r.ui.Tooltip(t._bar,{content:f(i.template,t.value()),position:e?W:y,delay:0}),t.element.attr(s,t._bar.attr(s)))},_changeTooltipValue:function(t){var e=this,i=e.options.tooltip,n=e._tooltip;n&&(i=f(i.template,e.value()),n.options.content!==i&&(n.refresh({content:i,enabled:e._enabled}),e.element.attr(s,e._bar.attr(s))),t&&n.visible(!0,e._bar))},_getCurrentTickInfoIndex:function(){for(var t,e=this.options.orientation==T,i=this._ticks,n=this._bar,s=e?n.position().left:n.position().top,o=n.outerWidth()/2,a=Number.POSITIVE_INFINITY,l=-1,r=0;r<i.length;r++){if(s==(t=i[r].tick-o))return r;(t=_(s-t))<a&&(a=t,l=r)}return l},_getTickInfoIndexByValue:function(t){for(var e=this._ticks,i=0;i<e.length;i++)if(t==e[i].value)return i;return-1},_focus:function(t){this._hasFocus||(this._hasFocus=!0,u(this.element).addClass("sui-slider-focus"),this.trigger(O))},_blur:function(t){this._hasFocus&&(this._hasFocus=!1,u(this.element).removeClass("sui-slider-focus"),this.trigger(B))},_onWinResize:function(t){var e=this;e._onWinResTimeout&&clearTimeout(e._onWinResTimeout),e._onWinResTimeout=setTimeout(h(e._winResized,e),100)},_winResized:function(){var t=this.element;this._elWidth===t.width()&&this._elHeight===t.height()||this.refresh()},_value:function(){return this._original.attr.apply(this._original,["value"].concat([].slice.call(arguments)))},value:function(){var t,e,i=this,n=i.options.min,s=[].slice.call(arguments);if(!(0<s.length))return e=i._getCurrentTickInfoIndex(),(t=i._ticks[e])?t.value:n;-1!==(e=i._getTickInfoIndexByValue(s[0]))&&(t=i._ticks[e],i._moveBar(t,!0))},enabled:function(){var t=this,e=u(t.element),i=t._original,n=[].slice.call(arguments);if(!(0<n.length))return t._enabled;(n=!!n[0])?(e.removeAttr(o).removeClass("sui-slider-disabled"),i.removeAttr(o)):(e.attr(o,o).addClass("sui-slider-disabled"),i.attr(o,o)),t._enabled=n,t._dragBar.enabled(n),t._tooltip&&t._tooltip.enabled(n)},destroy:function(){var t,e=this,i=e._eventNS;if(u(l).off(i),clearTimeout(e._onWinResTimeout),e._onWinResTimeout=null,u(e.element).off(i),e._dragBar&&(e._dragBar.destroy(),e._dragBar=null),e._buttons)for(t=0;t<e._buttons.length;t++)e._buttons[t].off(a);e._tooltip&&(e._tooltip.destroy(),e._tooltip=null),u(e.element).find(".sui-slider-scale, .sui-slider-mark, .sui-slider-tick, .sui-slider-bar, .sui-slider-button").remove(),e._original.unwrap().show(),e._scale.off(a),e._original=e._buttons=e._bar=e._scale=e._ticks=null,c.fn.destroy.call(e)}});e.defaults=t,r.ui.plugin("Slider",e)}(jQuery,shield,this); -!function(r,s,l,h){var e,i,n,u=s.ui.Widget,t=s.Class,p=s.DataSource,o=(document,Math.abs,Math.min),a=Math.max,d=Math.pow,c=(Math.floor,r.proxy),g=(r.each,r.map,s.format),f=s.to.int,m=s.error,_=s.is,v=_.defined,w=(_.string,_.object,_.func,s.to.number,"horizontal"),T="vertical",I="click",C="disabled",x=t.extend({init:function(t,e,i,n){var o=this;o.left=t,o.top=e,o.width=i,o.height=n},getSize:function(){return o(this.width,this.height)},getRowContainers:function(t){var e,i=this,n=i.left,o=i.top,a=i.sum(t),r=a/i.height,s=a/i.width,l=[];if(i.width>=i.height)for(e=0;e<t.length;e++)l.push({left:n,top:o,right:n+r,bottom:o+t[e].targetValue/r,dataItem:t[e]}),o+=t[e].targetValue/r;else for(e=0;e<t.length;e++)l.push({left:n,top:o,right:n+t[e].targetValue/s,bottom:o+s,dataItem:t[e]}),n+=t[e].targetValue/s;return l},remainingArea:function(t){var e,i,n=this,t=n.width>=n.height?(e=t/n.height,i=n.width-e,new x(n.left+e,n.top,i,n.height)):(e=t/n.width,i=n.height-e,new x(n.left,n.top+e,n.width,i));return t},sum:function(t){for(var e=0,i=0;i<t.length;i++)e+=t[i].targetValue;return e}}),y=t.extend({init:function(){},sort:function(t){t.sort(function(t,e){return e.targetValue-t.targetValue})},sum:function(t){for(var e=0,i=0;i<t.length;i++)e+=t[i].targetValue;return e},min:function(t){for(var e=h,i=0;i<t.length;i++)(!v(e)||e>t[i].targetValue)&&(e=t[i].targetValue);return e},max:function(t){for(var e=h,i=0;i<t.length;i++)(!v(e)||e<t[i].targetValue)&&(e=t[i].targetValue);return e}});y.create=function(t){return new("squarified"===t?n:t===w?e:i)},e=y.extend({init:function(){y.fn.init.apply(this,arguments)},execute:function(t,e,i,n,o){var a,r,s,l,h,u,p=this.sum(t),d=e.left,c=e.top,g=!o||o===w;for(this.sort(t),u=0;u<t.length;u++)s=t[u],a=g?e.width*s.targetValue/p:e.width,r=g?e.height:e.height*s.targetValue/p,s.items&&0!==s.items.length?(l=n.createGroup(i,new x(d,c,a,r)),h=n.createTitle(l,n.getItemText(s)),h=new x(h.left-l.position().left,h.top-l.position().top,h.width,h.height),this.execute(s.items,h,l,n,g?T:w)):n.createItem(i,{left:d,top:c,width:a,height:r,dataItem:s}),g?d+=a:c+=r}}),i=y.extend({init:function(){y.fn.init.apply(this,arguments)},execute:function(t,e,i,n,o){var a,r,s,l,h,u,p=this.sum(t),d=e.left,c=e.top,g=!o||o===T;for(this.sort(t),u=0;u<t.length;u++)s=t[u],r=g?e.height*s.targetValue/p:e.height,a=g?e.width:e.width*s.targetValue/p,s.items&&0!==s.items.length?(l=n.createGroup(i,new x(d,c,a,r)),h=n.createTitle(l,n.getItemText(s)),h=new x(h.left-l.position().left,h.top-l.position().top,h.width,h.height),this.execute(s.items,h,l,n,g?w:T)):n.createItem(i,{left:d,top:c,width:a,height:r,dataItem:s}),g?c+=r:d+=a}}),n=y.extend({init:function(){y.fn.init.apply(this,arguments)},execute:function(t,e,i,n){var o,a,r,s,l,h=this;for(h.sort(t),t=h._squarifyCore(h._normalize(t,e.width*e.height,n),[],e,[]),o=h._getTreemap(t),l=0;l<o.length;l++)(a=o[l]).dataItem.items&&0!==a.dataItem.items.length?(r=n.createGroup(i,new x(a.left,a.top,a.right-a.left,a.bottom-a.top)),s=n.createTitle(r,n.getItemText(a.dataItem)),s=new x(s.left-r.position().left,s.top-r.position().top,s.width,s.height),h.execute(a.dataItem.items,s,r,n)):n.createItem(i,{left:a.left,top:a.top,width:a.right-a.left,height:a.bottom-a.top,dataItem:a.dataItem})},_squarifyCore:function(t,e,i,n){var o,a;if(0!==t.length)return a=i.getSize(),o=t[0],this._verifyRatio(e,o,a)?(e.push(o),this._squarifyCore(t.slice(1),e,i,n)):(a=i.remainingArea(this.sum(e)),n.push(i.getRowContainers(e)),this._squarifyCore(t,[],a,n)),n;n.push(i.getRowContainers(e))},_getTreemap:function(t){for(var e,i=[],n=0;n<t.length;n++)for(e=0;e<t[n].length;e++)i.push(t[n][e]);return i},_verifyRatio:function(t,e,i){var n;return 0===t.length||((n=t.slice()).push(e),e=this._calculateRatio(t,i),this._calculateRatio(n,i)<=e)},_calculateRatio:function(t,e){var i=this.min(t),n=this.max(t),t=this.sum(t);return a(d(e,2)*n/d(t,2),d(t,2)/(d(e,2)*i))},_normalize:function(t,e,i){for(var n=e/this.sum(t),o=[],a=0;a<t.length;a++)o[a]=t[a],o[a].targetValue=o[a].targetValue*n;return o}}),_={cls:h,enabled:!0,width:h,height:h,title:h,dataSource:h,readDataSource:!0,type:"squarified",valueTemplate:"{value}",textTemplate:"{title}",colorTemplate:"{color}",colors:["#1E98E4","#FFC500","#5CB85C","#FF2A00","#6D31FF","#00B2A1","#FF8000","#84B3DC"],tooltip:{enabled:!1,template:"{title}: {value}",filter:".sui-treemap-item",delay:80,position:"top"},events:{}},(t=u.extend({init:function(){u.fn.init.apply(this,arguments);var t=this,e=r(t.element),i=t.options,n=i.cls,o=i.dataSource,a=i.dieOnError;"div"!==e.prop("tagName").toLowerCase()?m("shieldTreeMap: Underlying element is not DIV.",a):(e.addClass("sui-treemap "+(n?" "+n:"")),v(i.width)&&e.css("width",i.width),v(i.height)&&e.css("height",i.height),o?(t.dataSource=p.create(o),t._eventNS=n=".shieldTreeMap"+t.getInstanceId(),t.containers=[],t.colorIndex=0,r(l).on("resize"+n,c(t._onWinResize,t)),t.dataSource.on("change"+n,c(t._dsChange,t)),i.readDataSource&&t.dataSource.read(),t.enabled(i.enabled)):(t.destroy(),m("shieldTreemap: dataSource is not defined.",a)))},_dsChange:function(){var t=this,e=t.element;t._create(),t._createTooltip(),t._elWidth=e.width(),t._elHeight=e.height()},_onWinResize:function(t){var e=this;e._onWinResTimeout&&clearTimeout(e._onWinResTimeout),e._onWinResTimeout=setTimeout(c(e._winResized,e),100)},_winResized:function(){var t=this.element;this._elWidth===t.width()&&this._elHeight===t.height()||this.refresh()},_createTooltip:function(){var t=this,e=t.options.tooltip;e.enabled&&(t.tooltip?t.tooltip.refresh(e):t.tooltip=r(t.element).children(".sui-treemap-group").first().shieldTooltip(e).swidget())},_create:function(){var t=this,e=t.element,i=t.dataSource.data,n=t.options,o=y.create(n.type),a=new x(0,0,e.innerWidth(),e.innerHeight());e.empty(),t._prepareData(i),e=t.createGroup(e,a),a=t.createTitle(e,n.title),o.execute(i,a,e,t)},_prepareData:function(t){for(var e=0;e<t.length;e++)t[e].targetValue=this.getItemValue(t[e]),t[e].items&&this._prepareData(t[e].items)},createTitle:function(t,e){var i,n,o,a=this.options.type===w;return"undefined"===e||e===h?new x(t.position().left,t.position().top,t.innerWidth(),t.innerHeight()):(i=r('<div class="sui-treemap-title"></div>').appendTo(t),a&&i.innerHeight(t.outerHeight()),i.append('<div class="sui-treemap-title-inner">'+e.replace(/\s+/," ")+"</div>"),s.ui.Position.Set(i.find(".sui-treemap-title-inner"),i,{source:"center",target:"center"}),e=a?t.position().left+i.outerWidth():t.position().left,n=a?t.position().top:t.position().top+i.outerHeight(),o=a?t.innerWidth()-i.outerWidth():t.innerWidth(),a=a?t.innerHeight():t.innerHeight()-i.outerHeight(),new x(e,n,o,a))},createGroup:function(t,e){return this._createContainer(t,e).addClass("sui-treemap-group sui-treemap-group-"+this.options.type)},createItem:function(t,e){var i=this,n=i.options,o=n.tooltip,n=(n.type,i.getItemText(e.dataItem)),t=i._createContainer(t,e);t.addClass("sui-treemap-item").css("backgroundColor",i._getContentColor(e.dataItem)).on(I,c(i._contentClick,i,e.dataItem)),o.enabled&&t.attr("title",g(o.template,e.dataItem)),i.containers.push(t),t.html(n)},_contentClick:function(t){this._enabled&&this.trigger(I,{title:this.getItemText(t),value:this.getItemValue(t),item:t})},_createContainer:function(t,e){return r("<div/>").appendTo(t).css({left:e.left,top:e.top,width:e.width,height:e.height})},_getContentColor:function(t){var e=this.options.colors;return this._getItemColor(t)||e[this.colorIndex++%e.length]},getItemValue:function(t){return f(g(this.options.valueTemplate,t))},getItemText:function(t){return g(this.options.textTemplate,t)},_getItemColor:function(t){t=g(this.options.colorTemplate,t);return"undefined"!==t&&null!==t?t:h},enabled:function(){var t=this,e=r(t.element),i=[].slice.call(arguments);if(!(0<i.length))return t._enabled;(i=!!i[0])?e.removeAttr(C).removeClass("sui-treemap-disabled"):e.attr(C,C).addClass("sui-treemap-disabled"),t.tooltip&&t.tooltip.enabled(i),t._enabled=i},destroy:function(){var t,e=this,i=e._eventNS;for(r(l).off(i),clearTimeout(e._onWinResTimeout),e._onWinResTimeout=null,e.dataSource&&e.dataSource.off(i),e.tooltip&&(e.tooltip.destroy(),e.tooltip=null),t=0;t<e.containers.length;t++)e.containers[t].off(I);e.containers=null,r(e.element).empty(),u.fn.destroy.call(e)}})).defaults=_,s.ui.plugin("TreeMap",t)}(jQuery,shield,this); -!function(c,e,t){var a,u=e.ui.Widget,s=(e.Class,e.DataSource),h=(Math.min,Math.max,c.proxy),o=c.each,n=c.map,l=e.error,m=e.format,p=e.is.defined,i=e.is.null,f=e.to.int,g="change",S="click";function T(e){return p(e)&&!i(e)&&"undefined"!==e}t={cls:t,width:t,height:t,dataSource:t,readDataSource:!0,title:t,textTemplate:"{text}",hrefTemplate:"{href}",targetTemplate:"{target}",frequencyTemplate:"{frequency}",minSize:90,maxSize:250,events:{}},(a=u.extend({init:function(){u.fn.init.apply(this,arguments);var e,t=this,a=c(t.element),i=t.options,n=i.title,r=i.dieOnError,o=i.dataSource,d=i.cls;"div"!==a.prop("tagName").toLowerCase()?l("shieldTagCloud: Underlying element is not DIV.",r):(e=t._eventNS=".shieldTagCloud"+t.getInstanceId(),a.empty(),n&&a.append('<div class="sui-tagcloud-title">'+n+"</div>"),t._contentEl=c('<div class="sui-tagcloud-content">').appendTo(a),a.addClass("sui-tagcloud"+(d?" "+d:"")),p(i.width)&&a.css("width",i.width),p(i.height)&&a.css("height",i.height),o?(t.dataSource=s.create(o),t.dataSource.on(g+e,h(t._dsChange,t)),i.readDataSource&&t.dataSource.read()):(t.destroy(),l("shieldTagCloud: No dataSource or underlying UL element found.",r)))},_dsChange:function(){this._render()},_render:function(){var t=this,e=t._contentEl,a=t.dataSource.view||[],i=t._getMinMax(a);e.empty().append(n(a,function(e){return t._createItem(e,i[0],i[1])}))},_createItem:function(e,t,a){var i,n,r=this,o=r.options,d=o.minSize,u=o.maxSize,s=c('<div class="sui-tagcloud-item" />'),l=m(o.textTemplate,e);return T(l)&&(T(i=m(o.hrefTemplate,e))?(i=c('<a href="'+i+'" class="sui-tagcloud-link">'+l+"</a>").appendTo(s),T(n=m(o.targetTemplate,e))&&i.attr("target",n)):s.html(l)),i=f(m(o.frequencyTemplate,e)),s.css("font-size",(t<a?(i-t)*(u-d)/(a-t)+d:100)+"%").on(S,h(r._itemClick,r,e)),s},_itemClick:function(e,t){this.trigger(S,{item:e}).isDefaultPrevented()&&t&&t.preventDefault()},_getMinMax:function(e){var a,i=this,n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;return o(e||[],function(e,t){a=f(m(i.options.frequencyTemplate,t)),(!p(r)||r<a)&&(r=a),(!p(n)||a<n)&&(n=a)}),[n,r]},destroy:function(){var e=this,t=e.element,a=e.options.cls;e.dataSource&&e.dataSource.off(g+e._eventNS),t.removeClass("sui-tagcloud"+(a?" "+a:"")).empty(),u.fn.destroy.call(e)}})).defaults=t,e.ui.plugin("TagCloud",a)}(jQuery,shield); -!function(v,e,o,m){var d=e.ui.Widget,c=(e.Class,e.DataSource),a=(e.ui.Position,e.support),f=v.proxy,r=e.error,_=e.format,x=e.is.defined,u=e.is.func,n=e.is.boolean,T=e.is.string,g=e.is.null,i=e.is.integer,p=e.to.int,h="centered",E="click",C="sui-timeline-ds-item",t={cls:m,dataSource:m,readDataSource:!0,layout:h,animation:{enabled:!0,expandDuration:200,collapseDuration:150},positionTemplate:m,iconTemplate:"{icon}",titleTemplate:"{title}",textTemplate:"{text}",collapsedTemplate:"{collapsed}",iconUrlTemplate:"{iconUrl}",iconClsTemplate:"{iconCls}",collapsible:!0,width:m,height:m,events:{}},s=d.extend({init:function(){d.fn.init.apply(this,arguments);var e=this,i=v(e.element),t=e.options,n=t.dieOnError,s=t.dataSource,l=t.cls,a=e._eventNS=".shieldTimeline"+e.getInstanceId();i.empty(),i.addClass("sui-timeline sui-timeline-"+t.layout+(t.collapsible?" sui-timeline-collapsible":"")+(l?" "+l:"")),e._initAxis(i),s?(e.dataSource=c.create(s),v(o).on("resize"+a,f(e._winResize,e)),e.dataSource.on("change"+a,f(e._dsChange,e)),t.readDataSource&&e.dataSource.read()):(e.destroy(),r("shieldTimeline: dataSource option is required.",n))},_initAxis:function(e){var i=this.options;x(i.width)&&e.css("width",i.width),x(i.height)&&e.css("height",i.height),e=v('<div class="sui-timeline-inner"/>').appendTo(e),this._axis=v('<div class="sui-timeline-axis sui-timeline-axis-'+i.layout+'"/>').appendTo(e)},_dsChange:function(){this._render()},_winResize:function(){this._recalcEventWidths()},_recalcEventWidths:function(){var e=this,i=p(v(e.element).innerWidth());i!==e._width&&(e._setEventWidths(i),e._width=i)},_setEventWidths:function(e){var i=this,t=i.options.layout,n=a.scrollbar(),s=v(i._axis).outerWidth(),l=p(t===h?(e-n)/2-s:e-n-s);v(i._axis).children(".sui-timeline-event").each(function(){v(this).outerWidth(l),v(this).hasClass("sui-timeline-event-left")&&i._positionEventLeft(v(this))})},_render:function(){for(var e,i,t,n,s,l,a,o,d=this,c=d.options,r=c.collapsible,u=d.dataSource.view||[],p=u.length,h=0;h<p;h++)e=u[h],i=v('<div class="sui-timeline-event"/>').data(C,e).appendTo(d._axis),n=v('<div class="sui-timeline-event-title">'+_(c.titleTemplate,e)+"</div>").appendTo(i),s=_(c.textTemplate,e),s=x(s)&&!g(s)&&"undefined"!==s&&""!==s?v('<div class="sui-timeline-event-text">'+s+"</div>").appendTo(i):m,d._positionEventElement(i,e,h),a=_(c.iconUrlTemplate,e),T(a)&&"undefined"!==a||(a=m),o=_(c.iconClsTemplate,e),T(o)&&"undefined"!==o||(o=m),(a||o)&&(t=v('<span class="sui-timeline-event-icon'+(r&&x(s)?" sui-timeline-event-icon-collapsible":"")+'"/>').insertBefore(i),l=v('<span class="sui-timeline-event-icon-inner"/>').appendTo(t),a?l.append('<img src="'+a+'"/>'):l.addClass(o)),r&&x(s)&&(i.addClass("sui-timeline-event-collapsible"),n.on(E,f(d._eventTitleClicked,d,i)),(a||o)&&t.on(E,f(d._eventTitleClicked,d,i)),l=_(c.collapsedTemplate,e),(T(l)?"true"===l||"1"===l:!0===l)&&d._collapse(i,!1,!0));d._recalcEventWidths()},_positionEventElement:function(e,i,t){var n,s=this.options,l=s.positionTemplate;switch(s.layout){case h:(u(l)||T(l)?(n=_(l,i,t),T(n)?"undefined"===n?t%2:"true"===n||"1"===n:!!n):t%2)&&this._positionEventLeft(e);break;case"right":this._positionEventLeft(e)}},_positionEventLeft:function(e){e.addClass("sui-timeline-event-left").css("left",-1*v(e).width())},_isExpanded:function(e){return!v(e).hasClass("sui-timeline-event-collapsed")},_getEventItem:function(e){return v(e).data(C)},_expand:function(e,i,t,n){var s=this,l=s.options.animation;s._isExpanded(e)?u(n)&&n.call(s):i&&s.trigger("expand",{element:e,item:s._getEventItem(e)}).isDefaultPrevented()||e.find(".sui-timeline-event-text").first().slideDown(l.enabled&&!t?l.expandDuration:0,function(){e.removeClass("sui-timeline-event-collapsed"),u(n)&&n.call(s)})},_collapse:function(e,i,t,n){var s=this,l=s.options.animation;s._isExpanded(e)?i&&s.trigger("collapse",{element:e,item:s._getEventItem(e)}).isDefaultPrevented()||e.find(".sui-timeline-event-text").first().slideUp(l.enabled&&!t?l.collapseDuration:0,function(){e.addClass("sui-timeline-event-collapsed"),u(n)&&n.call(s)}):u(n)&&n.call(s)},_eventTitleClicked:function(e,i){this._isExpanded(e)?this._collapse(e,!0,!1):this._expand(e,!0,!1)},_getEvent:function(e){return i(e)?v(v(this._axis).children(".sui-timeline-event")[e]):v(e)},expanded:function(){var e=[].slice.call(arguments),i=n(e[0])?e.shift():m,t=this._getEvent(e[0]);if(!x(i))return this._isExpanded(t);i?this._expand(t,!1,!1,e[1]):this._collapse(t,!1,!1,e[1])},expandAll:function(){var e=this;v(e._axis).children(".sui-timeline-event").each(function(){e._expand(v(this),!1,!1)})},collapseAll:function(){var e=this;v(e._axis).children(".sui-timeline-event").each(function(){e._collapse(v(this),!1,!1)})},destroy:function(){var e=this,i=e.element,t=e.options.cls,n=e._eventNS;v(o).off(n),e.dataSource&&e.dataSource.off(n),i.removeClass("sui-timeline"+(t?" "+t:"")).empty(),e._width=null,d.fn.destroy.call(e)}});s.defaults=t,e.ui.plugin("Timeline",s)}(jQuery,shield,this); -!function(w,k,T){var h=k.ui.Widget,u=(k.Class,k.DataSource),o=k.RecursiveDataSource,n=(k.ui.Position,k.Constants.KeyCode),H=k.strid,P=document,D=w.proxy,I=w.each,b=(w.extend,k.error),S=k.format,E=k.is.defined,y=k.is.boolean,L=(k.is.integer,k.is.func),m=k.is.array,g=k.is.object,B=k.is.string,a=k.support.browser,N="role",A="aria-expanded",G="click",K="focus",Q="blur",p="change",q="tabindex",z="disabled",J="false",d="down",M="left",r="checked",_="li",f="ul",O="visibility",X="hidden",Y="visible",R="sui-treeview-list-item",Z="sui-treeview-list-item-idx",F="sui-treeview-list-item-parent",U="sui-treeview-list-item-ds",v="sui-treeview-list-items-ds",V="sui-treeview-list-item-checked",C="sui-treeview-list-item-loaded",c="sui-treeview-item-list-expanded",x="sui-treeview-item-toggle-loading",s="sui-treeview-item-selected",l="sui-treeview-item-active",W="sui-treeview-item-disabled",j="sui-treeview-item",e={cls:T,width:T,minWidth:T,height:T,dataSource:T,readDataSource:!0,animation:{enabled:!0,expandDuration:200,collapseDuration:150},checkboxes:{enabled:!1,children:!1,template:T},dragDrop:!1,dragDropScope:T,textTemplate:"{text}",hrefTemplate:"{href}",expandedTemplate:"{expanded}",checkedTemplate:"{checked}",disabledTemplate:"{disabled}",iconUrlTemplate:"{iconUrl}",iconClsTemplate:"{iconCls}",hasChildrenTemplate:function(e){return e&&(e.items&&0<e.items.length||e.children&&0<e.children.length||e.hasChildren)},events:{}},t=h.extend({init:function(){h.fn.init.apply(this,arguments);var e,i,t,r,n,a=this,s=w(a.element),l=a.options,d=l.dieOnError,c=l.dataSource,o=l.cls;if(a._original=e=w(a.element),a._tagname=t=e.prop("tagName").toLowerCase(),n=a._eventNS=".shieldTreeView"+a.getInstanceId(),a._wrapper=i=e.wrap("<div/>").parent(),i.addClass("sui-treeview"+(o?" "+o:"")),e.hide(),a.element=s=w('<ul class="sui-treeview-list"/>').on(K+n,D(a._focus,a)).on(Q+n,D(a._blur,a)).on("keydown"+n,D(a._keydown,a)),e.after(s),I(["width","minWidth","height","maxHeight"],function(e,t){E(l[t])&&i.css(t,l[t])}),o=e.attr(q),s.attr(q,E(o)?o:"0"),c)a.dataSource=u.create(c);else{if(t!=f)return a.destroy(),void b("shieldTreeView: No dataSource or underlying UL element found.",d);r=function(e){var a=[];return w(e).children(_).each(function(){var e,t=w(this),i=0<t.children(f).length,n={cls:t.attr("data-class"),href:t.attr("data-href")?t.attr("data-href"):t.children().not(f).first().attr("href"),disabled:t.attr("data-disabled")?t.attr("data-disabled"):E(t.attr(z))&&null!==t.attr(z),expanded:t.attr("data-expanded"),checked:t.attr("data-checked"),iconUrl:t.attr("data-icon-url"),iconCls:t.attr("data-icon-cls")};i?((e=t.clone()).children(f).remove(),n.text=e.html()):n.text=t.html(),i&&(n.items=r(t.children(f)[0])),a.push(n)}),a},a.dataSource=u.create({data:e,schema:{parse:r}})}a.dataSource.on(p+n,D(a._dsChange,a)),s.attr(N,"tree"),l.readDataSource&&a.dataSource.read()},refresh:function(e){this.refreshWithElement(this._original,e)},_dsChange:function(){var e=this,t=e.element,i=e.dataSource;e._renderItems(i,t,null,!0,!0,function(){e.trigger("dataBound",{dataSource:i,element:null})})},_destroyItems:function(e){var t=this,i=(w(e).children("ul.sui-treeview-item-list").each(function(){t._destroyItems(w(this))}),w(e).children(".sui-treeview-item-content").find(".sui-treeview-item-text").each(function(){w(this).swidget("Draggable")&&w(this).swidget("Draggable").destroy(),w(this).swidget("Droppable")&&w(this).swidget("Droppable").destroy()}),w(e).children(".sui-treeview-item-content").find(".sui-checkbox").each(function(){w(this).swidget("CheckBox")&&w(this).swidget("CheckBox").destroy()}),w(e).data(v));i&&i.off(t._eventNS),w(e).removeData(),w(e).empty()},_renderItems:function(e,t,i,n,a,r){var s,l,d,c=this,o=c.options.checkboxes,h=e.view,u=(h||[]).length,m=[],g=[];for(c._destroyItems(t),d=0;d<u;d++)(l=(s=c._renderItem(h[d],i,e,d)).listItem).appendTo(t),s.itemExpanded&&m.push(l),s.itemChecked&&g.push(l);if(L(r)&&r(),n)for(d=0;d<m.length;d++)c._expand(m[d],!1,a);if(o.enabled&&o.children)for(d=0;d<g.length;d++)c._updateChecked(g[d])},_renderItem:function(e,t,i,n){var a,r,s,l,d,c,o,h=this,u=h.options,m=u.checkboxes,g=m.template,p=h.getInstanceId(),_=u.dragDropScope,f=t?t.data(R):null,v=e.cls,C=h._hasChildren(e),x=S.call(h,u.textTemplate,e),I=H(),b=S(u.disabledTemplate,e);return b=!!(y(b)&&b||"true"===b||"1"===b||1===b),a=S(u.expandedTemplate,e),a=!!(y(a)&&a||"true"===a||"1"===a||1===a),r=S(u.checkedTemplate,e),r=!!(y(r)&&r||"true"===r||"1"===r||1===r),s=S(u.hrefTemplate,e),B(s)&&"undefined"!==s||(s=T),l=S(u.iconUrlTemplate,e),B(l)&&"undefined"!==l||(l=T),d=S(u.iconClsTemplate,e),B(d)&&"undefined"!==d||(d=T),v=w('<li class="'+j+" sui-unselectable"+(b?" "+W:"")+(E(v)?" "+v:"")+'"/>').data(R,e).data(Z,n).data(F,t).data(U,i),n=w('<span class="sui-treeview-item-text" id="'+I+'">'+(s?'<a href="'+s+'">':"")+x+(s?"</a>":"")+"</span>").on("mousedown",D(h._itemClick,h,v)).on("dblclick",D(h._itemDblClick,h,v)),t=w('<span class="sui-treeview-item-toggle"/>').on(G,D(h._toggleItem,h,v)).append(w('<span class="sui-treeview-item-toggle-collapsed"/>')),C||t.css(O,X),v.attr(N,"treeitem").attr("aria-describedby",I),C&&v.attr(A,J),m.enabled&&(v.data(V,!!r),c=w('<span class="sui-treeview-item-check"/>'),B(g)?c.html(S(g,{item:e,parent:f})):L(g)?g(c,e,f):(i=w('<input type="checkbox"'+(r?' checked="checked"':"")+"/>").appendTo(c),k.ui.CheckBox?w(i).shieldCheckBox({enabled:!b,enableThreeStates:!!m.children,events:{click:D(h._checkboxClick,h,v)}}):i.on(G,D(h._checkboxClick,h,v)))),(l||d)&&(o=w('<span class="sui-treeview-item-icon"/>'),l?o.append('<img src="'+l+'"/>'):o.addClass(d)),v.append(w('<div class="sui-treeview-item-content"/>').append(t,c,n.prepend(o))),v.append(w('<ul class="sui-treeview-list sui-treeview-item-list"/>').attr(N,"group").hide()),u.dragDrop&&!b&&(n.shieldDraggable({scope:E(_)?_:"suiTv"+p,dragCls:"sui-treeview-item-text-dragging",helper:function(){return w(this.element).clone().appendTo(P.body)},events:{start:D(h._dragStart,h,v),stop:D(h._dragStop,h,v)}}),n.shieldDroppable({scope:E(_)?_:"suiTv"+p,hoverCls:"sui-treeview-item-text-dropover",tolerance:{x:"touch",y:"intersect"},events:{over:D(h._dropOver,h,v),out:D(h._dropOut,h,v),drop:D(h._drop,h,v)}})),{listItem:v,itemExpanded:a,itemChecked:r,itemDisabled:b}},_isValidDragDrop:function(e,t){var i;return!!w(e).hasClass("sui-treeview-item-text")&&((i=w(e).parent().parent().parent().parent().children(".sui-treeview-item-content").first().children(".sui-treeview-item-text").first())&&0<i.length&&t[0]===i[0]?t[0]!==i[0]:!(0<w(e).parent().parent().find(t[0]).length))},_dragStart:function(e,t){this.trigger("dragStart",{draggable:t.target.element,element:e,domEvent:t})},_dragStop:function(e,t){this.trigger("dragStop",{draggable:t.target.element,element:e,domEvent:t}),t.preventDefault()},_dropOver:function(e,t){var i=t.draggable,n=t.droppable,a=this._isValidDragDrop(i,n),e={draggable:i,droppable:n,element:e,valid:a,domEvent:t};a&&(e.sourceNode=w(i).closest("."+j)),e.targetNode=w(n).closest("."+j),!(a=this.trigger("droppableOver",e)).isDefaultPrevented()&&a.valid||t.preventDefault()},_dropOut:function(e,t){var i=t.draggable,n=t.droppable,a=this._isValidDragDrop(i,n),e={draggable:i,droppable:n,element:e,valid:a,domEvent:t};a&&(e.sourceNode=w(i).closest("."+j)),e.targetNode=w(n).closest("."+j),this.trigger("droppableOut",e)},_drop:function(e,t){var i=t.draggable,n=t.droppable,a=this._isValidDragDrop(i,n),e={draggable:i,droppable:n,element:e,cancelled:!0,skipAnimation:!!a,valid:a,domEvent:t};a&&(e.sourceNode=w(i).closest("."+j)),e.targetNode=w(n).closest("."+j),a=this.trigger("drop",e),t.cancelled=a.cancelled,t.skipAnimation=a.skipAnimation,a.isDefaultPrevented()&&t.preventDefault()},_hasChildren:function(e){e=S(this.options.hasChildrenTemplate,e);return y(e)&&e||"true"===e||"1"===e||1===e},_isLoaded:function(e){return!0===w(e).data(C)},_isExpanded:function(e){return e.hasClass(c)},_isFullyExpanded:function(e){var t=this.getParent(e);return t?this._isExpanded(e)&&this._isFullyExpanded(t):this._isExpanded(e)},_isDisabled:function(e){return w(e).hasClass(W)},_isSelected:function(e){return w(e).hasClass(s)},_isActive:function(e){return w(e).hasClass(l)},_isFocused:function(){return w(this.element).hasClass("sui-treeview-focus")},_focus:function(e){var t=this,i=t.element;a.ie&&P.activeElement!==w(i)[0]&&w(i).focus(),t._blurTimeout&&(clearTimeout(t._blurTimeout),t._blurTimeout=null),t._isFocused()||(w(t.element).addClass("sui-treeview-focus"),t.trigger(K))},_blur:function(e){var t=this;t._isFocused()&&(t._blurTimeout&&clearTimeout(t._blurTimeout),t._blurTimeout=setTimeout(function(){w(t.element).removeClass("sui-treeview-focus"),t.trigger(Q)},100))},_selectItem:function(e,t,i){var n=this;n._isSelected(e)||i&&n.trigger("select",{element:e,item:e.data(R)}).isDefaultPrevented()||(n._selectedItem&&n._selectedItem.removeClass(s),(n._selectedItem=e).addClass(s),t&&n._activateItem(e,i))},_activateItem:function(e,t){var i=this;i._isActive(e)||(i._activeItem&&i._activeItem.removeClass(l),(i._activeItem=e).addClass(l),t&&i.trigger(p,{element:e,item:e.data(R)}))},_itemClick:function(e,t){a.ie&&setTimeout(D(this._focus,this)),this._selectItem(e,!0,!0)},_itemDblClick:function(e,t){this._selectItem(e,!0,!0),this._toggleItem(e,t)},_getCheckBox:function(e){return e.children(".sui-treeview-item-content").children(".sui-treeview-item-check").find('input[type="checkbox"]').first()},_checkboxClick:function(e){a.ie&&setTimeout(D(this._focus,this)),this._toggleCheck(e,!0)},_toggleCheck:function(e,t){this._setChecked(e,!e.data(V),t)},_setChecked:function(e,t,i){var n=this.options.checkboxes.children,a=this._getCheckBox(e);a&&0<a.length&&(w(a).swidget("CheckBox")?(a=w(a).swidget("CheckBox")).checked(t):t?a.attr(r,r):a.removeAttr(r),e.data(V,t),n&&this._updateChecked(e),i&&this.trigger("check",{element:e,item:e.data(R),checked:t}))},_updateChecked:function(e){var t=e.data(V);this._updateCheckedChildren(e,t),this._updateCheckedParents(e,t)},_updateCheckedChildren:function(e,i){var n=this;w(e).children("ul.sui-treeview-item-list").first().children(_).each(function(){var e=w(this),t=n._getCheckBox(e);w(t).swidget("CheckBox")?w(t).swidget("CheckBox").checked(i):i?t.attr(r,r):t.removeAttr(r),e.data(V,i),n._updateCheckedChildren(e,i)})},_updateCheckedParents:function(e,t){var i=this.getParent(e),n=i?i.data(V):T,a=t;i&&!1!==n&&(w(e).parent().children(_).each(function(){if(w(this).data(V)!==t)return!(a=null)}),n=this._getCheckBox(i),w(n).swidget("CheckBox")?w(n).swidget("CheckBox").checked(a):a?n.attr(r,r):n.removeAttr(r),i.data(V,a),this._updateCheckedParents(i,t))},_toggleItem:function(e,t){var i=this;a.ie&&setTimeout(D(i._focus,i)),i._isDisabled(e)||(i._isExpanded(e)?i._collapse(e,!0):i._expand(e,!0,!1))},_getToggleEl:function(e){return w(e).children(".sui-treeview-item-content").first().children(".sui-treeview-item-toggle").first()},_expand:function(e,t,i,n){var a,r=this,s=r.options.animation,l=e.children("ul.sui-treeview-item-list").first();!l||w(l).length<=0||!r.hasChildren(e)&&l.children(_).length<=0||(r._isExpanded(e)?L(n)&&n.call(r):t&&r.trigger("expand",{element:e,item:e.data(R)}).isDefaultPrevented()||(l.stop(!0,!0),l.hide(),a=r._getToggleEl(e),t=function(){l.slideDown(s.enabled&&!i?s.expandDuration:0,function(){e.addClass(c).attr(A,"true"),a.css(O,Y),w(a).find("span").addClass("sui-treeview-item-toggle-expanded").removeClass("sui-treeview-item-toggle-collapsed"),L(n)&&n.call(r)})},r._isLoaded(e)?t():r._loadItem(e,i,t)))},_loadItem:function(t,i,n){var a,r=this,e=t.data(R),s=t.children("ul.sui-treeview-item-list").first(),l=t.data(U),d=r._getToggleEl(t),c=e.items||e.children;!s||w(s).length<=0||(m(c)||g(c)||c instanceof u?(w(d).addClass(x),a=u.create(c),s.data(v,a),a.on(p+r._eventNS,function(e){w(d).removeClass(x),t.data(C,!0),r._renderItems(this,s,t,!0,i,function(){r.trigger("dataBound",{dataSource:a,element:t}),L(n)&&n.call(r)})}),a.read({parent:e})):l&&l instanceof o?(w(d).addClass(x),a=new o(l.options),s.data(v,a),a.on(p+r._eventNS,function(e){w(d).removeClass(x),t.data(C,!0),r._renderItems(this,s,t,!0,i,function(){r.trigger("dataBound",{dataSource:a,element:t}),L(n)&&n.call(r)})}),a.read({parent:e})):(t.data(C,!0),L(n)&&n.call(r)))},_expandPathSegment:function(e,t,i,n,a){var r,s=this;e.length<n?L(a)&&a.call(s):(r=[].slice.call(e).splice(0,n),r=s.getByPath(r),s._isExpanded(r)?s._expandPathSegment(e,t,i,n+1,a):s._expand(r,t,i,function(){s._expandPathSegment(e,t,i,n+1,a)}))},_expandPath:function(e,t,i,n){this._expandPathSegment(e,t,i,1,n)},_collapse:function(e,t){var i,n=this.options.animation,a=e.children("ul.sui-treeview-item-list").first();!this._isExpanded(e)||!a||w(a).length<=0||t&&this.trigger("collapse",{element:e,item:e.data(R)}).isDefaultPrevented()||(i=this._getToggleEl(e),a.stop(!0,!0),a.slideUp(n.enabled?n.collapseDuration:0,function(){e.removeClass(c).attr(A,J),w(i).find("span").removeClass("sui-treeview-item-toggle-expanded").addClass("sui-treeview-item-toggle-collapsed")}))},_keydown:function(e){var t=this,i=!0;switch(e.keyCode){case n.UP:t._move("up",e);break;case n.DOWN:t._move(d,e);break;case n.LEFT:t._move(M,e);break;case n.RIGHT:t._move("right",e);break;case n.SPACE:t._selectedItem&&t._toggleCheck(t._selectedItem,!0);break;case n.ENTER:t._selectedItem&&t._activateItem(t._selectedItem,!0);break;default:i=!1}i&&e.preventDefault()},_getExpandedItems:function(e){var t=this;return t.element.children("."+j).add(t.element.find("li.sui-treeview-item-list-expanded > ul.sui-treeview-list > li."+j)).filter(function(){var e=t.getParent(w(this));return!e||t._isFullyExpanded(e)}).not("."+W)},_getNextItem:function(e){var t=this._getExpandedItems(),i=w(t).length,e=w(t).index(e);if(e<i-1)return w(w(t).get(e+1))},_getPrevItem:function(e){var t=this._getExpandedItems(),e=w(t).index(e);if(0<e)return w(w(t).get(e-1))},_getPrevParentItem:function(e){e=this.getParent(e);if(e&&0<w(e).length)return this._isDisabled(e)?this._getPrevParentItem(e):e},_move:function(e,t){var i,n=this,a=n._selectedItem;n.getParent(w(a));if(E(a))if("up"===e)i=n._getPrevItem(a);else if(e===d)i=n._getNextItem(a);else if(e===M){if(n._isExpanded(a))return void n._collapse(a,!0,!1);i=n._getPrevParentItem(a)}else{if(!n._isExpanded(a))return void n._expand(a,!0,!1);0<(e=w(a).children("ul.sui-treeview-list").first()).length&&(i=w(e).children("li:not(."+W+")").first())}else i=w(n.element).find(_).first();E(i)&&0<w(i).length&&n._selectItem(i,!1,!0)},_getByPath:function(e,t){var i=e.shift(),n=w(t.children(_)[i]);return 0<e.length?this._getByPath(e,n.children(f)):w(t.children(_)[i])},_getListItem:function(e){return m(e)?w(this.getByPath(e,this.element)):w(e)},getByPath:function(e){return this._getByPath([].slice.call(e),w(this.element))},isLoaded:function(e){return!0===w(this._getListItem(e)).data(C)},hasChildren:function(e){return this._hasChildren(this.getItem(e))},getItem:function(e){return w(this._getListItem(e)).data(R)},getDataSource:function(e){return w(this._getListItem(e)).data(U)},getChildrenDataSource:function(e){e=this._getListItem(e);return this.hasChildren(this.getItem(e))&&this.isLoaded(e)?w(e).children("ul.sui-treeview-item-list").first().data(v):T},getParent:function(e){return w(this._getListItem(e)).data(F)},getDataSourceIndex:function(e){return w(this._getListItem(e)).data(Z)},_getIndex:function(e){e=this._getListItem(e);return w(e).index()},getPath:function(e){for(var t=w(e),i=[];i.unshift(this._getIndex(t)),(t=this.getParent(t))&&0<t.length;);return i},updateIndetermined:function(e){var t=this,e=t._getListItem(e);E(e)?t._updateChecked(w(e)):w(t.element).children(_).each(function(){t._updateChecked(w(this))})},expanded:function(){var e=this,t=[].slice.call(arguments),i=y(t[0])?t.shift():T,n=t[0],a=e._getListItem(n);if(!E(i))return e._isExpanded(a);i?m(n)?e._expandPath([].slice.call(n),!1,!1,t[1]):e._expand(a,!1,!1,t[1]):e._collapse(a,!1)},selected:function(){var e=[].slice.call(arguments);if(!(0<e.length))return this._selectedItem;(e=this._getListItem(e[0]))&&0<e.length&&this._selectItem(e,!0,!1)},unselect:function(){this._selectedItem&&this._selectedItem.removeClass(s+" "+l),this._selectedItem=null},enabled:function(){var e=[].slice.call(arguments),t=y(e[0])?e.shift():T,e=this._getListItem(e[0]);if(e&&!(w(e).length<=0))return E(t)?void(t?e.removeClass(W):e.addClass(W)):!this._isDisabled(e)},checked:function(){var e=[].slice.call(arguments),t=y(e[0])?e.shift():T,e=this._getListItem(e[0]);if(e&&!(w(e).length<=0))return E(t)?void this._setChecked(e,t,!1):e.data(V)},_insertedItem:function(e,t){return e instanceof w?w(e):m(e)?this._getListItem(e):g(e)?this._renderItem(e,t).listItem:void 0},_beforeRemoveChild:function(e){e&&e.children(f).children(_).length<=1&&(w(this._getToggleEl(e)).css(O,X),e.removeClass(c))},_refreshParent:function(e){var t=w(e).parents(_).first();w(e).data(F,t&&0<t.length?t:null)},load:function(e,t){e=this._getListItem(e);e&&0<e.length&&this._loadItem(e,!1,t)},append:function(){var e,t,i,n=this,a=[].slice.call(arguments),r=a[0],s=m(r)||r instanceof w,l=a[1],d=a[2];if(E(l)){if(!((t=n._getListItem(l))&&0<w(t).length))return;i=w(t).children(f).first()}else t=null,i=n.element;(e=n._insertedItem(r,t))&&(s&&n._beforeRemoveChild(n.getParent(e)),!t||n._isExpanded(t)?(e.appendTo(i),n._refreshParent(e),L(d)&&d.call(n,e)):n.hasChildren(t)?n._isExpanded(t)?(e.appendTo(i),n._refreshParent(e),L(d)&&d.call(n,e)):n._expand(t,!1,!1,function(){e.appendTo(i),n._refreshParent(e),L(d)&&d.call(n,e)}):n._isExpanded(t)?(e.appendTo(i),n._refreshParent(e),L(d)&&d.call(n,e)):(w(n._getToggleEl(t)).css(O,Y),t.removeClass(c),e.appendTo(i),n._refreshParent(e),n._expand(t,!1,!1,function(){L(d)&&d.call(n,e)})))},insertBefore:function(){var e=this,t=[].slice.call(arguments),i=t[0],n=m(i)||i instanceof w,t=e._getListItem(t[1]);if(t&&0<t.length&&(i=e._insertedItem(i,e.getParent(t))))return n&&e._beforeRemoveChild(e.getParent(i)),i.insertBefore(t),e._refreshParent(i),i},insertAfter:function(){var e=this,t=[].slice.call(arguments),i=t[0],n=m(i)||i instanceof w,t=e._getListItem(t[1]);if(t&&0<t.length&&(i=e._insertedItem(i,e.getParent(t))))return n&&e._beforeRemoveChild(e.getParent(i)),i.insertAfter(t),e._refreshParent(i),i},remove:function(e){var t=this,i=m(e)||e instanceof w,e=t._getListItem(e);t.getParent(e);return!!(e&&0<e.length)&&(t._destroyItems(w(e).children(f).first()),i&&t._beforeRemoveChild(t.getParent(e)),e.remove(),!0)},destroy:function(){var e=this,t=e.element,i=e._eventNS;e.dataSource&&e.dataSource.off(p+i),e._destroyItems(t),e._blurTimeout&&(clearTimeout(e._blurTimeout),e._blurTimeout=null),w(t).off(i).remove(),e._original.unwrap(),e._original.show(),e._original=e._wrapper=e._selectedItem=e._activeItem=null,h.fn.destroy.call(e)}});t.defaults=e,k.ui.plugin("TreeView",t)}(jQuery,shield); -!function(c,m,l,i){var h=m.ui.Widget,p=(m.Class,m.Constants,m.format),f=document,b=(c.extend,c.map,c.each,c.proxy),w=m.error,_=m.is.boolean,g=m.is.object,z=m.is.defined,r=(m.is.integer,m.to.int,m.to.number,m.support,"resize"),a="scroll",e="overflow",t="center",i={title:"",titleBarButtons:["pin","minimize","maximize","close"],content:i,cls:i,visible:!0,pinned:!1,modal:!1,width:400,height:300,resizable:{maxWidth:i,maxHeight:i,minWidth:200,minHeight:150},draggable:!0,position:i,appendToBody:!1,events:{}},n=h.extend({init:function(){h.fn.init.apply(this,arguments),z(this.initialOptions.titleBarButtons)&&(this.options.titleBarButtons=this.initialOptions.titleBarButtons);var n=this,i=n.options,t=i.cls,e=i.dieOnError,o=i.titleBarButtons,s=i.resizable,l=i.draggable,r=i.content,a=i.position,d=c(n.element),u=!1;"div"!==c(d).prop("tagName").toLowerCase()?w("shieldWindow: Underlying element is not DIV",e):o&&0<o.length&&!m.ui.Button?w("shieldWindow: The titleBarButtons setting requires ShieldUI Button to be loaded",e):(n._eventNS="shieldWindow"+n.getInstanceId(),i.appendToBody?(d.appendTo(f.body),n._parentIsBody=!0):n._parentIsBody="body"==d.parent().prop("tagName").toLowerCase(),n._origHtml=d.html(),d.empty(),d.addClass("sui-window"+(t?" "+t:"")),d.css({width:i.width,height:i.height,position:"absolute"}),n.titleBarEl=c('<div class="sui-window-titlebar"><div class="sui-window-title">'+i.title+'</div><div class="sui-window-icons"></div></div>').appendTo(d),n._initTitleBarButtons(),n.contentEl=c('<div class="sui-window-content"></div>').appendTo(d),n._fixContent(),g(a)?d.css(a):u=!0,s&&(_(s)&&(s={}),n.resizable=new m.ui.Resizable(d,s),n.resizable.on("resized",b(n._fixContent,n))),l&&((l=_(l)?{}:l).handle=n.titleBarEl,n.draggable=new m.ui.Draggable(d,l)),n._hasIframe=!1,r?r.template?r.template.dataUrl?c.ajax({url:r.template.dataUrl,dataType:"json",success:function(i,t,e){n.content(p(r.template.body,i)),n._focusFirst()},error:function(i,t,e){n.content("Error occured while reading URL: "+t+" - "+e)}}):(n.content(p(r.template.body,r.template.data)),n._focusFirst()):r.remote?r.remote.iframe?(n._hasIframe=!0,n.content('<iframe class="sui-window-iframe" src="'+r.remote.url+'" style="border:none; border-width:0px; width:100%; height:100%;"></iframe>'),n._focusFirst()):n.contentEl.load(r.remote.url,function(){n._focusFirst()}):(n.content(n._origHtml),n._focusFirst()):(n.content(n._origHtml),n._focusFirst()),n._minimized=!1,n._maximized=!1,n._destroyed=!1,d.attr("role","dialog").attr("aria-labelledby",(o=i.title,c("<div/>").text(o).html())),n.pinned(!!i.pinned),n.visible(!!i.visible),u&&n.center())},_focusFirst:function(){var i=c(this.contentEl).find(".sui-checkbox:not(.sui-checkbox-disabled), .sui-radiobutton:not(.sui-radiobutton-disabled), .sui-input:not(.sui-input-disabled), .sui-combobox:not(.sui-combobox-disabled), .sui-dropdown:not(.sui-dropdown-disabled), .sui-listbox:not(.sui-listbox-disabled), .sui-switch:not(.sui-switch-disabled), a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]").filter(":visible").first();0<c(i).length&&c(i).focus()},_initTitleBarButtons:function(){var i,t,e,n,o=this,s=o.options,l=s.titleBarButtons,r=s.modal;if(o.titleBarButtons={},l&&0<l.length){for(i=o.titleBarEl.find(".sui-window-icons"),n=0;n<l.length;n++)"pin"!==(e=l[n])&&"minimize"!==e&&"maximize"!==e&&"close"!==e||r&&"close"!==e||(t="pin"==e?"_onPin":"minimize"==e?"_onMinimize":"maximize"==e?"_onMaximize":e,o.titleBarButtons[e]=c('<button type="button"><div class="sui-sprite sui-window-button-icon sui-window-button-icon-'+e+'"></div></button>').appendTo(i).shieldButton({cls:"sui-window-button",events:{click:b(o[t],o,!0)}}).swidget());i.on("mousedown",function(i){return i.preventDefault(),i.stopPropagation(),!1})}},_destroyTitleBarButtons:function(){var i,t=this.titleBarButtons;for(i in t)t.hasOwnProperty(i)&&t[i].destroy();this.titleBarButtons={}},_createModal:function(){var i=this,t=c(i._parentIsBody?l:i.element.parent()),e=c(t).scrollTop(),t=c(t).scrollLeft();i._lockScroll(),i._modal=c('<div class="sui-window-modal"></div>').insertBefore(i.element).css({top:e,left:t})},_closeModal:function(){c(this._modal).remove(),this._unlockScroll()},_lockScroll:function(){var i=this,t=i._scrollParent=i.element.parent();i._scrollTop=c(t).scrollTop(),i._scrollLeft=c(t).scrollLeft(),i._parentOverflow=c(t).css(e),c(t).css(e,"hidden").scrollTop(i._scrollTop).scrollLeft(i._scrollLeft)},_unlockScroll:function(){c(this._scrollParent).css(e,this._parentOverflow).scrollTop(this._scrollTop).scrollLeft(this._scrollLeft)},_fixContent:function(){var i=this;c(i.contentEl).outerWidth(c(i.element).innerWidth()).innerHeight(c(i.element).innerHeight()-c(i.titleBarEl).outerHeight()),i._hasIframe&&c(i.contentEl).find(".sui-window-iframe").width(c(i.contentEl).width()).height(c(i.contentEl).height())},center:function(){var i=c(this.element);m.ui.Position.Set(i,this._parentIsBody?l:i.parent(),{source:t,target:t})},position:function(i){c(this.element).css(i)},getHeight:function(){c(this.element).css("height")},getWidth:function(){c(this.element).css("width")},getPosition:function(){var i=c(this.element);return{left:i.css("left"),top:i.css("top")}},content:function(){var i=c(this.contentEl),t=[].slice.call(arguments);if(!(0<t.length))return i.html();i.empty(),i.append(t[0])},resize:function(i){c(this.element).css(i),this._fixContent()},_scroll:function(i){var t=this,e=c(t.element),n=t._parentIsBody;t._pinned&&e.css({left:t.originalPosition.left+c(n?l:e.parent()).scrollLeft()+"px",top:t.originalPosition.top+c(n?l:e.parent()).scrollTop()+"px"})},_onPin:function(i){this.pinned(!this._pinned,i)},pinned:function(){var i,t=this,e=[].slice.call(arguments),n=c(t.element),o=t._parentIsBody,s=t.titleBarEl,s=0<s.find(".sui-window-button-icon-pin").length?s.find(".sui-window-button-icon-pin"):s.find(".sui-window-button-icon-unpin");if(e.length<=0)return t._pinned;i=!!e[0],t._pinned==i||e[1]&&t.trigger("pin",{pinned:i}).isDefaultPrevented()||(t._pinned=i,s.removeClass("sui-window-button-icon-pin sui-window-button-icon-unpin"),s.addClass(t._pinned?"sui-window-button-icon-pin":"sui-window-button-icon-unpin"),t._pinned?(t.originalPosition=n.position(),c(o?l:n.parent()).on(a+"."+t._eventNS,b(t._scroll,t)),t.draggable&&t.draggable.enabled(!1)):(c(o?l:n.parent()).off(a+"."+t._eventNS),t.origininalPosition=null,t.draggable&&t.draggable.enabled(!0)))},_onMinimize:function(i){this.minimized(!0,i)},minimized:function(){var i,t=this,e=[].slice.call(arguments),n=c(t.element),o=c(t.contentEl),s=t.titleBarEl,l=t.titleBarButtons.minimize;if(e.length<=0)return t._minimized;i=!!e[0],t._minimized==i||e[1]&&t.trigger("minimize",{minimized:i}).isDefaultPrevented()||(t._minimized=i,(e=0<s.find(".sui-window-button-icon-minimize").length?s.find(".sui-window-button-icon-minimize"):s.find(".sui-window-button-icon-unminimize")).removeClass("sui-window-button-icon-minimize sui-window-button-icon-unminimize"),e.addClass(t._minimized?"sui-window-button-icon-unminimize":"sui-window-button-icon-minimize"),i?(t._onMinCurrHeight=n.height(),n.height(s.height()),o.hide(),t.resizable&&t.resizable.enabled(!1)):(n.height(t._onMinCurrHeight),o.show(),t.resizable&&t.resizable.enabled(!0)),l&&l.visible(!i))},_onMaximize:function(i){this._minimized?this.minimized(!1,i):this.maximized(!this._maximized,i)},maximized:function(){var i,t=this,e=[].slice.call(arguments),n=c(t.element),o=t._beforeMaximize,s=c(t.titleBarEl);if(!(0<e.length))return t._maximized;i=!!e[0],e=!!e[1],t._minimized&&t.minimized(!1,!1),t._maximized==i||e&&t.trigger("maximize",{maximized:i}).isDefaultPrevented()||(t._maximized=!!i,(e=0<s.find(".sui-window-button-icon-maximize").length?s.find(".sui-window-button-icon-maximize"):s.find(".sui-window-button-icon-restore")).removeClass("sui-window-button-icon-maximize sui-window-button-icon-restore"),e.addClass(t._maximized?"sui-window-button-icon-restore":"sui-window-button-icon-maximize"),t._maximized?(t._beforeMaximize={top:n.css("top"),left:n.css("left"),width:n.width(),height:n.height()},t.resize({width:"100%",height:c(t._parentIsBody?l:n.parent()).height()}),t._lockScroll(),t.center(),t._parentIsBody&&c(l).on(r+"."+t._eventNS,b(t._onWinResizeMax,t))):(o&&(n.css({top:o.top,left:o.left}),t.resize({width:o.width,height:o.height})),t._unlockScroll(),t._parentIsBody&&(c(l).off(r+"."+t._eventNS),t._winResize=null)))},_onWinResizeMax:function(){c(this.element).height(c(l).height()),this._fixContent()},close:function(i){i&&this.trigger("close").isDefaultPrevented()||this.destroy()},visible:function(){var i=this,t=[].slice.call(arguments);if(!i._destroyed)return 0<t.length&&i.options.modal&&(t[0]?i._createModal():i._closeModal()),h.fn.visible.apply(i,arguments)},destroy:function(){var i=this,t=i.options.cls;i.visible(!1),i._destroyed=!0,i.resizable&&(i.resizable.destroy(),i.resizable=null),i.draggable&&(i.draggable.destroy(),i.draggable=null),i._destroyTitleBarButtons(),i.maximized(!1),i.pinned(!1),c(i.element).removeClass("sui-window"+(t?" "+t:"")),i._origHtml&&(c(i.element).html(i._origHtml),i._origHtml=null),h.fn.destroy.call(i)}});n.defaults=i,m.ui.plugin("Window",n)}(jQuery,shield,this); -!function(_,e,n){var g=e.ui.Widget,m=(e.Class,document),c=_.proxy,a=_.each,f=(_.extend,_.map),o=Math.min,N=Math.max,M=(e.guid,e.iid),j=e.error,z=e.format,p=e.is.defined,h=(e.is.boolean,e.is.integer,e.is.func,e.is.array,e.is.object,e.is.string,e.support.browser,"disabled"),v="multiple",b="change",F="dragover",y="dragleave",I="drop",r="select",L="remove",D="error",P="progress",S="load",l="upload",d="complete",x="POST",C="pending",T="uploading",w="complete",U="removing",E="error",q={pending:"✕",uploading:"⨂",complete:"✕",removing:"⨂",error:"✕"},t="sui-upload",A=t+"-target-input",i=t+"-status",u=t+"-file",B=t+"-xhr",R=t+"-form",k=t+"-iframe",t={cls:n,enabled:!0,async:{enabled:!1,autoUpload:!1,batch:!1,save:{url:n,field:n},remove:{url:n,field:"fileNames",method:x}},multiple:!0,files:{enabled:!0,initial:n,template:"{name} ({size} bytes)"},messages:{drop:"Drop files here to upload",select:"Select files ...",upload:"Upload files"},events:{}},s=g.extend({init:function(){g.fn.init.apply(this,arguments);var e,t,i,a,s,o=this,n=o.options,l=n.dieOnError,r=n.cls,d=n.messages,u=n.files,p=u.enabled,u=u.initial,f=n.async.enabled;o._xhr2support=e=!!(new XMLHttpRequest).upload,o._original=i=_(o.element),"input"!=i.prop("tagName").toLowerCase()||"file"!=i.attr("type").toLowerCase()?j("shieldUpload: Must be initialized from an input with type file.",l):(l=o._eventNS=".shieldUpload"+o.getInstanceId(),i.wrap("<form>").closest("form").get(0).reset(),i.unwrap(),i.removeAttr(h),n.multiple?i.attr(v,v):i.removeAttr(v),o.element=t=i.wrap("<div/>").parent(),t.addClass("sui-upload"+(r?" "+r:"")),o._selectButtonDiv=i.wrap("<div/>").parent().append('<span class="sui-upload-button-text">'+d.select+"</span>").addClass("sui-upload-button"),o._dropFilesDiv=a=o._selectButtonDiv.wrap('<div class="sui-upload-dropfiles"/>').parent(),o._dropText=s=_('<div class="sui-upload-drop">'+d.drop+"</div>").appendTo(a).hide(),p&&(o._fileList=_('<ul class="sui-upload-files"/>').appendTo(t).hide()),o._uploadButtonDiv=_('<button class="sui-upload-button sui-upload-button-upload" type="button">'+d.upload+"</button>").appendTo(t).click(c(o._uploadClicked,o)).hide(),i.on(b+l,c(o._fileSelected,o)),f&&e&&(i.on(I+l,c(o._fileChanged,o)),_(m).on(F+l,function(e){e.stopPropagation(),e.preventDefault(),s.show()}).on(y+l,function(e){e.stopPropagation(),e.preventDefault(),s.hide()}).on(I+l,function(e){e.stopPropagation(),e.preventDefault(),s.hide()}),a.on(F,function(){a.addClass("sui-upload-dropfiles-hover")}).on(y,function(){a.removeClass("sui-upload-dropfiles-hover")}).on(I,c(o._fileChanged,o))),p&&u&&0<u.length&&o._addFiles(u,w),o.enabled(n.enabled))},refresh:function(e){this.refreshWithElement(this._original,e)},_getFiles:function(e){var t=[],i=_(e.target);return e.originalEvent.dataTransfer&&e.originalEvent.dataTransfer.files?t=e.originalEvent.dataTransfer.files:e.target.files?t=e.target.files:(t=_.makeArray(i.prop("files"))).length?!p(t[0].name)&&t[0].fileName&&a(t,function(e,t){t.name=t.fileName,t.size=t.fileSize}):t=(e=i.prop("value"))?[{name:e.replace(/^.*\\/,"")}]:[],t},_getPendingFileItems:function(){return _(this._fileList).children("li.sui-upload-file-"+C)},_getFileInfoList:function(e){return this._toFileInfoList(_(e).data(u))},_toFileInfoList:function(e){var t,i=[];if(this._isFileList(e))for(t=0;t<e.length;t++)i.push(e[t]);else i.push(e);return i},_isSingleFile:function(e){return e&&e.name},_isFileList:function(e){return e.length&&0<e.length},_fileSelected:function(e){var t,i=this,a=i.options,s=a.async.enabled,o=i._xhr2support,n=i._eventNS,l=_(e.target),e=i._getFiles(e);i.trigger(r,{files:i._toFileInfoList(e)}).isDefaultPrevented()||(t=_('<input type="file" name="'+l.attr("name")+'"/>').insertAfter(l).on(b+n,c(i._fileSelected,i)),a.multiple&&t.attr(v,v),s&&o&&t.on(I+n,c(i._fileChanged,i)),l.hide(),i._addFiles(e,C,l))},_fileChanged:function(e){var t=this,i=t._getFiles(e);e.stopPropagation(),e.preventDefault(),t._dropText.hide(),t._dropFilesDiv.removeClass("sui-upload-dropfiles-hover"),t.trigger(r,{files:t._toFileInfoList(i)}).isDefaultPrevented()||t._addFiles(i,C)},_addFiles:function(e,t,i){var a,s=this,o=s.options,n=o.async;if(o.files.enabled){if(n.enabled&&!n.batch||!o.multiple)for(a=0;a<e.length;a++)s._renderFile(e[a],t,i);else s._renderFile(e,t,i);s._afterAddRemoveFiles(),n.autoUpload&&s._uploadAllPending()}},_renderFile:function(e,t,i){var a,s=this,o=s.options,n=o.files.template,l=(s._fileList,s._toFileInfoList(e)),r=[],e=_('<li class="sui-upload-file"/>').data(u,e).appendTo(s._fileList);for(i&&e.data(A,i),a=0;a<l.length;a++)r.push(_('<span class="sui-upload-file-text"/>').append(z(n,l[a]))),a<l.length-1&&r.push(_('<span class="sui-upload-file-text-sep">,</span>'));o.async.enabled&&s._xhr2support?r.push(_('<span class="sui-upload-file-progress"/>')):e.addClass("sui-upload-file-no-progress"),r.push(_('<span class="sui-upload-file-action"/>').on("click",c(s._actionClicked,s,e))),e.append(r),s._setStatus(e,t),t===w&&s._setProgress(e,100)},_afterAddRemoveFiles:function(){var e=this.options.async,t=this._fileList,i=this._uploadButtonDiv;0<t.children("li").length?t.show():t.hide(),0<this._getPendingFileItems().length?e.enabled&&!e.autoUpload&&i.show():i.hide()},_actionClicked:function(e,t){var i=this,a=i._getStatus(e);i._enabled&&(a==T?i._abortUpload(e,t):a==U?i._abortRemove(e,t):i._removeItem(e,t))},_removeItem:function(a,s){var o,n=this,e=(n.options,n.options.async),t=e.remove,i=n._getStatus(a),l=n._getFileInfoList(a),r=a.data(A),d=n._eventNS,u={},p=n.trigger(L,{domEvent:s,status:i,files:l});p.isDefaultPrevented()||(o=function(){_(r)[0]===_(n._original)[0]?_(r).hide().attr(h,h):_(r).off(d).remove(),_(a).off(d).remove(),n._afterAddRemoveFiles()},i==C||i==E?o():i==w&&(e.enabled?(n._setStatus(a,U),u[t.field]=f(l,function(e){return e.name}),_.support.cors=!0,_.ajax({method:t.method,url:t.url,traditional:!0,data:u}).done(function(e,t,i){o()}).fail(function(e,t,i){n.trigger(D,{domEvent:s,operation:L,listItem:a,files:l,jqXHR:e,textStatus:t,errorThrown:i,responseText:i});p.isDefaultPrevented()||n._setStatus(a,E)})):o()))},_abortRemove:function(e,t){},_setStatus:function(e,t){_(e).data(i,t).removeClass("sui-upload-file-pending sui-upload-file-uploading sui-upload-file-complete sui-upload-file-removing sui-upload-file-error").addClass("sui-upload-file-"+t).children(".sui-upload-file-action").first().html(q[t]),this._afterAddRemoveFiles()},_getStatus:function(e){return _(e).data(i)},_uploadAllPending:function(){var e,t,i=this,a=(i.options.async,i._getPendingFileItems()),s=(a||[]).length,o=[];if(!(s<1)){for(t=0;t<s;t++)e=_(a[t]).data(u),i._isSingleFile(e)?o.push(e):i._isFileList(e)&&(o=o.concat(e));if(!i.trigger(l,{files:o}).isDefaultPrevented())for(t=0;t<s;t++)i._startUpload(a[t])}},_startUpload:function(e){var t,i,a,s,o,n,l=this,r=l.options.async.save,d=r.field,u=l._getFileInfoList(e);if(p(d)||(d=_(l._original).attr("name")),l._setProgress(e,0),l._xhr2support){for(i=new FormData,a=new XMLHttpRequest,n=0;n<u.length;n++)i.append(d,u[n]);_(e).data(B,a),a.open(x,r.url),a.upload.addEventListener(P,c(l._onUploadProgress,l,e)),a.upload.addEventListener(S,c(l._onUploadComplete,l,e)),a.upload.addEventListener(D,c(l._onUploadError,l,e)),a.onreadystatechange=function(){4==a.readyState&&200!=a.status&&l._onUploadError(e)},a.send(i)}else(t=_(e).data(A))&&(s="shieldUploadIframe"+M(),o=_('<iframe name="'+s+'" id="'+s+'" class="sui-upload-iframe" width="0" height="0" tabindex="-1"/>').appendTo(m.body),_(o).on(S,c(l._onIframeComplete,l,e)),r=_('<form class="sui-upload-form" method="POST" enctype="multipart/form-data" action="'+r.url+'" target="'+s+'" tabindex="-1"/>').appendTo(m.body).append(t),_(e).data(k,o).data(R,r),r.get(0).submit());l._setStatus(e,T)},_abortUpload:function(e,t){var i,a=this;a._xhr2support?((i=_(e).data(B))&&i.abort(),_(e).removeData(B)):a._cleanupIframeForm(e),a._setStatus(e,C),a._setProgress(e,0),a.trigger("abort",{listItem:e,files:a._getFileInfoList(e)})},_cleanupIframeForm:function(e){var t=_(e).data(k),i=_(e).data(R),a=_(e).data(A);t&&_(t).attr("src","about:blank"),i&&(a&&_(a).prependTo(this._selectButtonDiv),_(i).remove(),_(e).removeData(R)),t&&(_(t).remove(),_(e).removeData(k))},_setProgress:function(e,t){e=_(e).children(".sui-upload-file-progress").first();e&&0<e.length&&e.empty().append(_('<span class="sui-upload-file-progress-inner"/>').css("width",t+"%"))},_onUploadProgress:function(e,t){var i=t.lengthComputable?o(100,N(0,t.loaded/t.total*100)):n;p(i)&&this._setProgress(e,i),this.trigger(P,{domEvent:t,percentage:i,listItem:e,files:this._getFileInfoList(e)})},_onUploadComplete:function(e){this._setStatus(e,w),this._setProgress(e,100),_(e).removeData(B),this.trigger(d,{listItem:e,files:this._getFileInfoList(e)})},_onIframeComplete:function(e,t){var i=this,a=_(e).data(k),s=i._getFileInfoList(e),o="";if(a){try{o=_(a).contents().find("body").html()}catch(e){o=e?e.description||e.message:""}o?i.trigger(D,{domEvent:t,operation:l,listItem:e,files:s,status:n,responseText:o}).isDefaultPrevented()||(i._setStatus(e,E),i._setProgress(e,0)):(i._setStatus(e,w),i._setProgress(e,100),i.trigger(d,{listItem:e,files:s})),i._cleanupIframeForm(e)}},_onUploadError:function(e,t){var i,a,s=this,o=s._getStatus(e),n=_(e).data(B);o!==E&&(n&&(n.readyState,i=n.status,a=n.responseText,n.statusText),_(e).removeData(B),s.trigger(D,{domEvent:t,operation:l,listItem:e,files:s._getFileInfoList(e),status:i,responseText:a}).isDefaultPrevented()||(s._setStatus(e,E),s._setProgress(e,0)))},_uploadClicked:function(e){this._enabled&&this._uploadAllPending()},enabled:function(){var e,t=_(this.element),i=[].slice.call(arguments);if(!(0<i.length))return this._enabled;i=!!i[0],e=t.find('input[type="file"]').filter(":visible"),i?(t.removeAttr(h).removeClass("sui-upload-disabled"),_(e).removeAttr(h)):(t.attr(h,h).addClass("sui-upload-disabled"),_(e).attr(h,h)),this._enabled=i},destroy:function(){var e=this,t=_(e.element),i=_(e._original),a=e._eventNS;_(m).off(a),_(t).find('input[type="file"]').off(a),_(t).find('input[type="file"]').not(i).remove(),e._uploadButtonDiv&&(_(e._uploadButtonDiv).remove(),e._uploadButtonDiv=null),e._dropText&&(_(e._dropText).remove(),e._dropText=null),e._fileList&&(_(e._fileList).remove(),e._fileList=null),_(t).find(".sui-upload-button-text").remove(),_(i).unwrap(),_(i).unwrap(),_(i).unwrap(),e._selectButtonDiv=e._dropFilesDiv=null,_(i).removeAttr(h).show(),g.fn.destroy.call(e)}});s.defaults=t,e.ui.plugin("Upload",s)}(jQuery,shield); -!function(h,d,A,r){function u(e,t,n,i){if(i)try{e.execCommand(t,!1,n)}catch(e){}else e.execCommand(t,!1,n)}var f,n,i,o,e,a,l=d.ui.Widget,t=d.Class,m=(d.Constants.KeyCode,document),c=h.proxy,s=(h.each,h.extend),p=(h.map,h.contains),g=(h.trim,d.error,d.guid),O=d.format,v=d.is.defined,x=(d.is.boolean,d.is.integer,d.is.func),_=(d.is.array,d.is.object,d.is.string),W=d.to.string,y=d.to.int,b=d.support.browser,T="disabled",w="click",S="keyup",C="keydown",E="formatting",k="text-formatting",B="font-and-colors",N="alignment",R="lists",I="links",L="sui-editor",D="styleWithCSS",V="about",P="About",F=function(n,i){var e,o,t,r;function a(e){e?this.range=i.selection.createRange():(this.range=i.body.createTextRange(),this.collapse(!0)),this.init()}function s(){this.selection=i.selection,this.ranges=[],this.init()}!n.getSelection&&i.selection&&(e=null,n.getSelection=function(){return null!=e?e:e=new t},i.createRange=function(){return new o},i.attachEvent("onkeydown",function(){return n.getSelection().setRangeAt(0,new o(!0))}),i.attachEvent("onselectionchange",function(){var e,t;try{e=new o(!0)}catch(e){}if(e)return n.getSelection().setRangeAt(0,e),"INPUT"===(e=i.selection.createRange().parentElement()).tagName||"TEXTAREA"===e.tagName?(t=n.getSelection().getRangeAt(0),e.selectionStart=t.selectionStart,e.selectionEnd=t.selectionEnd,e.selectionEnd):void 0}),o=n.Range=(a.END_TO_END="EndToEnd",a.END_TO_START="EndToStart",a.START_TO_END="StartToEnd",a.START_TO_START="StartToStart",a.prototype.init=function(){var e,t,n,i=this,o=i.range.parentElement();return i.commonAncestorContainer=o,i.collapsed=0===i.compareBoundaryPoints("StartToEnd",i),(n=i.range.duplicate()).moveToElementText(o),e=0<i.range.text.length?0:1,t=r.findLength("StartToStart",n,i.range),t=r.findNodeByPos(o,t,e),i.startContainer=t.el,i.startOffset=t.offset,e=r.findLength("StartToEnd",n,i.range),t=r.findNodeByPos(o,e,1),i.endContainer=t.el,i.endOffset=t.offset,i.selectionStart=r.findLength("StartToStart",n,i.range,i),i.selectionEnd=r.findLength("StartToEnd",n,i.range,i),i.selectionEnd},a.prototype.select=function(){return this.range.select()},a.prototype.setStart=function(e,t){var n,i;if(r.getText(e).length>=t&&0<=t)return i=this.range.duplicate(),3===e.nodeType&&(n=r.findPosFromNode(e),i.moveToElementText(e.parentNode),i.moveStart("character",n+t)),-1===this.range.compareEndPoints("StartToEnd",i)&&this.range.setEndPoint("EndToStart",i),this.range.setEndPoint("StartToStart",i)},a.prototype.setEnd=function(e,t){var n,i;if(r.getText(e).length>=t&&0<=t)return i=this.range.duplicate(),3===e.nodeType&&(n=r.findPosFromNode(e),i.moveToElementText(e.parentNode),i.moveStart("character",n+t)),this.range.setEndPoint("EndToStart",i)},a.prototype.selectNodeContents=function(e){return this.range.moveToElementText(e)},a.prototype.collapse=function(e){return e?this.range.setEndPoint("EndToStart",this.range):this.range.setEndPoint("StartToEnd",this.range)},a.prototype.deleteContents=function(){},a.prototype.insertNode=function(e){e=e.outerHTML||h(i.createElement("div")).append(h(e).clone()).html();this.range.pasteHTML(e)},a.prototype.compareBoundaryPoints=function(e,t){return this.range.compareEndPoints(e,t.range)},a.prototype.cloneRange=function(){var e=new a;return e.range=this.range.duplicate(),e.init(),e},a.prototype.detach=function(){return delete this.range},a.prototype.getBoundingClientRect=function(){var e=this.range.getBoundingClientRect();return{width:e.right-e.left,height:e.bottom-e.top,left:e.left,right:e.right,bottom:e.bottom,top:e.top}},a.prototype.toString=function(){return this.range.text||""},a),s.prototype.init=function(){var e,t,n,i=this;if(i.rangeCount=i.ranges.length,i.rangeCount)return t=i.ranges[0],null==i.prev&&(i.prev=t),n=(0===t.compareBoundaryPoints(o.END_TO_END,i.prev)?(e=(n=["end","start"])[0],n):(e=(n=["start","end"])[0],n))[1],i.anchorNode=t[e+"Container"],i.anchorOffset=t[e+"Offset"],i.focusNode=t[n+"Container"],i.focusOffset=t[n+"Offset"],i.isCollapsed=i.anchorNode===i.focusNode,i.isCollapsed},s.prototype.getRangeAt=function(e){return this.ranges[e]},s.prototype.setRangeAt=function(e,t){return this.prev=this.ranges[e],this.ranges[e]=t,this.init()},s.prototype.removeAllRanges=function(){return this.ranges=[],this.init()},s.prototype.addRange=function(e){var t,n,i,o,r;for(this.ranges.push(e),this.init(),r=[],n=0,i=(o=this.ranges).length;n<i;n++)t=o[n],r.push(t.select());return r},s.prototype.deleteFromDocument=function(){return this.selection.clear()},s.prototype.toString=function(){return this.ranges[0].toString()},t=s,r={convertLineBreaks:function(e){return e.replace(/\r\n/g,"\n")},stripLineBreaks:function(e){return e.replace(/\r\n/g,"")},getText:function(e){return e.innerText||e.nodeValue},findLength:function(e,t,n,i){var o=t.duplicate();switch(e){case"StartToStart":o.setEndPoint("EndToStart",n);break;case"StartToEnd":o.setEndPoint("EndToEnd",n)}return(i?r.convertLineBreaks(o.text):r.stripLineBreaks(o.text)).length},findNodeByPos:function(e,t,n){var u;return(u=function(e,t,n,i){for(var o,r=e.childNodes,a=[],s=0,l=r.length;s<l;s++)if(o=r[s],!i.found)if(3===o.nodeType){if(i.length+o.length+n>t){i.found=!0,i.el=o,i.offset=t-i.length;break}a.push(i.length+=o.length)}else a.push(u(o,t,n,i));return a})(e,t,n=null==n?0:n,t={length:0,el:e,offset:0}),t},findPosFromNode:function(e){var t={pos:0},n=e.parentNode,l=function(e,t,n){for(var i,o=e.childNodes,r=[],a=0,s=o.length;a<s;a++)if(i=o[a],!n.found){if(i===t){n.found=!0;break}3===i.nodeType?r.push(n.pos+=i.length):i.hasChildNodes()?r.push(l(i,t,n)):r.push(void 0)}return r};return l(n,e,t),t.pos}})};(f=t.extend({init:function(e,t){var n=this;n._editor=e,_(t)?a[t]?(n.options=s(!0,{},a[t]),n._default=!0):n.options={name:t}:n.options=s(!0,{},t)},_renderButton:function(e){var t=this,n=t._editor,i=t.options,o=i.name,n=i.tooltip||n.options.messages[o]||"",o=i.cls||(t._default?"sui-editor-toolbar-icon sui-editor-toolbar-icon-"+o.toLowerCase():""),r=s(!0,{cls:"sui-editor-toolbar-item sui-editor-toolbar-button",events:{click:function(e){t.execute(e)}}},i.controlOptions);t._widget=h('<button type="button" title="'+n+'"/>').append(i.text||"<span"+(o?' class="'+o+'"':"")+"> </span>").appendTo(e).shieldButton(r).swidget()},render:function(e){var t=this.options,n=t.template;v(n)?(n=O.call(this._editor,n,t))&&h(n).appendTo(e):this._renderButton(e)},execute:function(e){function t(){r._afterCommand(e,i,n.getState())}var n=this,i=n.options,o=i.exec,r=n._editor;x(o)?o.call(r,i,t):n.executeCommand(t)},executeCommand:function(e){var t=this.options,n=t.styleWithCSS,i=this._editor,o=i.getDoc();i.focus(!0),n&&u(o,D,!0,!0),u(o,t.name,this.getValue()),n&&u(o,D,!1,!0),x(e)&&e.call(this)},getValue:function(){},setValue:function(e){},getState:function(){var e,t,n,i,o=this.options,r=o.name,o=o.styleWithCSS,a=this._editor.getDoc(),s=!0;o&&u(a,D,!0,!0);try{s=a.queryCommandIndeterm(r)}catch(e){}try{e=a.queryCommandEnabled(r)}catch(e){}if(!s)try{t=a.queryCommandState(r)}catch(e){}try{n=a.queryCommandSupported(r)}catch(e){}try{i=a.queryCommandValue(r)}catch(e){}return o&&u(a,D,!1,!0),{enabled:e,state:t,supported:n,value:i}},getWidget:function(){return this._widget},refresh:function(){var e,t=this._widget;this._default&&((e=this.getState()).enabled?(t.visible(!0),this.setValue(e)):t.visible(!1))},destroy:function(){var e=this;e._widget&&x(e._widget.destroy)&&e._widget.destroy(),e._default=e._widget=r}})).getInstance=function(e,t){var n="";return _(t)?a[t]&&(n=a[t].controlType):n=t.controlType,new(n=n||f)(e,t)},d.ui.EditorCommand=f,n=f.extend({}),d.ui.EditorCommand=f,i=n.extend({init:function(e,t){n.fn.init.call(this,e,t),s(!0,this.options,{controlOptions:{toggle:!0}})},getValue:function(){return!!this._widget.checked()},setValue:function(e){this._widget.checked(!!e.state)}}),d.ui.EditorCommandToggleButton=i,o=f.extend({render:function(e){var t=this,n=t._editor,i=t.options,n=i.tooltip||n.options.messages[i.name]||"",i=s(!0,{cls:"sui-editor-toolbar-item sui-editor-toolbar-select",events:{itemclick:function(e){t.execute(e)}}},i.controlOptions);t._widget=h('<select title="'+n+'"/>').appendTo(e).shieldComboBox(i).swidget()},getValue:function(){return this._widget.value()},setValue:function(e){this._widget.value(e.value)}}),t=(d.ui.EditorCommandComboBox=o).extend({init:function(e,t){o.fn.init.call(this,e,t),s(!0,this.options,{controlOptions:{editable:!1}})}}),d.ui.EditorCommandDropDown=t,e=f.extend({render:function(e){var t=this,n=t._editor,i=t.options,o=i.tooltip||n.options.messages[i.name]||"",i=s(!0,{cls:"sui-editor-toolbar-item sui-editor-toolbar-colorpicker",events:{select:function(e){this.hidePalette(),t.execute(e),setTimeout(function(){n.focus()})}}},i.controlOptions);t._widget=h('<input type="color" title="'+o+'"/>').appendTo(e).shieldColorPicker(i).swidget()},getValue:function(){return this._widget.value().hex()},setValue:function(e){this._widget.value(e.value)}}),d.ui.EditorCommandColorPicker=e,a={formatBlock:{name:"formatBlock",group:E,controlType:t,controlOptions:{valueTemplate:"{value}",textTemplate:"{text}",dataSource:{data:[{text:"Paragraph",value:"p"},{text:"Quotation",value:"blockquote"},{text:"Heading 1",value:"h1"},{text:"Heading 2",value:"h2"},{text:"Heading 3",value:"h3"},{text:"Heading 4",value:"h4"},{text:"Heading 5",value:"h5"},{text:"Heading 6",value:"h6"}]}}},removeFormat:{name:"removeFormat",group:E,controlType:n},fontName:{name:"fontName",group:B,styleWithCSS:!0,controlType:t.extend({setValue:function(e){var t,n=this._widget,i=e.value;if(n.value(i),n.selected()<0)for(t=0;t<n.dataSource.view.length;t++)if(n.dataSource.view[t].text==i){n.selected(t);break}n.selected()<0&&n.selected(0)}}),controlOptions:{valueTemplate:"{value}",textTemplate:"{text}",value:"",dataSource:{data:[{text:"Inherited",value:""},{text:"Arial",value:"Arial,Helvetica,sans-serif"},{text:"Courier New",value:'"Courier New",Courier,monospace'},{text:"Georgia",value:"Georgia,serif"},{text:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{text:"Times New Roman",value:'"Times New Roman",Times,serif'},{text:"Verdana",value:"Verdana,Geneva,sans-serif"}]}}},fontSize:{name:"fontSize",group:B,controlType:t.extend({setValue:function(e){this._widget.value(W(e.value)||"")}}),controlOptions:{valueTemplate:"{value}",textTemplate:"{text}",value:"inherit",dataSource:{data:[{text:"Inherited",value:""},{text:"1 (8pt)",value:"1"},{text:"2 (10pt)",value:"2"},{text:"3 (12pt)",value:"3"},{text:"4 (14pt)",value:"4"},{text:"5 (18pt)",value:"5"},{text:"6 (24pt)",value:"6"},{text:"7 (36pt)",value:"7"}]}}},foreColor:{name:"foreColor",group:B,controlType:e,controlOptions:{value:"transparent",palette:"basic",showLetter:!0}},backColor:{name:"backColor",group:B,styleWithCSS:!0,controlType:e,controlOptions:{value:"transparent",palette:"basic"}},bold:{name:"bold",group:k,controlType:i},italic:{name:"italic",group:k,controlType:i},underline:{name:"underline",group:k,controlType:i},strikeThrough:{name:"strikeThrough",group:k,controlType:i},subscript:{name:"subscript",group:k,controlType:i},superscript:{name:"superscript",group:k,controlType:i},justifyLeft:{name:"justifyLeft",group:N,controlType:i.extend({setValue:function(e){this._widget.checked(!!(b.ie?e.value:e.state))}})},justifyCenter:{name:"justifyCenter",group:N,controlType:i.extend({setValue:function(e){this._widget.checked(!!(b.ie?e.value:e.state))}})},justifyRight:{name:"justifyRight",group:N,controlType:i.extend({setValue:function(e){this._widget.checked(!!(b.ie?e.value:e.state))}})},justifyFull:{name:"justifyFull",group:N,controlType:i.extend({setValue:function(e){this._widget.checked(!!(b.ie?e.value:e.state))}})},insertUnorderedList:{name:"insertUnorderedList",group:R,controlType:n},insertOrderedList:{name:"insertOrderedList",group:R,controlType:n},indent:{name:"indent",group:R,controlType:n},outdent:{name:"outdent",group:R,controlType:n},createLink:{name:"createLink",group:I,controlType:n.extend({executeCommand:function(o){var r=this,a=r._editor,s=g(),l=new d.ui.Window(h('<div id="'+s+'"/>'),{cls:"sui-editor-dialog sui-editor-dialog-insertimage",title:"Insert Hyperlink",titleBarButtons:["close"],modal:!0,height:220,content:{template:{body:function(){return[h('<div style="padding:5px; margin-top:10px;"/>').append(h("<label>URL</label>"),h('<input type="text" value="http://" id="url_'+s+'" class="sui-input" style="width:220px;"/>')),h('<div style="padding:5px;"/>').append(h("<label>Tooltip</label>"),h('<input type="text" value="" id="title_'+s+'" class="sui-input" style="width:220px;"/>')),h('<div style="padding:5px;"/>').append(h("<label>New window</label>"),h('<input type="checkbox" id="newwin_'+s+'"/>')),h('<div class="sui-editor-dialog-buttons"/>').append(new d.ui.Button(h("<button>Insert</button>"),{events:{click:function(){a.focus(!0),u(a.getDoc(),"createLink",s);var e=h(a.element).find('a[href="'+s+'"]'),t=h("#url_"+s).val(),n=(h("#text_"+s).val(),h("#title_"+s).val()),i=h("#newwin_"+s).swidget().checked();h(e).attr("href",t),n&&h(e).attr("title",n),i&&h(e).attr("target","_blank"),l.close(),h("#"+s).remove(),x(o)&&o.call(r)}}}).element,new d.ui.Button(h("<button>Cancel</button>"),{events:{click:function(){l.close(),h("#"+s).remove(),x(o)&&o.call(r)}}}).element)]}}},appendToBody:!0,events:{close:function(){h("#"+s).remove(),x(o)&&o.call(r)}}});h("#newwin_"+s).shieldCheckBox()}})},unlink:{name:"unlink",group:I,controlType:n},insertImage:{name:"insertImage",group:"insert-img",controlType:i.extend({_getSelectedImg:function(){var e=this._editor.getSelection(),e=e&&"Range"==e.type?e.anchorNode:null,t=null!=e&&0<h(e).length?(h(e).prop("tagName")+"").toLowerCase():null,n=null;return"img"==t?n=e:"p"==t||"div"==t?(n=h(e).children("img").first()).length<=0&&(n=null):"body"==t&&(n=h(e).find("img").first()).length<=0&&(n=null),n},getState:function(){var e=this._getSelectedImg(),t=i.fn.getState.call(this);return e&&(t.state=!0),t},executeCommand:function(o){var r=this,a=r._editor,s=r._getSelectedImg(),l=g(),u=new d.ui.Window(h('<div id="'+l+'"/>'),{cls:"sui-editor-dialog sui-editor-dialog-insertimage",title:"Insert Image",titleBarButtons:["close"],modal:!0,height:260,content:{template:{body:function(){var e="http://",t="",n="",i="";return s&&0<h(s).length&&(e=h(s).attr("src"),t=h(s).attr("alt"),h(s).attr("width")?n=+h(s).attr("width"):(n=h(s).get(0).style&&h(s).get(0).style.width?h(s).get(0).style.width+"":h(s).css("width")+"",/px/i.test(n)&&(n=y(n))),h(s).attr("height")?i=+h(s).attr("height"):(i=h(s).get(0).style&&h(s).get(0).style.height?h(s).get(0).style.height+"":h(s).css("height")+"",/px/i.test(i)&&(i=y(i)))),[h('<div style="padding:5px; margin-top:10px;"/>').append(h("<label>URL</label>"),h('<input type="text" value="'+e+'" id="url_'+l+'" class="sui-input" style="width:220px;"/>')),h('<div style="padding:5px;"/>').append(h("<label>Alternate text</label>"),h('<input type="text" value="'+t+'" id="alt_'+l+'" class="sui-input" style="width:220px;"/>')),h('<div style="padding:5px;"/>').append(h("<label>Width</label>"),h('<input type="text" value="'+n+'" id="width_'+l+'" class="sui-input" style="width:80px;"/>')),h('<div style="padding:5px;"/>').append(h("<label>Height</label>"),h('<input type="text" value="'+i+'" id="height_'+l+'" class="sui-input" style="width:80px;"/>')),h('<div class="sui-editor-dialog-buttons"/>').append(new d.ui.Button(h("<button>Insert</button>"),{events:{click:function(){var e=h("#alt_"+l).val(),t=h("#width_"+l).val(),n=h("#height_"+l).val(),e='<img src="'+h("#url_"+l).val()+'"'+(e?' alt="'+e+'"':""),i="";/[a-zA-Z]/.test(t)?i+=" width:"+t+";":t&&(e+=' width="'+t+'"'),/[a-zA-Z]/.test(n)?i+=" height:"+n+";":n&&(e+=' height="'+n+'"'),a.paste(e+=(i?' style="'+i+'"':"")+" />"),u.close(),h("#"+l).remove(),x(o)&&o.call(r)}}}).element,new d.ui.Button(h("<button>Cancel</button>"),{events:{click:function(){u.close(),h("#"+l).remove(),x(o)&&o.call(r)}}}).element)]}}},appendToBody:!0,events:{close:function(){h("#"+l).remove(),x(o)&&o.call(r)}}})}})},about:{name:V,group:"view-"+V,tooltip:P,controlType:n.extend({refresh:function(){},executeCommand:function(e){var t=this,n=g(),i=new d.ui.Window(h('<div id="'+n+'"/>'),{cls:"sui-editor-dialog sui-editor-dialog-"+V,title:P,titleBarButtons:["close"],modal:!0,height:170,content:{template:{body:function(){return[h('<div style="text-align:center; margin-top:30px; margin-bottom:20px;"/>').append(h("<div/>").html("Demo version by <a href="http://www.shieldui.com" target="_blank">Shield UI</a>").text()),h('<div class="sui-editor-dialog-buttons"/>').append(new d.ui.Button(h("<button>Close</button>"),{events:{click:function(){i.close(),h("#"+n).remove(),x(e)&&e.call(t)}}}).element)]}}},appendToBody:!0,events:{close:function(){h("#"+n).remove(),x(e)&&e.call(t)}}})}})},viewHtml:{name:"viewHtml",group:"view-html",controlType:n.extend({refresh:function(){},executeCommand:function(e){var t=this,n=t._editor,i=g(),o=function(){h("#"+i+" textarea").outerHeight(h("#"+i+" .sui-window-content").innerHeight()-h("#"+i+" .sui-editor-dialog-buttons").outerHeight()-10)},r=new d.ui.Window(h('<div id="'+i+'"/>'),{cls:"sui-editor-dialog sui-editor-dialog-viewhtml",title:"View HTML",titleBarButtons:["close"],modal:!0,resizable:{events:{resize:o}},content:{template:{body:function(){return[h("<div/>").append(h('<textarea class="sui-input"/>').val(n.value())),h('<div class="sui-editor-dialog-buttons"/>').append(new d.ui.Button(h("<button>Update</button>"),{events:{click:function(){n.value(h("#"+i+" textarea").val()),r.close(),h("#"+i).remove(),x(e)&&e.call(t)}}}).element,new d.ui.Button(h("<button>Cancel</button>"),{events:{click:function(){r.close(),h("#"+i).remove(),x(e)&&e.call(t)}}}).element)]}}},appendToBody:!0,events:{close:function(){h("#"+i).remove(),x(e)&&e.call(t)}}});o()}})}},E={cls:r,enabled:!0,domain:r,height:r,commands:["formatBlock","bold","italic","underline","justifyLeft","justifyCenter","justifyRight","insertUnorderedList","insertOrderedList","createLink","unlink","insertImage"],messages:{formatBlock:"Format",removeFormat:"Remove formatting",fontName:"Font family",fontSize:"Font size",foreColor:"Font color",backColor:"Text highlight color",bold:"Bold",italic:"Italic",underline:"Underline",strikeThrough:"Strikethrough",superscript:"Superscript",subscript:"Subscript",justifyLeft:"Align text left",justifyCenter:"Center text",justifyRight:"Align text right",justifyFull:"Justify",insertUnorderedList:"Insert unordered list",insertOrderedList:"Insert ordered list",indent:"Add indentation",outdent:"Remove indentation",createLink:"Insert hyperlink",unlink:"Remove hyperlink",insertImage:"Insert image",viewHtml:"View HTML"},events:{}},(t=l.extend({init:function(){l.fn.init.apply(this,arguments),v(this.initialOptions.commands)&&(this.options.commands=this.initialOptions.commands);var e,t,n,i=this,o=h(i.element),r=i.options,a=(r.dieOnError,r.cls),s=r.height;i._original=e=h(i.element),i._tagname=t=e.prop("tagName").toLowerCase(),n=i._eventNS=".shieldEditor"+i.getInstanceId(),"textarea"==t?(i._inline=!1,i._wrapper=e.wrap('<div class="'+L+" "+L+"-default"+(a?" "+a:"")+'"/>').parent(),e.hide(),i._iframe=t=h('<iframe class="sui-editor-iframe" frameborder="0"'+(v(s)?' height="'+s+'"':"")+"/>").appendTo(i._wrapper),i.value(e.val(),!0),i.element=o=t.contents().find("body")):(i._inline=!0,o.addClass(L+" "+L+"-inline"+(a?" "+a:"")).attr("autocorrect","off").prop("contentEditable","true")),i._initEvents(),F(i.getWin(),i.getDoc()),i._initToolbar(),h(m).on(w+n,c(i._docClick,i)),i.enabled(r.enabled)},refresh:function(e){this.refreshWithElement(this._original,e)},_isInside:function(e){var t=h(this.element),n=h(this._toolbar);return t.get(0)===e||n.get(0)===e||p(t.get(0),e)||p(n.get(0),e)},_saveSelections:function(){var e,t;if(!this._inline&&(this._savedSelections=[],(e=this.getSelection()).rangeCount))for(t=0;t<e.rangeCount;t++)this._savedSelections.push(e.getRangeAt(t))},_restoreSelections:function(){var e,t,n=this;if(!n._inline){if(n._savedSelections&&0<n._savedSelections.length)for((e=n.getSelection()).removeAllRanges(),t=0;t<n._savedSelections.length;t++)e.addRange(n._savedSelections[t]);n._savedSelections=[]}},_focus:function(e){var t=this,n=h(t.element),i=h(t._toolbar);t._inline&&(i.show(),n.addClass("sui-editor-inline-focus"),t._toolbarMoved||(i.outerWidth(n.outerWidth()),d.ui.Position.Set(i,n,{source:"left bottom",target:"left top"}))),t._restoreSelections(),t.refreshCommands()},_blur:function(e){this._saveSelections(),this._syncValue()},_click:function(e){this.refreshCommands(),this._syncValue()},_docClick:function(e){this._inline&&!this._isInside(e.target)&&this._hideToolbar()},_keydown:function(e){this.trigger(C,{domEvent:e})},_keyup:function(e){this.refreshCommands(),this._syncValue(),this.trigger(S,{domEvent:e})},_syncValue:function(){var e=[].slice.call(arguments);this._inline||(e=0<e.length?e[0]:h(this.getDoc().body).html(),h(this._original).val(e))},_hideToolbar:function(){this._toolbar.hide(),this.element.removeClass("sui-editor-inline-focus")},_initToolbar:function(){var e,t,n,i,o,r,a=this,s=a.options.commands,l=a._inline,u=[],d=[],c={};for(a._toolbar=e=h('<div class="sui-editor-toolbar"/>'),l?(e.addClass("sui-editor-toolbar-inline").appendTo(m.body),e.shieldDraggable().swidget().one("drag",function(){a._toolbarMoved=!0}),a._toolbarMoved=!1):e.prependTo(a._wrapper),r=0;r<s.length;r++)u.push(f.getInstance(a,s[r]));for(u.push(f.getInstance(a,V)),r=0;r<u.length;r++)c[u[r].options.group]||(c[u[r].options.group]=[],d.push(u[r].options.group)),c[u[r].options.group].push(u[r]);for(a._commands=[],r=0;r<d.length;r++)for(var p=d[r],g=0;g<c[p].length;g++)t=c[p][g],o=p&&n===p?i:h('<div class="sui-editor-toolbar-group"/>').appendTo(e),t.render(o),a._commands.push(t),n=p,i=o;l&&e.hide()},_afterCommand:function(e,t,n){this._syncValue(),this.refreshCommands(),this.trigger("execute",{domEvent:e,commandName:t.name,state:n})},refreshCommands:function(){var e,t=this,n=t._commands||[];if(!t._refreshInProgress){for(t.focus(!0),t._refreshInProgress=!0,e=0;e<n.length;e++)n[e].refresh();t._refreshInProgress=!1}},_getWrapper:function(){return this._inline?this.element:this._wrapper},getWin:function(){var e;return this._inline?A:(e=h(this._iframe).get(0)).contentWindow||e.contentDocument},getDoc:function(){var e;return this._inline?m:((e=h(this._iframe).get(0)).contentWindow||e.contentDocument).document},focus:function(e){var t,n=this;e&&!n._refreshInProgress&&(t=n._refreshInProgress=!0),h(n._inline?n.element:n.getDoc().body).focus(),!n._inline&&b.ie&&n._focus(),t&&(n._refreshInProgress=!1)},execute:function(e,t){u(this.getDoc(),e,t)},createRange:function(){return this.getDoc().createRange()},getRange:function(){return this.focus(!0),this.getSelection().getRangeAt(0)},getSelection:function(){return this.getWin().getSelection()},selectRange:function(e){var t=this.getSelection();this.focus(!0),t.removeAllRanges(),t.addRange(e),this.refreshCommands()},paste:function(e){var t,n,i,o=this,r=o.getDoc(),a=o.getRange();for(o.focus(!0),a.deleteContents(),(t=r.createElement("div")).innerHTML=e,n=r.createDocumentFragment();i=t.firstChild;)n.appendChild(i);a.insertNode(n),o._syncValue(),o.refreshCommands()},update:function(){this._syncValue()},_initEvents:function(e){var t=this,n=t._eventNS,i=b.ie;v(e)||(e=t._inline?t.element:i?t.getWin():t.getDoc()),i&&(t.getDoc().body.onbeforedeactivate=null),h(e).off(n).on("focus"+n,c(t._focus,t)).on(w+n,c(t._click,t)).on(C+n,c(t._keydown,t)).on(S+n,c(t._keyup,t)),i?t.getDoc().body.onbeforedeactivate=c(t._blur,t):h(e).on("blur"+n,c(t._blur,t))},_getIframeStyles:function(){return"<style>html,body{margin:0;padding:2px;}p{margin:0 0 0.5em 0;}</style>"},_getIframeScripts:function(){var e=this.options.domain;return e?'<script type="text/javascript">document.domain="'+e+'";<\/script>':""},value:function(){var e=this,t=[].slice.call(arguments),n=e._inline,i=h(e._original);if(!(0<t.length))return(n?i:h(e.getDoc().body)).html();i=t[0],t=t[1],n?h(e.element).html(i):((n=e.getDoc()).open().write('<head><meta charset="utf-8">'+e._getIframeStyles()+e._getIframeScripts()+'</head><body contenteditable="true" autocorrect="off">'+i+"</body>"),n.close(),e.element=e.getDoc().body,e._initEvents(n),t||e._syncValue(i))},hide:function(){h(this._getWrapper()).hide()},show:function(){h(this._getWrapper()).show()},isVisible:function(){return h(this._getWrapper()).is(":visible")},enabled:function(){var e=[].slice.call(arguments);if(!(0<e.length))return this._enabled;(e=!!e[0])?h(this._getWrapper()).removeAttr(T).removeClass("sui-editor-disabled"):h(this._getWrapper()).attr(T,T).addClass("sui-editor-disabled"),this._enabled=e},destroy:function(){var e,t=this,n=t.options.cls,i=t._original,o=t._eventNS;if(h(t.element).off(o),h(m).off(o),t._toolbar){if(t._commands){for(e=0;e<t._commands.length;e++)t._commands[e].destroy();t._commands=r}h(t._toolbar).off(o).remove(),t._toolbar=r}t._inline?h(i).removeAttr("autocorrect").prop("contentEditable","off").removeClass(L+" "+L+"-inline"+(n?" "+n:"")):(h(t._iframe).remove(),h(i).unwrap(),h(i).show()),t._inline=t._iframe=t._wrapper=t._toolbarMoved=t._savedSelections=r,l.fn.destroy.call(t)}})).defaults=E,d.ui.plugin("Editor",t)}(jQuery,shield,this); \ No newline at end of file diff --git a/hyrax/app/assets/javascripts/tree_view.js b/hyrax/app/assets/javascripts/tree_view.js deleted file mode 100644 index a7d7d5db020c533d223d4f6bdc10ae1a3a88257a..0000000000000000000000000000000000000000 --- a/hyrax/app/assets/javascripts/tree_view.js +++ /dev/null @@ -1,3 +0,0 @@ -Blacklight.onLoad(function() { - $('.treeview').shieldTreeView(); -}); \ No newline at end of file diff --git a/hyrax/app/assets/stylesheets/application.css b/hyrax/app/assets/stylesheets/application.css index 1eecde6509fe9ceefdf9cf640fb14a52115db61c..709162d9be2b4055d052885c1941b3a59ea934de 100644 --- a/hyrax/app/assets/stylesheets/application.css +++ b/hyrax/app/assets/stylesheets/application.css @@ -13,6 +13,7 @@ *= require_tree . *= require dataTables/bootstrap/3/jquery.dataTables.bootstrap *= require 'bulkrax/application' - *= require shieldui-all + * Used by blacklight_range_limit + *= require 'blacklight_range_limit' *= require_self - */ +*/ diff --git a/hyrax/app/assets/stylesheets/jstree.scss b/hyrax/app/assets/stylesheets/jstree.scss new file mode 100644 index 0000000000000000000000000000000000000000..d47ba46e403652d3418ee339694052e6550075e6 --- /dev/null +++ b/hyrax/app/assets/stylesheets/jstree.scss @@ -0,0 +1,1106 @@ +/* jsTree default theme */ +.jstree-node, +.jstree-children, +.jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; +} +.jstree-node { + white-space: nowrap; +} +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 4px 0 1px; + margin: 0; + vertical-align: top; +} +.jstree-anchor:focus { + outline: 0; +} +.jstree-anchor, +.jstree-anchor:link, +.jstree-anchor:visited, +.jstree-anchor:hover, +.jstree-anchor:active { + text-decoration: none; + color: inherit; +} +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-ocl { + cursor: pointer; +} +.jstree-leaf > .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.jstree-contextmenu .jstree-anchor { + -webkit-user-select: none; + /* disable selection/Copy of UIWebView */ + -webkit-touch-callout: none; + /* disable the IOS popup when long-press on a link */ + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-no-icons { + margin-left: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context .vakata-contextmenu-disabled > a > i { + filter: grayscale(100%); +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default .jstree-anchor, +.jstree-default .jstree-animated, +.jstree-default .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default .jstree-hovered { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-context { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-clicked { + background: #beebff; + border-radius: 2px; + box-shadow: inset 0 0 1px #999999; +} +.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default .jstree-search { + font-style: italic; + color: #8b0000; + font-weight: bold; +} +.jstree-default .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #e7f4f9; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default > .jstree-wholerow-ul .jstree-hovered, +.jstree-default > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default .jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default .jstree-wholerow-clicked { + background: #beebff; + background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); + background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); +} +.jstree-default .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default .jstree-wholerow { + height: 24px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-image: url(asset_path("jstree/32px.png")); +} +.jstree-default .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default .jstree-last { + background: transparent; +} +.jstree-default .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default > .jstree-no-dots .jstree-node, +.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default .jstree-disabled { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default > .jstree-striped { + background-size: auto 48px; +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(asset_path("jstree/throbber.gif")) center center no-repeat; +} +.jstree-default .jstree-file { + background: url(asset_path("jstree/32px.png")) -100px -68px no-repeat; +} +.jstree-default .jstree-folder { + background: url(asset_path("jstree/32px.png")) -260px -4px no-repeat; +} +.jstree-default > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default .jstree-ok, +#jstree-dnd.jstree-default .jstree-er { + background-image: url(asset_path("jstree/32px.png")); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default .jstree-er { + background-position: -36px -68px; +} +.jstree-default .jstree-ellipsis { + overflow: hidden; +} +.jstree-default .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-small .jstree-wholerow { + height: 18px; +} +.jstree-default-small .jstree-node, +.jstree-default-small .jstree-icon { + background-image: url(asset_path("jstree/32px.png")); +} +.jstree-default-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-small .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-node, +.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-small .jstree-disabled { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(asset_path("jstree/throbber.gif")) center center no-repeat; +} +.jstree-default-small .jstree-file { + background: url(asset_path("jstree/32px.png")) -103px -71px no-repeat; +} +.jstree-default-small .jstree-folder { + background: url(asset_path("jstree/32px.png")) -263px -7px no-repeat; +} +.jstree-default-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-small .jstree-ok, +#jstree-dnd.jstree-default-small .jstree-er { + background-image: url(asset_path("jstree/32px.png")); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-large .jstree-wholerow { + height: 32px; +} +.jstree-default-large .jstree-node, +.jstree-default-large .jstree-icon { + background-image: url(asset_path("jstree/32px.png")); +} +.jstree-default-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-large .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-node, +.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-large .jstree-disabled { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url(asset_path("jstree/throbber.gif")) center center no-repeat; +} +.jstree-default-large .jstree-file { + background: url(asset_path("jstree/32px.png")) -96px -64px no-repeat; +} +.jstree-default-large .jstree-folder { + background: url(asset_path("jstree/32px.png")) -256px 0px no-repeat; +} +.jstree-default-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-large .jstree-ok, +#jstree-dnd.jstree-default-large .jstree-er { + background-image: url(asset_path("jstree/32px.png")); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url(asset_path("jstree/40px.png")); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url(asset_path("jstree/40px.png")); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-responsive .jstree-icon { + background-image: url(asset_path("jstree/40px.png")); + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-responsive .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-open > .jstree-ocl { + background-position: 0 0 !important; + } + .jstree-default-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0 !important; + } + .jstree-default-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-responsive .jstree-checkbox, + .jstree-default-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-responsive .jstree-wholerow { + border-top: 1px solid rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(64, 64, 64, 0.2); + background: #ebebeb; + height: 40px; + } + .jstree-default-responsive .jstree-wholerow-hovered { + background: #e7f4f9; + } + .jstree-default-responsive .jstree-wholerow-clicked { + background: #beebff; + } + .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #666666; + } + .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #666666; + border-top: 0; + } + .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-node > .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-image: image-url("/images/jstree/40px.png"); + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-responsive .jstree-last { + background: transparent; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-responsive .jstree-file { + background: url(asset_path("jstree/40px.png")) 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-folder { + background: url(asset_path("jstree/40px.png")) -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} diff --git a/hyrax/app/assets/stylesheets/rdms.scss b/hyrax/app/assets/stylesheets/rdms.scss index b92c592a42cdbdde6f30411c0406927e7fb05415..8af2d6f1292e0ec6042051406e098b761ef37a62 100644 --- a/hyrax/app/assets/stylesheets/rdms.scss +++ b/hyrax/app/assets/stylesheets/rdms.scss @@ -228,4 +228,12 @@ form .field-wrapper label[required="required"]::after { .controlled_vocabulary .listing .input-group { width: 90%; border-radius: 4px; +} + +.importer-nav-tabs { + li { + a { + padding: 10px !important; + } + } } \ No newline at end of file diff --git a/hyrax/app/assets/stylesheets/shieldui-all.css b/hyrax/app/assets/stylesheets/shieldui-all.css deleted file mode 100644 index dfa024486c3a23bb44aedf1df91149240e18dc69..0000000000000000000000000000000000000000 --- a/hyrax/app/assets/stylesheets/shieldui-all.css +++ /dev/null @@ -1,22 +0,0 @@ -/* Shield UI 1.7.44 Trial Version | Copyright 2013-2022 Shield UI Ltd. | http://www.shieldui.com/eula | Expires on Fri, 06 Jan 2023 03:02:11 GMT */ -.sui-calendar{display:inline-block;width:240px;color:#6d6d6d;background-color:#fff;border:1px solid #c4c4c4;overflow:hidden;font-size:14px;font-family:Helvetica,Arial,sans-serif;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-calendar.sui-hidden{display:none}.sui-calendar.sui-calendar-disabled,.sui-next.sui-calendar-disabled,.sui-prev.sui-calendar-disabled{opacity:.4}.sui-calendar .sui-header{text-align:center;line-height:normal;position:relative;background-color:#fff}.sui-calendar .sui-text{margin-top:.1em;padding-bottom:.4em;width:70%;display:inline-block;height:1.4333em;line-height:1.8333em;cursor:pointer}.sui-calendar .sui-left-arrow{border-color:transparent;border-style:solid;border-width:.4em .5em .4em 0;display:inline-block;border-color:transparent;border-right-color:#6d6d6d}.sui-calendar .sui-right-arrow{border-color:transparent;border-style:solid;border-width:.4em 0 .4em .5em;display:inline-block;border-color:transparent;border-left-color:#6d6d6d}.sui-calendar .sui-next,.sui-calendar .sui-prev{height:1.4333em;width:1.4333em;line-height:1.4333em;display:inline-block;padding-top:.2em;padding-bottom:.2em;margin-top:.1em;cursor:pointer}.sui-calendar .sui-next:hover .sui-right-arrow{border-left-color:#fff}.sui-calendar .sui-prev:hover .sui-left-arrow{border-right-color:#fff}.sui-calendar.sui-calendar-disabled .sui-next:hover .sui-right-arrow,.sui-calendar.sui-read-only .sui-next:hover .sui-right-arrow{border-left-color:#6d6d6d}.sui-calendar.sui-calendar-disabled .sui-prev:hover .sui-left-arrow,.sui-calendar.sui-read-only .sui-prev:hover .sui-left-arrow{border-right-color:#6d6d6d}.sui-calendar .sui-prev{padding-right:.4em;padding-left:.2em}.sui-calendar .sui-next{padding-left:.4em;padding-right:.2em}.sui-calendar .sui-calendar-view{border-collapse:collapse;border-style:none;position:relative;table-layout:fixed;text-align:center;height:11em;float:left;margin:0;padding:0}.sui-calendar .sui-calendar-view .sui-selected{color:#fff;background-color:#197bb5}.sui-calendar .sui-calendar-view .sui-focused{box-shadow:0 0 0 1px #2199e0 inset;background-color:"#d1d4d6\0"}.sui-calendar .sui-footer{text-align:center;padding:.4em;clear:both;cursor:pointer}.sui-calendar .sui-week-header th{border-bottom-style:solid;border-bottom-width:1px;border-color:#2199e0;cursor:default;font-weight:400;padding:.3em .3em .1em .1em}.sui-calendar .sui-hoverable .sui-date:hover,.sui-calendar .sui-hoverable .sui-month:hover,.sui-calendar .sui-hoverable .sui-year:hover,.sui-calendar .sui-hoverable .sui-years:hover{cursor:pointer;color:#fff;background-color:#2199e0}.sui-calendar .sui-calendar-animation{-webkit-transition:all .3s ease-out 0s;-moz-transition:all .3s ease-out 0s;-o-transition:all .3s ease-out 0s;transition:all .3s ease-out 0s}.sui-calendar .sui-scaling{-webkit-animation:scale .5s;animation:scale .5s}.sui-calendar .sui-hoverable .sui-date.sui-no-hover:hover{background-color:transparent;color:inherit;cursor:default}@keyframes scale{from{transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes scale{from{-webkit-transform:scale(0)}to{-webkit-transform:scale(1)}}.sui-calendar .sui-fade-in{position:absolute;opacity:0;-webkit-transition:opacity .6s ease-in-out;-moz-transition:opacity .6s ease-in-out;-ms-transition:opacity .6s ease-in-out;-o-transition:opacity .6s ease-in-out}.sui-calendar.sui-calendar-disabled .sui-footer:hover,.sui-calendar.sui-calendar-disabled .sui-next:hover,.sui-calendar.sui-calendar-disabled .sui-prev:hover,.sui-calendar.sui-calendar-disabled .sui-text:hover,.sui-calendar.sui-read-only .sui-footer:hover,.sui-calendar.sui-read-only .sui-next:hover,.sui-calendar.sui-read-only .sui-prev:hover,.sui-calendar.sui-read-only .sui-text:hover{color:#6d6d6d;background-color:transparent;cursor:default}.sui-calendar .sui-date,.sui-calendar .sui-footer,.sui-calendar .sui-month,.sui-calendar .sui-week-header th,.sui-calendar .sui-year,.sui-calendar .sui-years{color:#6d6d6d}.sui-calendar .sui-footer:hover,.sui-calendar .sui-next:hover,.sui-calendar .sui-prev:hover,.sui-calendar .sui-text:hover{color:#fff;background-color:#2199e0}.sui-calendar .sui-other-month,.sui-calendar .sui-other-year,.sui-calendar .sui-other-years{color:#bababa}.sui-datepicker,.sui-datetimepicker,.sui-monthyearpicker,.sui-timepicker{border-style:solid;border-width:1px;overflow:hidden;padding:0 1.8em 0 0;position:relative;width:9.5em;-moz-box-sizing:border-box;display:inline-block;font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:normal;margin:0;outline:0 none;text-align:left;vertical-align:middle;white-space:nowrap;box-sizing:border-box}.sui-datepicker,.sui-datepicker.sui-disabled:hover,.sui-datetimepicker,.sui-datetimepicker.sui-disabled:hover,.sui-monthyearpicker,.sui-monthyearpicker.sui-disabled:hover,.sui-timepicker,.sui-timepicker.sui-disabled:hover{border-color:#c4c4c4;background-color:#ecedee;color:#6d6d6d}@-moz-document url-prefix(){.sui-datepicker,.sui-datetimepicker,.sui-monthyearpicker,.sui-timepicker{padding:0 1.7em 0 0}}.sui-datetimepicker{padding:0 3.6em 0 0;width:13.3em}.sui-datepicker.sui-no-button,.sui-datetimepicker.sui-no-button,.sui-monthyearpicker.sui-no-button,.sui-timepicker.sui-no-button{border-right:none;padding-right:0}.sui-datepicker.sui-disabled,.sui-datetimepicker.sui-disabled,.sui-monthyearpicker.sui-disabled,.sui-timepicker.sui-disabled{opacity:.4}.sui-datepicker.sui-disabled .sui-icon-wrapper,.sui-datepicker.sui-disabled .sui-picker-input,.sui-datetimepicker.sui-disabled .sui-icon-wrapper,.sui-datetimepicker.sui-disabled .sui-picker-input,.sui-datetimepicker.sui-disabled .sui-time-icon-wrapper,.sui-monthyearpicker.sui-disabled .sui-icon-wrapper,.sui-monthyearpicker.sui-disabled .sui-picker-input,.sui-timepicker.sui-disabled .sui-icon-wrapper,.sui-timepicker.sui-disabled .sui-picker-input{cursor:default}.sui-datepicker .sui-picker-input,.sui-datetimepicker .sui-picker-input,.sui-monthyearpicker .sui-picker-input,.sui-timepicker .sui-picker-input{display:inline-block;width:100%;overflow:hidden;color:#6d6d6d;background-color:#fff;-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;border-color:-moz-use-text-color;border-image:none;border-style:none solid none none;border-width:medium 1px medium medium;border-color:#c4c4c4;margin:0;padding:.3em 0;outline:0 none;text-indent:.3em;text-align:left;vertical-align:middle;white-space:nowrap;-moz-box-sizing:border-box;font-family:inherit;font-size:inherit;font-weight:400;line-height:1}.sui-datetimepicker.sui-ie8{width:14.3em}.sui-datetimepicker.sui-ie8 .sui-picker-input{vertical-align:middle}.sui-datepicker .sui-icon-wrapper,.sui-datetimepicker .sui-time-icon-wrapper,.sui-monthyearpicker .sui-icon-wrapper,.sui-timepicker .sui-icon-wrapper{cursor:pointer;position:absolute;right:0;top:0;width:1.7em;height:100%;line-height:2em;min-height:1.65em;text-align:center;vertical-align:middle}.sui-datetimepicker .sui-icon-wrapper{cursor:pointer;position:absolute;right:1.7em;top:0;width:1.7em;height:100%;line-height:2em;min-height:1.65em;text-align:center;vertical-align:middle}@media all and (min-width:0px){.sui-datepicker .sui-icon-wrapper,.sui-datetimepicker .sui-icon-wrapper,.sui-datetimepicker .sui-time-icon-wrapper,.sui-monthyearpicker .sui-icon-wrapper,.sui-timepicker .sui-icon-wrapper{line-height:0}}.sui-datepicker .sui-calendar-icon,.sui-datetimepicker .sui-calendar-icon,.sui-datetimepicker .sui-time-icon,.sui-monthyearpicker .sui-calendar-icon,.sui-timepicker .sui-calendar-icon{display:inline-block;font-size:0}.sui-datepicker .sui-calendar-icon,.sui-datepicker.sui-disabled:hover .sui-calendar-icon,.sui-datetimepicker .sui-calendar-icon,.sui-datetimepicker.sui-disabled:hover .sui-calendar-icon,.sui-monthyearpicker .sui-calendar-icon,.sui-monthyearpicker.sui-disabled:hover .sui-calendar-icon{background-position:-16px -16px}.sui-datetimepicker .sui-time-icon,.sui-datetimepicker.sui-disabled:hover .sui-time-icon,.sui-timepicker .sui-calendar-icon,.sui-timepicker.sui-disabled:hover .sui-calendar-icon{background-position:-32px -16px}.sui-datepicker:hover,.sui-datetimepicker:hover,.sui-monthyearpicker:hover,.sui-timepicker:hover{background-color:#197bb5}.sui-datepicker.sui-datepicker-focus,.sui-datetimepicker.sui-datetimepicker-focus,.sui-monthyearpicker.sui-monthyearpicker-focus,.sui-timepicker.sui-timepicker-focus{border-color:#2199e0}.sui-datepicker:hover .sui-calendar-icon,.sui-datetimepicker:hover .sui-calendar-icon,.sui-monthyearpicker:hover .sui-calendar-icon{background-position:-16px 0}.sui-datetimepicker:hover .sui-time-icon,.sui-timepicker:hover .sui-calendar-icon{background-position:-32px 0}@-moz-document url-prefix(){.sui-datepicker .sui-calendar-icon,.sui-datetimepicker .sui-calendar-icon,.sui-datetimepicker .sui-time-icon,.sui-monthyearpicker .sui-calendar-icon,.sui-timepicker .sui-calendar-icon{line-height:1px}.sui-datepicker .sui-picker-input,.sui-datetimepicker .sui-picker-input,.sui-monthyearpicker .sui-picker-input,.sui-timepicker .sui-picker-input{padding:.45em 0}}.sui-datepicker.sui-hidden,.sui-datetimepicker.sui-hidden,.sui-monthyearpicker.sui-hidden,.sui-timepicker.sui-hidden{display:none} -.shield-chart{position:relative}.shield-buttons{position:absolute;top:3px;right:5px}.shield-chart-button{width:24px;height:24px;background:0 0;border:none;cursor:pointer;text-align:center;vertical-align:middle;padding:0}.shield-chart-button:active,.shield-chart-button:hover{background-color:#197bb5}.shield-chart-button .shield-export-button-img,.shield-chart-button .shield-print-button-img{display:inline-block;vertical-align:middle}.shield-chart-button .shield-print-button-img{background-position:-176px -16px}.shield-chart-button .shield-export-button-img{background-position:-192px -16px}.shield-chart-button:active .shield-print-button-img,.shield-chart-button:hover .shield-print-button-img{background-position:-176px 0}.shield-chart-button:active .shield-export-button-img,.shield-chart-button:hover .shield-export-button-img{background-position:-192px 0}.shield-lightbox{z-index:100}.shield-lightbox-mask{position:absolute;background-color:#919191;opacity:.6;width:100%;height:100%;left:0;top:0;z-index:110}.shield-lightbox-imagebox{position:absolute;z-index:120}.shield-lightbox-imagebox img{border:1px solid #2199e0;background-color:#197bb5}.shield-lightbox p{position:absolute;top:100%;font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:700;color:#fff;background-color:#197bb5;border:2px solid #2199e0;padding:3px 8px;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;box-shadow:0 0 7px #919191}.shield-chart .shield-tooltip{color:#000;background-color:rgba(255,255,255,.95);font-family:Segoe UI,Tahoma,Verdana,sans-serif;font-size:12px;border:1px solid #c4c4c4;cursor:default;display:none;position:absolute;top:50px;left:50px;-webkit-transition:left .3s ease-out,top .3s ease-out;-moz-transition:left .3s ease-out,top .3s ease-out;transition:left .3s ease-out,top .3s ease-out;opacity:.95}.shield-chart .shield-tooltip-header{padding:4px 3px 0 5px;font-size:10px}.shield-chart .shield-tooltip-value{padding:1px 5px 3px}.ie7 .shield-tooltip{background-color:#fff} -.sui-colorpicker-basic-palette .sui-palette-tile{float:left}.sui-colorpicker-basic-palette .sui-palette-tile:hover{opacity:.8;cursor:pointer}.sui-colorpicker-basic-palette .sui-palette-tile-selected{z-index:100;background:0 0;box-shadow:0 1px 4px #000,inset 0 0 3px #fff;position:relative}.sui-colorpicker-basic-palette .sui-palette-tile-selected:hover{opacity:1;cursor:default}.sui-colorpicker .sui-b-text,.sui-colorpicker .sui-g-text,.sui-colorpicker .sui-r-text{color:#6d6d6d;padding:6px;vertical-align:middle}.sui-colorpicker .sui-b-input,.sui-colorpicker .sui-g-input,.sui-colorpicker .sui-r-input{width:45px;margin-left:.6em;margin-right:.6em}.sui-colorpicker{font-family:Helvetica,Arial,sans-serif;font-size:14px;border:1px solid #c4c4c4;display:inline-block;width:276px;background-color:#ecedee}.sui-colorpicker .extras{float:left;margin:.5em;margin-top:1.1em;margin-left:1.2em}.sui-colorpicker .extras .currentColorContainer{overflow:hidden}.sui-colorpicker .sui-hex-wrapper{float:left;width:276px;height:36px}.sui-colorpicker.sui-hsl .sui-hex-wrapper{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABlBMVEVmZmaZmZmoZ+Z2AAAAHUlEQVR4AWOAAUYoQOePEAUj3v9oYDQ9gMBoegAAJFwCAbLaTIMAAAAASUVORK5CYII=)}.sui-colorpicker .sui-color-div{width:80px;height:36px;float:left}.sui-colorpicker .sui-hex-input,.sui-colorpicker .sui-hex-wrapper .sui-alpha-input{height:35px;border:none;padding:0;width:181px;padding-left:15px;outline-width:0;color:#6d6d6d;border-color:#c4c4c4;background-color:#ecedee}.sui-colorpicker .sui-hex-wrapper .sui-alpha-input{height:36px}.sui-colorpicker .sui-color-palette{float:left}.sui-colorpicker .sui-color-palette,.sui-colorpicker .sui-color-palette .bg{width:240px;height:240px}.sui-colorpicker .sui-color-scale,.sui-colorpicker .sui-color-scale .bg{height:239px}.sui-colorpicker .sui-color-scale,.sui-colorpicker .sui-color-scale .bg,.sui-colorpicker .sui-color-scale .pointer .shape{width:20px}.sui-colorpicker .sui-color-palette .bg{position:absolute}.sui-colorpicker .sui-color-palette .pointer{position:relative;z-index:2;width:8px}.sui-colorpicker .sui-color-palette .pointer .shape{position:absolute}.sui-colorpicker .sui-color-palette .pointer .shape1{margin-left:-7px;margin-top:-7px;width:10px;height:10px;border:2px solid #000;-moz-border-radius:7px;border-radius:7px}.sui-colorpicker .sui-color-palette .pointer .shape2{margin-left:-6px;margin-top:-6px;width:8px;height:8px;border:2px solid #fff;-moz-border-radius:6px;border-radius:6px}.sui-colorpicker .sui-color-scale{float:left;margin-left:.5em}.sui-colorpicker .sui-color-scale .pointer{position:relative;z-index:2}.sui-colorpicker .sui-color-scale .pointer .shape{position:absolute;margin-left:-1px;margin-top:-4px;height:5px;border:2px solid #000}.sui-colorpicker .sui-color-scale .bg{background:-moz-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(66%,#00f),color-stop(83%,#f0f),color-stop(100%,red));background:-webkit-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%);background:-o-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%);background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%)}.sui-colorpicker .sui-color-palette .bg1{z-index:0;background:-moz-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,#fff),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,#fff 0,rgba(255,255,255,0) 100%);background:linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%)}.sui-colorpicker .sui-color-palette .bg2{z-index:1;background:-moz-linear-gradient(top,rgba(0,0,0,0) 0,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),color-stop(100%,#000));background:-webkit-linear-gradient(top,rgba(0,0,0,0) 0,#000 100%);background:-o-linear-gradient(top,rgba(0,0,0,0) 0,#000 100%);background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 100%)}.sui-hsl .sui-color-palette .bg1{background:-moz-linear-gradient(left,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%);background:-webkit-gradient(linear,left top,right top,color-stop(0,red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(66%,#00f),color-stop(83%,#f0f),color-stop(100%,red));background:-webkit-linear-gradient(left,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%);background:-o-linear-gradient(left,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%);background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 66%,#f0f 83%,red 100%)}.sui-hsl .sui-color-palette .bg2{background:-moz-linear-gradient(top,rgba(0,0,0,0) 0,#7f7f7f 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),color-stop(100%,#7f7f7f));background:-webkit-linear-gradient(top,rgba(0,0,0,0) 0,#7f7f7f 100%);background:-o-linear-gradient(top,rgba(0,0,0,0) 0,#7f7f7f 100%);background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#7f7f7f 100%)}.sui-hsl .sui-color-scale .bg{z-index:1;background:-moz-linear-gradient(top,#fff 0,rgba(0,0,0,0) 50%,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(50%,rgba(0,0,0,0)),color-stop(100%,#000));background:-webkit-linear-gradient(top,#fff 0,rgba(0,0,0,0),#000 100%);background:-o-linear-gradient(top,#fff 0,rgba(0,0,0,0) 50%,#000 100%);background:linear-gradient(to bottom,#fff 0,rgba(0,0,0,0) 50%,#000 100%)}.sui-hsl .alpha .bg{z-index:1;background:-moz-linear-gradient(top,#fff 0,rgba(0,0,0,0) 100%,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,rgba(0,0,0,0)),color-stop(100%,#000));background:-webkit-linear-gradient(top,#fff 0,rgba(0,0,0,0),#000 100%);background:-o-linear-gradient(top,#fff 0,rgba(0,0,0,0) 100%,#000 100%);background:linear-gradient(to bottom,#fff 0,rgba(0,0,0,0) 100%,#000 100%)}.sui-colorpicker.sui-hsl{width:304px}.sui-hsl .sui-color-scale.alpha{margin:0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABlBMVEVmZmaZmZmoZ+Z2AAAAHUlEQVR4AWOAAUYoQOePEAUj3v9oYDQ9gMBoegAAJFwCAbLaTIMAAAAASUVORK5CYII=)}.sui-colorpicker .sui-transparent-slider{margin-left:.5em;float:left}.sui-colorpicker .sui-color-scale .bg{border:1px solid #c4c4c4}.sui-colorpicker .sui-buttons-wrapper{float:left;width:100%;text-align:center}.sui-colorpicker .sui-buttons-wrapper .sui-apply{margin-top:.8em;margin-right:.8em;margin-bottom:.8em}.sui-colorpicker.sui-colorpicker-disabled{opacity:.4}.sui-colorpicker-basic-palette.sui-colorpicker-disabled .sui-palette-tile:hover{opacity:1;cursor:default}.sui-color-picker-dropdown{background-color:#ecedee;border-color:#c4c4c4;border-style:solid;border-width:1px;color:#6d6d6d;overflow:hidden;padding:0 1.8em 0 0;position:relative;width:4em;box-sizing:border-box;display:inline-block;font-family:Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:normal;margin:0;outline:0 none;text-align:left;vertical-align:middle;white-space:nowrap}.sui-color-picker-dropdown.sui-colorpicker-disabled{opacity:.4}.sui-color-picker-dropdown:hover.sui-colorpicker-disabled{background-color:#ecedee;cursor:default}.sui-color-picker-dropdown:hover.sui-colorpicker-disabled .sui-caret{border-top-color:#c4c4c4}.sui-color-picker-dropdown:hover{background-color:#2199e0}.sui-color-picker-dropdown:hover .sui-caret{border-top-color:#fff}.sui-color-picker-dropdown .sui-caret-container{cursor:pointer;padding:.3em 0;position:absolute;right:0;text-align:center;top:0;vertical-align:middle;width:1.7em}.sui-color-picker-dropdown .sui-color-cell{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;border-color:#c4c4c4;border-image:none;border-style:none solid none none;border-width:0 1px 0 0;overflow:hidden;padding:.3em 0;text-indent:.3em;vertical-align:top;width:100%;box-sizing:border-box;display:inline-block;font-weight:400;line-height:normal;margin:0;outline:0 none;text-align:left;vertical-align:middle;white-space:nowrap}.sui-color-picker-dropdown .sui-caret{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-width:.4em .4em .2em;border-style:solid;border-color:transparent;border-top-color:#6d6d6d;vertical-align:middle}.sui-color-picker-dropdown .sui-tool-letter{position:relative;display:inline-block;line-height:0;left:-2px;color:#6d6d6d}.sui-color-picker-dropdown:hover .sui-tool-letter{color:#fff}.sui-color-picker-dropdown .sui-selected-color{height:3px;width:17px;position:absolute;left:0;margin-top:6px}.sui-colorpicker .rgbInputs{width:3.5em;height:1.7em} -.sui-unselectable{user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-sprite{background-image:url(../img/shieldui-sprite.png);background-repeat:no-repeat;width:16px;height:16px}.sui-resizable{position:relative}.sui-resizable-handle{position:absolute}.sui-resizable-dir-e{cursor:ew-resize}.sui-resizable-dir-w{cursor:ew-resize}.sui-resizable-dir-n{cursor:ns-resize}.sui-resizable-dir-s{cursor:ns-resize}.sui-resizable-dir-se{cursor:nwse-resize}.sui-resizable-dir-sw{cursor:nesw-resize}.sui-resizable-dir-ne{cursor:nesw-resize}.sui-resizable-dir-nw{cursor:nwse-resize}.sui-resizable-disabled .sui-resizable-dir-e,.sui-resizable-disabled .sui-resizable-dir-n,.sui-resizable-disabled .sui-resizable-dir-ne,.sui-resizable-disabled .sui-resizable-dir-nw,.sui-resizable-disabled .sui-resizable-dir-s,.sui-resizable-disabled .sui-resizable-dir-se,.sui-resizable-disabled .sui-resizable-dir-sw,.sui-resizable-disabled .sui-resizable-dir-w{cursor:default}.sui-draggable-dragging{cursor:move}.sui-draggable-disabled,.sui-draggable-dragging.sui-draggable-disabled{cursor:default} -.sui-editor{position:relative;color:#6d6d6d;background-color:#fff;border:solid 1px #c4c4c4;outline:0;font-family:Helvetica,Arial,sans-serif;font-size:14px;line-height:normal;text-align:left}.sui-editor-default{display:block;padding:0;overflow:hidden}.sui-editor-inline{display:inline-block;padding:1em;overflow:auto;border:solid 1px transparent}.sui-editor-inline-focus{border:solid 1px #c4c4c4}.sui-editor-iframe{width:100%}.sui-editor-toolbar{display:block;text-align:left;padding:3px 4px;background-color:#fff}.sui-editor-toolbar-inline{position:absolute;border:solid 1px #c4c4c4}.sui-editor-default .sui-editor-toolbar{border-bottom:solid 1px #c4c4c4}.sui-editor-toolbar .sui-editor-toolbar-group{display:inline-block;margin:3px}.sui-editor-toolbar .sui-editor-toolbar-item{display:inline-block;margin-left:-1px;margin-top:1px;margin-bottom:1px}.sui-editor-toolbar .sui-editor-toolbar-button{padding:.3em;text-align:center}.sui-editor-toolbar .sui-editor-toolbar-button.sui-button-checked:hover,.sui-editor-toolbar .sui-editor-toolbar-button:hover{border-color:#2199e0}.sui-editor-toolbar .sui-editor-toolbar-button.sui-button-checked{border-color:#197bb5}.sui-editor-toolbar .sui-editor-toolbar-select{margin-right:3px}.sui-editor-toolbar .sui-editor-toolbar-colorpicker{margin-right:3px}.sui-editor-toolbar .sui-editor-toolbar-colorpicker:last-child,.sui-editor-toolbar .sui-editor-toolbar-select:last-child{margin-right:0}.sui-editor-toolbar-icon{display:inline-block;width:16px;height:16px;background-image:url("../img/editor.png");background-repeat:no-repeat}.sui-editor-toolbar-icon-bold{background-position:0 -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-bold,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-bold{background-position:0 0}.sui-editor-toolbar-icon-italic{background-position:-16px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-italic,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-italic{background-position:-16px 0}.sui-editor-toolbar-icon-underline{background-position:-32px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-underline,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-underline{background-position:-32px 0}.sui-editor-toolbar-icon-strikethrough{background-position:-48px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-strikethrough,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-strikethrough{background-position:-48px 0}.sui-editor-toolbar-icon-subscript{background-position:-64px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-subscript,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-subscript{background-position:-64px 0}.sui-editor-toolbar-icon-superscript{background-position:-80px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-superscript,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-superscript{background-position:-80px 0}.sui-editor-toolbar-icon-justifyleft{background-position:-96px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-justifyleft,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-justifyleft{background-position:-96px 0}.sui-editor-toolbar-icon-justifycenter{background-position:-112px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-justifycenter,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-justifycenter{background-position:-112px 0}.sui-editor-toolbar-icon-justifyright{background-position:-128px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-justifyright,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-justifyright{background-position:-128px 0}.sui-editor-toolbar-icon-justifyfull{background-position:-144px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-justifyfull,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-justifyfull{background-position:-144px 0}.sui-editor-toolbar-icon-table{background-position:-160px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-table,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-table{background-position:-160px 0}.sui-editor-toolbar-icon-insertunorderedlist{background-position:-176px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-insertunorderedlist,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-insertunorderedlist{background-position:-176px 0}.sui-editor-toolbar-icon-insertorderedlist{background-position:-192px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-insertorderedlist,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-insertorderedlist{background-position:-192px 0}.sui-editor-toolbar-icon-outdent{background-position:-224px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-outdent,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-outdent{background-position:-224px 0}.sui-editor-toolbar-icon-indent{background-position:-240px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-indent,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-indent{background-position:-240px 0}.sui-editor-toolbar-icon-insertimage{background-position:-256px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-insertimage,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-insertimage{background-position:-256px 0}.sui-editor-toolbar-icon-createlink{background-position:-272px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-createlink,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-createlink{background-position:-272px 0}.sui-editor-toolbar-icon-unlink{background-position:-288px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-unlink,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-unlink{background-position:-288px 0}.sui-editor-toolbar-icon-viewhtml{background-position:-400px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-viewhtml,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-viewhtml{background-position:-400px 0}.sui-editor-toolbar-icon-removeformat{background-position:-416px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-removeformat,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-removeformat{background-position:-416px 0}.sui-editor-toolbar-icon-about{background-position:-432px -16px}.sui-editor-toolbar-button.sui-button-checked .sui-editor-toolbar-icon-about,.sui-editor-toolbar-button:hover .sui-editor-toolbar-icon-about{background-position:-432px 0}.sui-editor-dialog-buttons{text-align:center;padding-top:20px;padding-bottom:10px}.sui-editor-dialog-buttons .sui-button{width:80px;margin-right:5px}.sui-editor-dialog-viewhtml .sui-window-content{overflow:hidden}.sui-editor-dialog-viewhtml textarea{display:block;width:99%;text-align:left;white-space:'pre-line';resize:none}.sui-editor-dialog-about .sui-window-content{overflow:hidden}.sui-editor-dialog-about a{color:#6d6d6d}.sui-editor-dialog-insertimage .sui-window-content{overflow:hidden}.sui-editor-dialog-insertimage label{display:inline-block;width:100px;text-align:right;margin-right:20px;vertical-align:middle}.sui-editor-dialog-insertimage input{vertical-align:middle}.sui-editor-disabled{pointer-events:none;cursor:default;opacity:.4} -.sui-grid-core{border-collapse:collapse;border-style:none solid solid;border-width:1px;height:auto;outline:0 none;font-family:Helvetica,Arial,sans-serif;font-size:14px}.sui-grid-core .sui-gridheader{background-attachment:scroll;background-position:0 0;background-repeat:repeat-x;overflow:hidden}.sui-grid-core .sui-table{border:0 none;table-layout:fixed;width:100%;border-spacing:0;border-collapse:collapse;empty-cells:show;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-grid .sui-collapse,.sui-grid .sui-group-panel,.sui-grid-core .sui-expand,.sui-grid-core .sui-non-selectable,.sui-grid-core .sui-selectable{user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-grid-core .sui-table-ie7{border:0 none;table-layout:fixed;border-spacing:0;empty-cells:show}.sui-grid-core .sui-hide{display:none}.sui-grid-core .sui-gridcontent{outline:medium none;overflow:hidden}.sui-grid-core .sui-scroller{overflow:hidden}.sui-grid-core .sui-scroller .sui-content{overflow:auto}.sui-grid-core .sui-scroller .sui-virtualized.sui-content{float:none}.sui-grid-core .sui-gridheader .sui-headercell{border-width:0 0 0 1px}.sui-grid-core tr td:first-child,.sui-grid-core tr th:first-child{border-left-style:none;border-left-width:0}.sui-grid-core .sui-cell{border-collapse:collapse;border-style:solid;border-width:0 0 1px 1px;display:table-cell;overflow:hidden;padding:.6em;vertical-align:middle;white-space:normal;width:auto;outline:0}.sui-grid-core .sui-footer-cell{display:table-cell;overflow:hidden;padding:.6em;vertical-align:middle;white-space:normal;width:auto;font-weight:700}.sui-grid-core .sui-detail-cell{border-collapse:collapse;border-style:solid;border-width:0 0 1px 1px;display:table-cell;overflow:hidden;vertical-align:middle;white-space:normal;width:auto}.sui-grid-core .sui-headercell{border-collapse:collapse;overflow:hidden;text-align:left;text-overflow:ellipsis;font-size:1.1em;padding-top:.658em;padding-bottom:.518em;padding-left:.518em;padding-right:.518em;white-space:normal;font-weight:700}.sui-headercontent{position:relative;overflow:hidden;border-right-style:solid;border-right-width:1px}.sui-headercontent.sui-no-y-scroll{border-right-style:none;border-right-width:0}.sui-area{position:absolute;opacity:.4;height:100%;left:0;top:0;width:100%;z-index:1000100}.sui-grid-core .sui-pager{border-style:solid;border-width:1px 0 0;display:inline-block;padding-bottom:4px;padding-top:9px;white-space:normal;width:100%}.sui-grid-core .sui-link{color:inherit;display:block;margin:-.5em -.6em -.4em;padding:.5em .6em .4em;text-decoration:none}.sui-grid-core .sui-ascending,.sui-grid-core .sui-descending{font-size:.7em;padding-left:.3em;line-height:100%}.sui-grid-core .sui-collapse-cell{border-bottom:none}.sui-grid-core .sui-collapse-cell,.sui-grid-core .sui-expand-cell,.sui-grid-core .sui-indent-col,.sui-grid-core .sui-sui-indent-cell{font-weight:700;text-align:center;width:2.4em;padding:0;margin:0}.sui-grid-core .sui-collapse-cell,.sui-grid-core .sui-expand-cell{cursor:pointer;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-grid-core .sui-resizable-handle{cursor:col-resize;position:absolute}.sui-reorderable .sui-headercell{cursor:default}.sui-grid-reorder-indicator{position:absolute;z-index:998;margin-left:-4px}.sui-grid-reorder-indicator .sui-grid-indicator-bottom,.sui-grid-reorder-indicator .sui-grid-indicator-top{position:absolute;width:0;height:0;border-style:solid;border-width:4px;border-color:transparent;left:0;top:0}.sui-grid-reorder-indicator .sui-grid-indicator-bottom{top:auto;bottom:0}.sui-grid-core .sui-toolbar{border-collapse:collapse;padding:.6em;vertical-align:middle;white-space:normal;width:auto}.sui-grid-core .sui-cell .sui-button,.sui-grid-core .sui-toolbar .sui-button{margin-right:.6em}.sui-grid-core .sui-cell .sui-button:last-child,.sui-grid-core .sui-toolbar .sui-button:last-child{margin-right:0}.sui-grid-core .sui-editable-cell .sui-combobox,.sui-grid-core .sui-editable-cell .sui-datepicker,.sui-grid-core .sui-editable-cell .sui-dropdown,.sui-grid-core .sui-editable-cell .sui-input,.sui-grid-core .sui-editable-cell .sui-numeric-textbox{width:100%}.sui-grid-core .sui-editable-cell{padding:.3em;text-align:center}.sui-grid-core .sui-button-cell{padding:.3em;text-align:center}.sui-grid-core .sui-updated-marker{position:absolute;width:0;height:0;border-style:solid;border-width:3px;border-color:red transparent transparent red;margin:-.51em 0 0 -.6em;padding:0;overflow:hidden;vertical-align:top}.sui-filter-cell{border-collapse:collapse;border-style:solid none none solid;border-width:1px 0 0 1px;overflow:hidden;padding:.518em;text-align:left;text-overflow:ellipsis;white-space:normal}.sui-filter-cell .sui-button{margin-left:1px}.sui-filter-button-content{display:block}.sui-filter-cell .sui-button:hover .sui-filter-button-content{background-position:-144px 0}.sui-clear-filter-button-content{display:block}.sui-filter-cell .sui-button:hover .sui-clear-filter-button-content{background-position:-160px 0}.sui-grid-button-text{display:inline-block;vertical-align:middle}.sui-grid-icon-export-excel{display:inline-block;vertical-align:middle;background-position:-192px -16px}.sui-button:hover .sui-grid-icon-export-excel,.sui-grid-icon-export-excel:hover{background-position:-192px 0}.sui-button:hover .sui-grid-icon-export-pdf,.sui-grid-icon-export-pdf{display:inline-block;vertical-align:middle;background-position:-192px -16px}.sui-button:hover .sui-grid-icon-export-pdf,.sui-grid-icon-export-pdf:hover{background-position:-192px 0}.sui-button:hover .sui-grid-icon-export-csv,.sui-grid-icon-export-csv{display:inline-block;vertical-align:middle;background-position:-192px -16px}.sui-button:hover .sui-grid-icon-export-csv,.sui-grid-icon-export-csv:hover{background-position:-192px 0}.sui-grid-core .sui-group-footer-cell{display:table-cell;overflow:hidden;padding:.6em;vertical-align:middle;white-space:normal;width:auto;font-weight:700}.sui-grid-core .sui-grouped-table .sui-group-header:first-child .sui-group-header-cell{border-top:none}.sui-grid-core .sui-group-header-cell{border-collapse:collapse;border-style:solid;border-width:0 0 1px 1px;display:table-cell;overflow:hidden;padding:.6em .6em .6em 0;vertical-align:middle;white-space:normal;width:auto;padding-top:.3em;padding-bottom:.3em}.sui-grid-core .sui-collapse,.sui-grid-core .sui-expand{padding:.5em;white-space:normal;width:auto;cursor:pointer;font-size:1.6em;padding-bottom:0;padding-top:0;margin:0}.sui-grid-core .sui-group-panel{padding:.3em}.sui-grid-core .sui-group-panel.sui-group-panel-empty{padding:.7em}.sui-grid-core .sui-group-panel-indicator{display:inline-block}.sui-grid-core .sui-group-panel-indicator{padding:.4em;cursor:pointer;margin-right:.3em;margin-left:.3em}.sui-grid-core .sui-group-panel .sui-group-close-button{margin-right:.25em}.sui-grid-core .sui-group-panel .sui-ascending,.sui-grid-core .sui-group-panel .sui-descending,.sui-grid-core .sui-group-panel .sui-group-title{padding-right:.7em}.sui-grid-core .sui-group-panel .sui-ascending,.sui-grid-core .sui-group-panel .sui-descending{display:inline-block;vertical-align:middle}.sui-grid-core .sui-grid-no-gap{border-right-width:0}.sui-grid{border-top:medium none;border-color:#c4c4c4;color:#6d6d6d}.sui-grid .sui-gridheader{border-bottom:2px solid #2199e0;border-top:1px solid #c4c4c4;color:#6d6d6d}.sui-grid .sui-no-header{border-top:1px solid #c4c4c4}.sui-grid .sui-headercell a{color:#6d6d6d}.sui-grid .sui-headercontent{border-color:#c4c4c4}.sui-grid .sui-headercell,.sui-grid .sui-indent-cell{border-left:1px solid #c4c4c4;border-style:none none none solid;border-top:0 solid #c4c4c4;background-color:#fff}.sui-grid .sui-gridcontent{background-color:#fff}.sui-grid .sui-alt-row,.sui-grid .sui-grid-footer{background:none repeat scroll 0 0;background-color:#f7f7f7}.sui-hover .sui-alt-row:hover,.sui-hover .sui-row:hover,.sui-hover .sui-selected:hover td{color:#fff;background-color:#2199e0}.sui-grid .sui-cell,.sui-grid .sui-detail-cell{border-color:#c4c4c4}.sui-grid .sui-selected .sui-cell,.sui-grid tr .sui-selected{color:#fff;background-color:#197bb5}.sui-area-color{background-color:#2199e0}.sui-grid-reorder-indicator .sui-grid-indicator-top{border-top-color:#2199e0}.sui-grid-reorder-indicator .sui-grid-indicator-bottom{border-bottom-color:#2199e0}.sui-grid .sui-toolbar{border-top:1px solid #c4c4c4;color:#6d6d6d;background-color:#fff}.sui-grid .sui-toolbar.sui-toolbar-bottom{border-top:none;border-bottom:1px solid #c4c4c4}.sui-grid .sui-toolbar.sui-toolbar-bottom:last-of-type{border-bottom:none}.sui-filter-row{background-color:#f7f7f7}.sui-filter-cell{border-left-color:#c4c4c4;border-top-color:#c4c4c4}.sui-filter-button-content{background-position:-144px -16px}.sui-clear-filter-button-content{background-position:-160px -16px}.sui-grid .sui-group-header-cell{border-color:#c4c4c4}.sui-grid .sui-alt-row:hover .sui-group-intend-cell,.sui-grid .sui-group-header,.sui-grid .sui-group-header .sui-indent-cell,.sui-grid .sui-group-intend-cell,.sui-grid .sui-row:hover .sui-group-intend-cell{background:none repeat scroll 0 0;background-color:#f7f7f7}.sui-grid .sui-group-header .sui-group-header-cell{border-bottom:none;border-top:1px solid #c4c4c4}.sui-grid .sui-grouped-table .sui-row .sui-cell{border-top:1px solid #c4c4c4}.sui-grid .sui-grouped-table tbody tr:last-child .sui-group-intend-cell{border-bottom:1px solid #c4c4c4}.sui-grid .sui-grid-footer,.sui-grid .sui-group-footer,.sui-group-footer .sui-indent-cell{background:none repeat scroll 0 0;background-color:#f7f7f7;border-top:1px solid #c4c4c4}.sui-grid .sui-group-panel{padding:.3em;border-top:1px solid #c4c4c4}.sui-grid .sui-group-panel-indicator{border:1px solid #c4c4c4}.sui-grid .sui-group-panel,.sui-grid .sui-group-panel-indicator{background-color:#fff}.sui-grid .sui-footer{border:1px solid;border-color:#c4c4c4;background-attachment:scroll;background-position:0 0;background-repeat:repeat-x;overflow-x:hidden;margin-left:-1px;margin-right:-1px;border-top:none}.sui-grid .sui-footer td{border-collapse:collapse}.sui-grid .sui-footer table{border-spacing:0px}.sui-grid .sui-footer-content{border-right:1px solid;overflow:hidden;position:relative;border-color:#c4c4c4}.sui-edit-form-label{float:left;clear:both;width:30%;padding:.4em 0 1em;margin-left:2%;text-align:right}.sui-edit-field{float:right;clear:right;width:60%;margin-right:2%;padding:0 0 .6em}.sui-window-content .sui-input-textbox{width:134px}.sui-edit-form-container{padding-top:10px}.sui-popup-buttons{clear:both;text-align:right;border-width:1px 0 0;border-style:solid;position:relative;bottom:-1em;padding:.6em;border-color:#c4c4c4}.sui-popup-buttons .sui-button{margin:0 .16em}.sui-header-locked{display:inline-block;vertical-align:top;border-right:solid 1px #c4c4c4}.sui-header-locked .sui-table,.sui-header-locked .sui-table-ie7{width:auto}.sui-header-locked+.sui-headercontent{display:inline-block;vertical-align:top}.sui-content-locked{display:inline-block;vertical-align:top;border-right:solid 1px #c4c4c4;overflow:hidden}.sui-content-locked .sui-table,.sui-content-locked .sui-table-ie7{width:auto;margin-bottom:500px}.sui-content-locked+.sui-content{display:inline-block;vertical-align:top}.sui-grid-nav .sui-cell[tabindex="0"]:focus,.sui-grid-nav .sui-filter-cell[tabindex="0"]:focus,.sui-grid-nav .sui-footer-cell[tabindex="0"]:focus,.sui-grid-nav .sui-headercell[tabindex="0"]:focus{color:#fff;background-color:#2199e0}.sui-grid-nav .sui-button:focus{color:#fff;background-color:#2199e0} -.sui-caret-up{display:inline-block;zoom:1;width:0;height:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-bottom:.4em solid;vertical-align:middle}.sui-caret-down{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-top:.4em solid;vertical-align:middle}.sui-button,.sui-combobox,.sui-dropdown,.sui-input,.sui-numeric-textbox,.sui-switch{display:inline-block;zoom:1;margin:0;outline:0;vertical-align:middle;white-space:nowrap;line-height:normal;font-weight:400;font-size:14px;font-family:Helvetica,Arial,sans-serif;text-align:left;box-sizing:border-box;-moz-box-sizing:border-box}textarea.sui-input{white-space:pre-wrap}.sui-listbox,ul.sui-listbox{position:relative;display:block;list-style:none;color:#6d6d6d;background-color:#fff;border-width:1px;border-style:solid;border-color:#c4c4c4;overflow-x:hidden;overflow-y:auto;margin:0;padding:0;outline:0;font-size:14px;font-family:Helvetica,Arial,sans-serif}.sui-listbox:focus{border-color:#2199e0}.sui-listbox-item{padding:.5em .3em;text-align:left}.sui-listbox-item:hover,.sui-listbox:focus .sui-listbox-item-active{cursor:pointer;color:#fff;background-color:#2199e0}.sui-listbox-item-selected{color:#fff;background-color:#197bb5}.sui-listbox-disabled,.sui-listbox-disabled:active,.sui-listbox-disabled:focus{pointer-events:none;cursor:default;opacity:.4}.sui-numeric-textbox{color:#6d6d6d;background-color:#ecedee;border-color:#c4c4c4;border-width:1px;border-style:solid;overflow:hidden;padding:0 1.8em 0 0;width:9.5em;position:relative}.sui-numeric-textbox-focus,.sui-numeric-textbox:focus{border-color:#2199e0}.sui-numeric-textbox-nosp{padding:0}.sui-numeric-textbox .sui-input,.sui-numeric-textbox .sui-input:focus{border:none;padding:.3em 0;width:100%;margin:0;border-right:1px solid #c4c4c4;text-indent:.3em;line-height:normal;overflow:hidden;vertical-align:top}.sui-numeric-textbox-nosp .sui-input,.sui-numeric-textbox-nosp .sui-input:focus{border:none}.sui-numeric-textbox .sui-spinners{position:absolute;right:0;top:0;width:1.8em;text-align:center;vertical-align:middle;overflow:hidden}.sui-numeric-textbox .sui-spinner{display:block;cursor:pointer;line-height:90%}.sui-numeric-textbox .sui-spinner:hover{color:#fff;background-color:#2199e0}.sui-numeric-textbox .sui-spinner-up{margin-top:-1px;padding-bottom:1px}.sui-numeric-textbox .sui-spinner-down{padding-bottom:1px}.sui-numeric-textbox-disabled{background-color:transparent;border-color:inherit}.sui-numeric-textbox-disabled .sui-input,.sui-numeric-textbox-disabled .sui-spinner,.sui-numeric-textbox-disabled .sui-spinner:hover{pointer-events:none;cursor:default;opacity:.4}.sui-combobox,.sui-dropdown{color:#6d6d6d;background-color:#ecedee;border-width:1px;border-style:solid;border-color:#c4c4c4;overflow:hidden;padding:0 1.8em 0 0;width:9.5em;position:relative}.sui-dropdown{cursor:pointer}.sui-combobox .sui-input,.sui-combobox .sui-input:focus,.sui-dropdown .sui-input,.sui-dropdown .sui-input:focus{border:none;padding:.3em 0;width:100%;margin:0;border-right:1px solid;border-color:#c4c4c4;text-indent:.3em;line-height:normal;overflow:hidden;vertical-align:top}.sui-combobox .sui-caret-container,.sui-dropdown .sui-caret-container{position:absolute;right:0;top:0;width:1.7em;padding:.3em 0;cursor:pointer;text-align:center;vertical-align:middle}.sui-combobox .sui-caret,.sui-dropdown .sui-caret{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-width:.4em .4em .2em;border-style:solid;border-color:transparent transparent transparent transparent;border-top-color:#6d6d6d;vertical-align:middle}.sui-combobox-focus,.sui-combobox:focus,.sui-dropdown-focus,.sui-dropdown:focus{border-color:#2199e0}.sui-combobox:hover,.sui-dropdown:hover{color:#fff;background-color:#2199e0}.sui-combobox:hover .sui-caret,.sui-dropdown:hover .sui-caret{border-top-color:#fff}.sui-combobox-disabled,.sui-combobox-disabled .sui-input,.sui-dropdown-disabled,.sui-dropdown-disabled .sui-input{pointer-events:none;cursor:default;opacity:.4}.sui-autocomplete,ul.sui-autocomplete{position:absolute;display:none;list-style:none;margin:0;padding:0;max-height:300px;font-size:14px;font-family:Helvetica,Arial,sans-serif;z-index:1800}.sui-autocomplete-loading{background-repeat:no-repeat;background-position:right;background-image:url("../img/loading-light-small.gif")}.sui-input{color:#6d6d6d;background-color:#fff;border-color:#c4c4c4;border-style:solid;border-width:1px;width:150px;padding:.3em}.sui-input:focus{border-color:#2199e0}.sui-input-disabled{pointer-events:none;cursor:default;opacity:.4}.sui-input::-ms-clear{display:none}.sui-button{color:#6d6d6d;background-color:#ecedee;border-color:#c4c4c4;border-width:1px;border-style:solid;padding:.3em .6em;cursor:pointer;overflow:hidden;text-align:center;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}button.sui-button::-moz-focus-inner,input[type=button].sui-button::-moz-focus-inner{border:0;padding:0}.sui-button:hover{color:#fff;background-color:#2199e0}.sui-button:active{color:#fff;background-color:#197bb5}.sui-button-checked{color:#fff;background-color:#197bb5}.sui-button-disabled,.sui-button-disabled:active,.sui-button-disabled:focus,.sui-button-disabled:hover{pointer-events:none;cursor:default;opacity:.4}.sui-button-split-handle{margin-left:-1px}.sui-menu.sui-button-split-menu,ul.sui-menu.sui-button-split-menu{cursor:pointer}.sui-checkbox{display:inline-block;cursor:pointer;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;font-size:14px;font-family:Helvetica,Arial,sans-serif;outline:0}.sui-checkbox-input{display:none}.sui-checkbox-element{display:inline-block;width:.8em;height:.8em;background-color:#fff;border-width:1px;border-style:solid;border-color:#c4c4c4;vertical-align:bottom;padding:2px}.sui-checkbox-element:hover{border-color:#2199e0}.sui-checkbox:focus .sui-checkbox-element{border-color:#2199e0}.sui-checkbox-indeterminate .sui-checkmark,.sui-checkbox-unchecked .sui-checkmark{display:block;font-weight:700;overflow:hidden;width:100%;height:100%;border:none}.sui-checkbox-indeterminate .sui-checkmark{background-color:#197bb5}.sui-checkbox-checked .sui-checkmark{display:block;width:.65em;height:.25em;border-style:solid;border-width:0 0 .2em .2em;border-color:#197bb5;border-top-color:transparent;margin-top:.1em;background-color:"-.1em\9";-moz-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.sui-checkbox-label{padding-left:.25em;position:relative;line-height:.8em;color:#6d6d6d}.sui-checkbox-label-hover{cursor:pointer}.sui-checkbox-disabled .sui-checkbox-label-hover,.sui-checkbox-disabled.sui-checkbox{cursor:default;opacity:.4}.sui-checkbox-disabled .sui-checkbox-element:hover,.sui-checkbox-disabled:focus .sui-checkbox-element{border-color:#c4c4c4}.sui-radiobutton{display:inline-block;cursor:pointer;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;font-size:14px;font-family:Helvetica,Arial,sans-serif;outline:0}.sui-radiobutton-input{display:none}.sui-radiobutton-element{display:inline-block;zoom:1;width:.75em;height:.75em;line-height:.8em;vertical-align:bottom;background-color:#fff;border-color:#c4c4c4;border-style:solid;border-width:1px;padding:2px;-moz-border-radius:50%;-webkit-border-radius:50%;-o-border-radius:50%;border-radius:50%}.sui-radiobutton-element:hover{border-color:#2199e0}.sui-radiobutton:focus .sui-radiobutton-element{border-color:#2199e0}.sui-radiobutton .sui-checkmark{display:block;width:100%;height:100%;-moz-border-radius:50%;-webkit-border-radius:50%;-o-border-radius:50%;border-radius:50%}.sui-radiobutton-checked .sui-checkmark{background-color:#197bb5}.sui-radiobutton-label{padding-left:.25em;position:relative;top:-.063em;color:#6d6d6d}.sui-radiobutton-label-hover{cursor:pointer}.sui-radiobutton-disabled .sui-radiobutton-label-hover,.sui-radiobutton-disabled.sui-radiobutton{cursor:default;opacity:.4}.sui-radiobutton-disabled .sui-radiobutton-element:hover,.sui-radiobutton-disabled:focus .sui-radiobutton-element{border-color:#c4c4c4}.sui-switch{position:relative;width:3.5em;height:1.8em;cursor:pointer;overflow:hidden;background-color:#c4c4c4}.sui-switch-disabled{cursor:default;opacity:.4}.sui-switch-inner{position:absolute;width:auto;height:auto;top:2px;left:2px;right:2px;bottom:2px;padding-left:1.2em;padding-right:.1em;padding-top:2px;text-align:center;vertical-align:middle;color:#6d6d6d;background-color:#fff}.sui-switch-text{vertical-align:middle;font-size:.9em}.sui-switch-checked .sui-switch-inner{padding-left:.1em;padding-right:1.2em;color:#fff;background-color:#197bb5}.sui-switch-handle{width:1.2em;position:absolute;top:0;left:-2px;background-color:#919191;border-right:2px solid #fff;border-left:2px solid #fff}.sui-switch-checked .sui-switch-handle{border-right:none}.sui-switch-handle:hover,.sui-switch:focus .sui-switch-handle,.sui-switch:hover .sui-switch-handle{background-color:#2199e0}.sui-switch-disabled .sui-switch-handle,.sui-switch-disabled:focus .sui-switch-handle,.sui-switch-disabled:hover .sui-switch-handle{background-color:#c4c4c4} -.sui-tooltip{display:none;border-style:solid;border-width:1px;z-index:1150;line-height:normal;border-color:#c4c4c4;color:#6d6d6d;background-color:#fff;box-shadow:0 0 7px #c4c4c4;font-size:14px;font-family:Helvetica,Arial,sans-serif;padding-left:7px;padding-right:7px;padding-top:4px;padding-bottom:4px}.sui-tooltip-button{width:18px;height:18px;overflow:hidden;font-size:20px;text-align:center;cursor:pointer;position:absolute;right:0;top:0}.sui-tooltip-with-button{padding-right:16px}.sui-tooltip-content{display:block;overflow:auto}.sui-tooltip-callout-container{display:block;position:absolute;z-index:1155}.sui-tooltip-callout:after,.sui-tooltip-callout:before{border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.sui-tooltip-callout-top:after,.sui-tooltip-callout-top:before{bottom:100%}.sui-tooltip-callout-top:after{border-width:6px;margin-left:-6px;border-color:rgba(196,196,196,0);border-bottom-color:#fff}.sui-tooltip-callout-top:before{border-width:7px;margin-left:-7px;border-color:rgba(255,255,255,0);border-bottom-color:#c4c4c4}.sui-tooltip-callout-bottom:after,.sui-tooltip-callout-bottom:before{top:100%}.sui-tooltip-callout-bottom:after{border-width:6px;margin-left:-6px;border-color:rgba(196,196,196,0);border-top-color:#fff}.sui-tooltip-callout-bottom:before{border-width:7px;margin-left:-7px;border-color:rgba(255,255,255,0);border-top-color:#c4c4c4}.sui-tooltip-callout-left:after,.sui-tooltip-callout-left:before{right:100%}.sui-tooltip-callout-left:after{border-width:6px;margin-top:-6px;border-color:rgba(196,196,196,0);border-right-color:#fff}.sui-tooltip-callout-left:before{border-width:7px;margin-top:-7px;border-color:rgba(255,255,255,0);border-right-color:#c4c4c4}.sui-tooltip-callout-right:after,.sui-tooltip-callout-right:before{left:100%}.sui-tooltip-callout-right:after{border-width:6px;margin-top:-6px;border-color:rgba(196,196,196,0);border-left-color:#fff}.sui-tooltip-callout-right:before{border-width:7px;margin-top:-7px;border-color:rgba(255,255,255,0);border-left-color:#c4c4c4}.sui-splitter-container{display:block;overflow:hidden;color:#6d6d6d;background-color:#fff;border-width:1px;border-style:solid;border-color:#2199e0}.sui-splitter-container>.sui-splitter-container{border:none}.sui-splitter-pane{display:block;position:absolute;overflow:hidden;margin:0}.sui-splitter-pane-vertical{width:100%}.sui-splitter-bar{position:absolute;text-align:center;background-color:#197bb5}.sui-splitter-bar-vertical{width:100%}.sui-splitter-dragbar{position:absolute;text-align:center;z-index:200;background-color:#197bb5}.sui-splitter-dragbar-horizontal{cursor:ew-resize}.sui-splitter-dragbar-vertical{width:100%;cursor:ns-resize}.sui-splitter-collapsible{position:absolute;width:0;height:0;cursor:pointer;z-index:201}.sui-splitter-dragbar.sui-draggable-dragging{background-color:#2199e0}.sui-splitter-collapsible-horizontal-left{border-top:.22em solid transparent;border-bottom:.22em solid transparent;border-right:.22em solid;border-right-color:#fff}.sui-splitter-collapsible-horizontal-right{border-top:.22em solid transparent;border-bottom:.22em solid transparent;border-left:.22em solid;border-left-color:#fff}.sui-splitter-collapsible-vertical-up{border-left:.22em solid transparent;border-right:.22em solid transparent;border-bottom:.22em solid;border-bottom-color:#fff}.sui-splitter-collapsible-vertical-down{border-left:.22em solid transparent;border-right:.22em solid transparent;border-top:.22em solid;border-top-color:#fff}.sui-accordion,ul.sui-accordion{position:relative;display:block;list-style:none;color:#6d6d6d;background-color:#fff;border:1px solid #c4c4c4;overflow-x:hidden;overflow-y:auto;margin:0;padding:0;outline:0;font-size:14px;font-family:Helvetica,Arial,sans-serif}.sui-accordion .sui-accordion{margin:7px}.sui-accordion-disabled,.sui-accordion-disabled:active,.sui-accordion-disabled:focus{pointer-events:none;cursor:default;opacity:.4}.sui-accordion-item{border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:#c4c4c4}.sui-accordion-item-title{cursor:pointer;padding:9px;color:#fff;background-color:#197bb5;border-bottom-style:solid;border-bottom-width:1px;border-bottom-color:#c4c4c4}.sui-accordion-disabled .sui-accordion-item-title{cursor:default}.sui-accordion-item-collapsed,.sui-accordion-item-last,.sui-accordion-item-last.sui-accordion-item-collapsed .sui-accordion-item-title{border-bottom:none;border-bottom-width:0;border-bottom-color:transparent}.sui-accordion-item-collapsed .sui-accordion-item-title{background-color:#ecedee;color:#6d6d6d;border-bottom-color:#c4c4c4}.sui-accordion-item-title-active,.sui-accordion-item-title:hover{background-color:#2199e0;color:#fff}.sui-accordion-item-body{padding:9px}.sui-tabs{display:inline-block;width:100%;margin:0;padding:0;outline:0;box-sizing:border-box;font-size:14px;font-family:Helvetica,Arial,sans-serif;border-color:#c4c4c4;color:#6d6d6d;background-color:#fff;border:1px solid #c4c4c4}.sui-tabs-tablist,ol.sui-tabs-tablist,ul.sui-tabs-tablist{list-style:none;font-size:0px;outline:0;margin:0;padding:0;background-color:#ecedee}.sui-tabs-tablist>li{margin:0;padding-top:.7em;padding-bottom:.7em;padding-left:1.2em;padding-right:1.2em;font-size:14px;color:#6d6d6d;border-top:1px solid transparent;border-bottom:1px solid transparent;border-left:1px solid transparent;border-right:1px solid transparent;background-color:#ecedee;cursor:pointer;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-tabs-tablist>li:hover{color:#fff;background-color:#2199e0}.sui-tabs-tablist>li.sui-tabs-tab-active,.sui-tabs-tablist>li.sui-tabs-tab-active:hover{color:#6d6d6d;background-color:#fff;cursor:default}.sui-tabs-bottom .sui-tabs-tablist>li.sui-tabs-tab-active,.sui-tabs-bottom .sui-tabs-tablist>li.sui-tabs-tab-active:hover,.sui-tabs-top .sui-tabs-tablist>li.sui-tabs-tab-active,.sui-tabs-top .sui-tabs-tablist>li.sui-tabs-tab-active:hover{border-top:1px solid transparent;border-bottom:1px solid transparent;border-left:1px solid #c4c4c4;border-right:1px solid #c4c4c4}.sui-tabs-bottom .sui-tabs-tablist li:first-child,.sui-tabs-bottom .sui-tabs-tablist li:first-child:hover,.sui-tabs-top .sui-tabs-tablist li:first-child,.sui-tabs-top .sui-tabs-tablist li:first-child:hover{border-left:1px solid transparent}.sui-tabs-left .sui-tabs-tablist>li.sui-tabs-tab-active,.sui-tabs-left .sui-tabs-tablist>li.sui-tabs-tab-active:hover,.sui-tabs-right .sui-tabs-tablist>li.sui-tabs-tab-active,.sui-tabs-right .sui-tabs-tablist>li.sui-tabs-tab-active:hover{border-top:1px solid #c4c4c4;border-bottom:1px solid #c4c4c4;border-left:1px solid transparent;border-right:1px solid transparent}.sui-tabs-left .sui-tabs-tablist li:first-child,.sui-tabs-left .sui-tabs-tablist li:first-child:hover,.sui-tabs-right .sui-tabs-tablist li:first-child,.sui-tabs-right .sui-tabs-tablist li:first-child:hover{border-top:1px solid transparent}.sui-tabs-left .sui-tabs-tablist li.sui-tabs-tab-last-bottom,.sui-tabs-left .sui-tabs-tablist li.sui-tabs-tab-last-bottom:hover,.sui-tabs-right .sui-tabs-tablist li.sui-tabs-tab-last-bottom,.sui-tabs-right .sui-tabs-tablist li.sui-tabs-tab-last-bottom:hover{border-bottom:1px solid transparent}.sui-tabs-tablist-collapsible>li.sui-tabs-tab-active,.sui-tabs-tablist-collapsible>li.sui-tabs-tab-active:hover{cursor:pointer}.sui-tabs-tablist>li.sui-tabs-tab-disabled,.sui-tabs-tablist>li.sui-tabs-tab-disabled:hover{pointer-events:none;cursor:default;opacity:.5;color:#6d6d6d;background-color:#ecedee}.sui-tabs-bottom .sui-tabs-tablist li,.sui-tabs-top .sui-tabs-tablist>li{display:inline-block}.sui-tabs-left .sui-tabs-tablist,.sui-tabs-right .sui-tabs-tablist{display:inline-block}.sui-tabs-left .sui-tabs-tablist>li,.sui-tabs-right .sui-tabs-tablist>li{display:block}.sui-tabs>.sui-tabs-item{margin:0;padding:1em;vertical-align:top;overflow:auto}.sui-tabs-bottom>.sui-tabs-item,.sui-tabs-top>.sui-tabs-item{display:block;min-height:70px}.sui-tabs-left>.sui-tabs-tablist{float:left}.sui-tabs-right>.sui-tabs-tablist{float:right}.sui-tabs-left>.sui-tabs-item,.sui-tabs-right>.sui-tabs-item{position:static;display:block}.sui-tabs .sui-tabs-tab-text{display:inline-block;vertical-align:middle}.sui-tabs .sui-tabs-tab-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;overflow:hidden;margin-right:.5em}.sui-tabs .sui-tabs-tab-icon img{width:16px;height:16px;border:none} -.sui-loading-panel{position:absolute;font-size:14px;font-family:Helvetica,Arial,sans-serif}.sui-loading-panel .sui-loading-image{position:relative;display:block;width:65px;height:65px;margin:0 auto;z-index:inherit;border-radius:2px 2px 2px 2px;background-position:center center;background-repeat:no-repeat;background-color:#fff;background-image:url("../img/loading-light.gif")}.sui-loading-panel .sui-loading-image-small{position:relative;display:block;width:30px;height:30px;margin:0 auto;z-index:inherit;border-radius:2px 2px 2px 2px;background-position:center center;background-repeat:no-repeat;background-color:#fff;background-image:url("../img/loading-light-small.gif")}.sui-loading-panel .sui-loading-back{position:inherit;width:100%;height:100%;top:0;background-color:#919191;opacity:.35}.sui-loading-panel-ie7 .sui-loading-back{position:absolute}.sui-loading-panel .sui-loading-text{display:block;margin:0 auto;position:relative;text-align:center;z-index:inherit;font-size:1.5em;color:#fff} -.sui-menu,ul.sui-menu{position:relative;display:inline-block;list-style:none;color:#6d6d6d;background-color:#ecedee;border:1px solid #c4c4c4;margin:0;padding:0;outline:0;font-family:Helvetica,Arial,sans-serif;font-size:14px;line-height:normal;overflow:visible;cursor:default}.sui-context-menu{display:inline-block;position:absolute;overflow:visible;box-shadow:1px 1px 2px #c4c4c4;z-index:1120}.sui-menu:not(.sui-menu-top){box-shadow:1px 1px 2px #c4c4c4}.sui-menu-horizontal>li{display:inline-block}.sui-menu-submenu{position:absolute;display:inline-block;z-index:1100}.sui-menu-submenu .sui-menu{width:100%}.sui-menu-item{padding:0;position:relative}.sui-menu-item-separator{background-color:#c4c4c4}a.sui-menu-item-link,a.sui-menu-item-link:active,a.sui-menu-item-link:hover,a.sui-menu-item-link:link,a.sui-menu-item-link:visited{outline:0;display:block;padding-top:.5em;padding-bottom:.5em;padding-left:.85em;padding-right:.85em;text-decoration:inherit;color:inherit;font-weight:inherit;font-style:inherit;white-space:nowrap}.sui-menu-item-text{display:inline-block;vertical-align:middle}.sui-menu-item-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;overflow:hidden;margin-right:.5em}.sui-menu-item-icon img{width:16px;height:16px;border:none}.sui-menu-horizontal>.sui-menu-item-separator{width:0;padding-left:0;padding-right:0;border-left:solid 1px #c4c4c4}.sui-menu-vertical>.sui-menu-item-separator{height:0;padding-top:0;padding-bottom:0;border-top:solid 1px #c4c4c4}.sui-menu-item:hover{color:#fff;background-color:#2199e0}.sui-menu-focus .sui-menu-item-selected{color:#fff;background-color:#197bb5}.sui-menu-item-disabled,.sui-menu-item-disabled:hover{pointer-events:none;cursor:default;opacity:.4;color:#6d6d6d;background-color:#ecedee}.sui-menu-horizontal>li>a>.sui-menu-item-children-caret{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-top:.4em solid;vertical-align:middle;margin-left:6px}.sui-menu-vertical>li>a>.sui-menu-item-children-caret{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-left:.4em solid;border-top:.4em solid transparent;border-bottom:.4em solid transparent;vertical-align:middle;margin-left:10px;position:absolute;right:12px;margin-top:5px}.sui-menu-vertical>li>a>.sui-menu-item-text-hc{margin-right:16px} -.sui-pager-core{padding-bottom:.56em;padding-top:.56em;white-space:normal;font-size:14px;font-family:Helvetica,Arial,sans-serif;display:inline-block;width:100%;vertical-align:middle}.sui-pager-element,.sui-pagination-ie{float:left}.sui-pager-core a,.sui-pager-core div{user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-pagination{vertical-align:middle}.sui-pagination a{cursor:pointer}.sui-pagination a:hover{background-color:transparent}.sui-pagination .sui-disabled a{cursor:default}.sui-pagination .sui-pager-element.sui-disabled:hover{background-color:transparent}.sui-pagination:first-child{border-radius:4px 4px 4px 4px}.sui-pager-core .sui-pagination{display:inline-block;margin:0 .375em 0 .375em;overflow:hidden;cursor:default;list-style-type:none;padding:0}.sui-pager-core .sui-pagination-ie7{float:left}.sui-pager-core .sui-pagination a{border-image:none;border-style:solid;border-width:0 1px 0 0;float:left;padding:.29em .75em;text-decoration:none}.sui-pager-core div.sui-pager-info-box,.sui-pager-core div.sui-pager-info-box-ie{display:inline-block;float:right;padding-right:.375em;padding-top:.375em}.sui-pager-core .sui-disabled{opacity:.4;cursor:default;pointer-events:none}.sui-pager{background-color:#ecedee;border-color:#c4c4c4}.sui-pager .sui-pagination{background-color:#ecedee;border-width:1px;border-style:solid;border-color:#c4c4c4}.sui-pager .sui-pagination a{color:#6d6d6d;border-color:#c4c4c4}.sui-pager .sui-pagination a:hover{color:#fff}.sui-pager .sui-pagination .sui-selected{color:#fff;background-color:#197bb5}.sui-pager .sui-pagination .sui-last{border-right-width:0}.sui-pager .sui-pagination .sui-disabled a:hover{color:#6d6d6d}.sui-pager .sui-pagination .sui-pager-element:hover{background-color:#2199e0}.sui-pager .sui-pager-info-box{color:#6d6d6d}.sui-pager .sui-pagination .sui-pager-element.sui-disabled:hover{opacity:.4} -.sui-progressbar{position:relative;display:block;border-width:1px;border-style:solid;border-color:#c4c4c4;background-color:#fff;padding:0;overflow:hidden;width:100%;height:30px;font-size:14px;font-family:Helvetica,Arial,sans-serif}.sui-progressbar-value{margin:0;float:left;background-color:#197bb5}.sui-progressbar-text{display:block;position:absolute;top:0;left:0;z-index:100;color:#b2b4b6}.sui-progressbar-vertical{height:200px;width:30px}.sui-progressbar-circular{width:100px;height:100px;border-width:0;border-style:none}.sui-progressbar-disabled{opacity:.4;cursor:default} -.sui-rating{display:-moz-inline-box;display:inline-block;position:relative;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-rating-disabled{opacity:.4}.sui-rating .sui-rating-range{position:relative;display:inline-block;background:url(../img/stars.png);height:16px;outline:0}.sui-rating .sui-rating-range *{display:block}* html .sui-rating,* html .sui-rating .sui-rating-range{display:inline}.sui-rating .sui-rating-hover,.sui-rating .sui-rating-selected{position:absolute;left:0}.sui-rating .sui-rating-hover-rtl,.sui-rating .sui-rating-selected-rtl{left:auto;right:0}.sui-rating .sui-rating-hover,.sui-rating .sui-rating-preset,.sui-rating .sui-rating-preset-rtl,.sui-rating .sui-rating-selected{background-image:url(../img/stars.png)}.sui-rating .sui-rating-selected{background-position:left -16px}.sui-rtl .sui-rating .sui-rating-selected{background-position:right -16px}.sui-rating .sui-rating-hover,.sui-rating .sui-rating-preset,.sui-rating .sui-rating-preset-rtl{background-position:left -32px}.sui-rtl .sui-rating .sui-rating-hover{background-position:right -32px} -.sui-slider{display:block;position:relative;color:#6d6d6d;font-size:14px;font-family:Helvetica,Arial,sans-serif;outline:0}.sui-slider-horizontal{width:300px;height:50px}.sui-slider-vertical{width:50px;height:300px}.sui-slider-disabled{cursor:default;opacity:.4}.sui-slider-scale{position:absolute;background-color:#ecedee;cursor:pointer;outline:0}.sui-slider-disabled .sui-slider-scale{cursor:default}.sui-slider-scale-horizontal{height:10px}.sui-slider-scale-vertical{width:10px}.sui-slider-tick{position:absolute;background-color:#2199e0}.sui-slider-tick-horizontal{width:1px;height:5px}.sui-slider-tick-vertical{width:5px;height:1px}.sui-slider-bar{position:absolute;width:14px;height:0;padding-bottom:14px;background-color:#197bb5;border:1px solid #197bb5;cursor:pointer}.sui-slider-bar:hover,.sui-slider-focus .sui-slider-bar{background-color:#2199e0;border-color:#2199e0}.sui-slider-disabled .sui-slider-bar{cursor:default;background-color:#a9adb2;border-color:#a9adb2}.sui-slider-disabled .sui-slider-bar:hover{cursor:default;background-color:#a9adb2;border-color:#a9adb2}.sui-slider-button{position:absolute;width:20px;height:0;padding-bottom:20px;color:#6d6d6d;background-color:#ecedee;border:1px solid #c4c4c4;overflow:hidden;cursor:pointer;text-align:center;vertical-align:center}.sui-slider-button:hover{color:#fff;background-color:#2199e0}.sui-slider-disabled .sui-slider-button{color:#6d6d6d;background-color:#ecedee;cursor:default}.sui-slider-button-arrow-left{display:inline-block;zoom:1;width:0;height:0;line-height:0;margin-top:.35em;border-top:.35em solid transparent;border-bottom:.35em solid transparent;border-right:.35em solid}.sui-slider-button-arrow-right{display:inline-block;zoom:1;width:0;height:0;line-height:0;margin-top:.35em;border-top:.35em solid transparent;border-bottom:.35em solid transparent;border-left:.35em solid}.sui-slider-button-arrow-up{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-left:.35em solid transparent;border-right:.35em solid transparent;border-bottom:.35em solid}.sui-slider-button-arrow-down{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-left:.35em solid transparent;border-right:.35em solid transparent;border-top:.35em solid}.sui-slider-mark{position:absolute;font-size:.8em;color:#6d6d6d;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;margin-top:1px} -.sui-tagcloud{position:relative;display:block;color:#6d6d6d;background-color:#fff;border:1px solid #c4c4c4;margin:0;padding:0;outline:0;font-size:14px;font-family:Helvetica,Arial,sans-serif;line-height:normal;overflow:hidden}.sui-tagcloud-title{display:block;width:100%;padding:.7em;color:#fff;background-color:#197bb5;overflow:hidden}.sui-tagcloud-content{display:block;padding:.4em;overflow-x:hidden;overflow-y:auto}.sui-tagcloud-item{position:relative;display:inline-block;margin:.2em}a.sui-tagcloud-link,a.sui-tagcloud-link:active,a.sui-tagcloud-link:hover,a.sui-tagcloud-link:link,a.sui-tagcloud-link:visited{text-decoration:inherit;color:inherit;font-weight:inherit;font-style:inherit} -.sui-timeline{position:relative;display:block;color:#6d6d6d;background-color:#fff;border:1px solid #c4c4c4;margin:0;padding:0;outline:0;font-size:14px;font-family:Helvetica,Arial,sans-serif;line-height:normal;overflow:hidden;vertical-align:top}.sui-timeline-inner{display:block;position:relative;height:100%;overflow:auto;overflow-x:hidden}.sui-timeline-left .sui-timeline-inner{padding-left:1em}.sui-timeline-right .sui-timeline-inner{padding-right:1em}.sui-timeline-axis{position:relative;min-height:100%;width:4px;background:#197bb5}.sui-timeline-axis-left{float:left}.sui-timeline-axis-centered{margin:auto}.sui-timeline-axis-right{float:right}.sui-timeline-event{position:relative;min-width:100px;padding-top:.8em;padding-bottom:1.2em}.sui-timeline-event-icon{display:inline-block;position:absolute;margin:auto;background-color:#fff;border:1px solid #197bb5;border-radius:50%;width:24px;height:24px;margin-left:-12px;margin-top:15px;text-align:center;vertical-align:middle;overflow:hidden;z-index:10;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-timeline-event-icon-collapsible{cursor:pointer}.sui-timeline-event-icon-inner{display:inline-block;margin-top:4px;width:16px;height:16px;vertical-align:top}.sui-timeline-event-icon-inner img{border:none;vertical-align:top}.sui-timeline-event-title{font-weight:700;padding-left:1.2em;padding-right:1.2em;border-bottom:1px solid #197bb5}.sui-timeline-event-left .sui-timeline-event-title{text-align:right}.sui-timeline-event-collapsible .sui-timeline-event-title{cursor:pointer}.sui-timeline-event-text{padding-left:1.2em;padding-right:1.2em}.sui-timeline-event-left .sui-timeline-event-text{text-align:right} -.sui-treemap{position:relative;overflow:hidden;border:1px solid #c4c4c4;font-family:Helvetica,Arial,sans-serif;font-size:14px;outline:0}.sui-treemap-group{position:absolute;overflow:hidden;box-sizing:border-box;-moz-box-sizing:border-box}.sui-treemap-title{position:absolute;overflow:hidden;padding:.2em;color:#fff;background-color:#197bb5;border:1px solid #c4c4c4;box-sizing:border-box;-moz-box-sizing:border-box}.sui-treemap-group-horizontal .sui-treemap-title{text-align:center}.sui-treemap-group-horizontal .sui-treemap-title .sui-treemap-title-inner{width:22px;transform:rotate(-90deg)}.sui-treemap-group-squarified .sui-treemap-title,.sui-treemap-group-vertical .sui-treemap-title{width:100%;height:auto;text-align:center}.sui-treemap-item{position:absolute;overflow:hidden;padding:3px;font-size:.9em;color:#fff;border:1px solid #c4c4c4;box-sizing:border-box;-moz-box-sizing:border-box;cursor:default}.sui-treemap-item:hover{border:3px solid #c4c4c4;padding:1px;opacity:.85}.sui-treemap-disabled{opacity:.4;cursor:default}.sui-treemap-disabled .sui-treemap-item:hover{padding:3px;border:1px solid #c4c4c4;opacity:1} -.sui-treeview{position:relative;display:block;list-style:none;color:#6d6d6d;background-color:#fff;outline:0;font-family:Helvetica,Arial,sans-serif;font-size:14px;line-height:normal;overflow:visible;cursor:default;padding-top:1em;padding-bottom:1em;padding-left:.5em;padding-right:.5em;text-align:left}.sui-treeview-list,ul.sui-treeview-list{list-style:none;margin:0;padding:0;outline:0;padding-left:16px}.sui-treeview-item,li.sui-treeview-item{padding:.2em}.sui-treeview-item-toggle{display:inline-block;width:16px;height:16px;text-align:center;vertical-align:middle;overflow:hidden;cursor:pointer;margin-left:-16px}.sui-treeview-item-toggle-expanded{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-top:.4em solid;position:relative;top:-2px}.sui-treeview-item-toggle-collapsed{display:inline-block;zoom:1;width:0;height:0;line-height:0;border-left:.4em solid;border-top:.4em solid transparent;border-bottom:.4em solid transparent;position:relative}.sui-treeview-item-check{display:inline-block;width:16px;height:16px;text-align:center;vertical-align:middle;overflow:visible;margin-left:.5em;margin-right:.2em}.sui-treeview-item-text{font-family:Helvetica,Arial,sans-serif;font-size:14px;display:inline-block;vertical-align:middle;margin-left:.2em;padding-left:.3em;padding-right:.3em;padding-top:.2em;padding-bottom:.2em}.sui-treeview-item-text:hover{color:#fff;background-color:#2199e0}.sui-treeview-item-text-dragging,.sui-treeview-item-text-dragging:hover{color:#fff;background-color:#197bb5}.sui-treeview-item-text-dropover{color:#fff;background-color:#2199e0}.sui-treeview-item-icon{display:inline-block;width:16px;height:16px;text-align:center;vertical-align:middle;overflow:hidden;margin-right:.5em}.sui-treeview-item-toggle-loading{width:16px;height:16px;overflow:hidden;background-repeat:no-repeat;background-image:url("../img/loading-light-small.gif")}.sui-treeview-item-toggle-loading .sui-treeview-item-toggle-collapsed,.sui-treeview-item-toggle-loading .sui-treeview-item-toggle-expanded{display:none}.sui-treeview-focus .sui-treeview-item-selected>.sui-treeview-item-content>.sui-treeview-item-text,.sui-treeview-focus .sui-treeview-item-selected>.sui-treeview-item-content>.sui-treeview-item-text:hover{color:#fff;background-color:#2199e0}.sui-treeview-focus .sui-treeview-item-active>.sui-treeview-item-content>.sui-treeview-item-text,.sui-treeview-focus .sui-treeview-item-active>.sui-treeview-item-content>.sui-treeview-item-text:hover,.sui-treeview-item-active>.sui-treeview-item-content>.sui-treeview-item-text,.sui-treeview-item-active>.sui-treeview-item-content>.sui-treeview-item-text:hover{color:#fff;background-color:#197bb5}.sui-treeview-item-disabled{pointer-events:none;cursor:default;opacity:.4;color:#6d6d6d}.sui-treeview-item-disabled .sui-checkbox{opacity:1} -.sui-upload{position:relative;display:block;color:#6d6d6d;background-color:#fff;border:solid 1px #c4c4c4;outline:0;font-family:Helvetica,Arial,sans-serif;font-size:14px;line-height:normal;text-align:left}.sui-upload-dropfiles{padding:1em}.sui-upload-dropfiles-hover{color:#6d6d6d;background-color:#ecedee}.sui-upload-button{display:inline-block;vertical-align:top;position:relative;overflow:hidden;cursor:pointer;text-align:center;font-family:Helvetica,Arial,sans-serif;font-size:14px;line-height:normal;padding:.3em;color:#6d6d6d;background-color:#ecedee;border:solid 1px #c4c4c4;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-upload-button:hover{color:#fff;background-color:#2199e0}.sui-upload-button:active{color:#fff;background-color:#197bb5}.sui-upload-button input{cursor:pointer;opacity:0;margin:0;padding:0;position:absolute;right:0;bottom:0;font-size:500px;z-index:1}.sui-upload-button-text{font-size:14px}.sui-upload-drop{display:inline-block;vertical-align:top;padding-left:1em;padding-right:.3em;padding-top:.3em;padding-bottom:.3em;border:solid 1px transparent;font-style:italic}.sui-upload-files,ul.sui-upload-files{list-style:none;margin:0 0 1em 0;padding:0;outline:0}.sui-upload-file,li.sui-upload-file{padding-top:.5em;padding-bottom:.5em;padding-left:1em;padding-right:10em;position:relative}.sui-upload-file-progress{position:absolute;top:.8em;right:2.7em;display:inline-block;width:7em;height:.5em;float:right;border:solid 1px #c4c4c4;overflow:hidden;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-upload-file-progress-inner{display:inline-block;height:.5em;background-color:#197bb5;vertical-align:top}.sui-upload-file-no-progress,li.sui-upload-file-no-progress{padding-right:2.5em}.sui-upload-file-text-sep{margin-right:.3em}.sui-upload-file-action{position:absolute;top:.32em;right:1em;cursor:pointer;color:#197bb5;user-select:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.sui-upload-file-action:hover{color:#2199e0}.sui-upload-file-error{color:#6d6d6d;background-color:#ffebeb}.sui-upload-button-upload{display:block;margin:1em}.sui-upload-disabled{pointer-events:none;cursor:default;opacity:.4}.sui-upload-disabled .sui-upload-button,.sui-upload-disabled .sui-upload-button:active,.sui-upload-disabled .sui-upload-button:hover{pointer-events:none;cursor:default;color:#6d6d6d;background-color:#ecedee;border:solid 1px #c4c4c4}.sui-upload-disabled .sui-upload-button input{cursor:default}.sui-upload-disabled .sui-upload-file-action,.sui-upload-disabled .sui-upload-file-action:hover{pointer-events:none;cursor:default;color:#197bb5}.sui-upload-form{display:none}.sui-upload-iframe{display:none} -.sui-window{display:block;color:#6d6d6d;background-color:#fff;box-shadow:0 0 7px #c4c4c4;border-style:solid;border-width:1px;border-color:#c4c4c4;z-index:1100;line-height:normal;font-size:14px;font-family:Helvetica,Arial,sans-serif}.sui-window-titlebar{position:relative;clear:both;width:100%;height:35px;overflow:hidden;color:#fff;border-color:#2199e0;background-color:#197bb5}.sui-window-title{float:left;display:inline-block;padding:.7em}.sui-window-icons{float:right;display:inline-block;margin-top:6px;margin-right:2px}.sui-button.sui-window-button,.sui-window-button{width:22px;height:22px;cursor:pointer;margin-right:3px;padding:0;text-align:center;border:none;background-color:transparent;background-image:none}.sui-window-button:hover{background-color:#2199e0}.sui-window-button-icon{margin:auto;margin-top:2px}.sui-window-button-icon-close{background-position:-48px 0}.sui-window-button-icon-maximize{background-position:-64px 0}.sui-window-button-icon-restore{background-position:-80px 0}.sui-window-button-icon-minimize{background-position:-96px 0}.sui-window-button-icon-unminimize{background-position:-80px 0}.sui-window-button-icon-pin{background-position:-112px 0}.sui-window-button-icon-unpin{background-position:-128px 0}.sui-window-content{position:relative;clear:both;display:inline-block;overflow:auto;padding:7px;background-color:#fff}.sui-window-modal{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background-color:#919191;opacity:.35} -.sui-rtl{direction:rtl}.sui-rtl .sui-grid tr td:last-child,.sui-rtl .sui-grid tr th:last-child{border-left:0 none}.sui-rtl .sui-grid-core tr td:first-child,.sui-rtl .sui-grid-core tr th:first-child{border-left-style:solid;border-left-width:1px}.sui-rtl .sui-grid-core .sui-headercell{text-align:right}.sui-rtl .sui-headercontent{border-left-style:solid;border-left-width:1px;border-right-style:none;border-right-width:0}.sui-rtl .sui-headercontent.sui-no-y-scroll{border-left-style:none;border-left-width:0}.sui-rtl .sui-grid-core .sui-ascending,.sui-rtl .sui-grid-core .sui-descending{padding-left:0;padding-right:.2em}.sui-rtl .sui-pager-element,.sui-rtl .sui-pagination-ie7{float:right}.sui-rtl .sui-pager-core .sui-pagination{margin:0 .375em 0 0}.sui-rtl .sui-pager-core .sui-pagination a{float:left}.sui-rtl .sui-pager-core div.sui-pager-info-box{float:left;padding-left:.375em}.sui-rtl .sui-pager-core div.sui-pager-info-box-ie{padding-left:.375em}.sui-rtl .sui-pager .sui-pagination .sui-first{border-right:medium none}.sui-rtl .sui-pager .sui-pagination .sui-last{border-right-width:1px}.sui-rtl .sui-button,.sui-rtl .sui-combobox,.sui-rtl .sui-dropdown,.sui-rtl .sui-input,.sui-rtl .sui-listbox .sui-listbox-item,.sui-rtl .sui-numeric-textbox{text-align:right}.sui-rtl .sui-progressbar-value{float:right}.sui-rtl .sui-checkbox-label,.sui-rtl .sui-radiobutton-label{padding-right:.25em}.sui-rtl .sui-combobox-dd{float:left}.sui-rtl .sui-calendar .sui-left-arrow{border-width:.4em 0 .4em .5em;border-color:inherit;border-top-color:transparent;border-bottom-color:transparent}.sui-rtl .sui-calendar .sui-right-arrow{border-width:.4em .5em .4em 0;border-color:inherit;border-top-color:transparent;border-bottom-color:transparent}.sui-rtl .sui-datepicker,.sui-rtl .sui-monthyearpicker,.sui-rtl .sui-timepicker{padding:0 0 0 1.8em;border-right:none}@-moz-document url-prefix(){.sui-rtl .sui-datepicker,.sui-rtl .sui-monthyearpicker,.sui-rtl .sui-timepicker{padding:0 0 0 1.7em}}.sui-rtl .sui-datetimepicker{padding:0 0 0 3.6em;border-right:none}.sui-rtl .sui-datepicker .sui-icon-wrapper,.sui-rtl .sui-datetimepicker .sui-icon-wrapper,.sui-rtl .sui-monthyearpicker .sui-icon-wrapper,.sui-rtl .sui-timepicker .sui-icon-wrapper{left:0;right:inherit}.sui-rtl .sui-datetimepicker .sui-time-icon-wrapper{left:1.7em;right:inherit}.sui-rtl .sui-datepicker .sui-picker-input,.sui-rtl .sui-datetimepicker .sui-picker-input,.sui-rtl .sui-monthyearpicker .sui-picker-input,.sui-rtl .sui-timepicker .sui-picker-input{border-image:none;border-style:none solid;border-width:medium 1px;text-align:right} \ No newline at end of file diff --git a/hyrax/app/controllers/bulkrax/importers_controller.rb b/hyrax/app/controllers/bulkrax/importers_controller.rb index 145085fda4fb3ca031dfbcf11f14f75c63420de9..3161a92530d991f1d31f2291261f961884b04476 100644 --- a/hyrax/app/controllers/bulkrax/importers_controller.rb +++ b/hyrax/app/controllers/bulkrax/importers_controller.rb @@ -42,6 +42,9 @@ module Bulkrax @work_entries = @importer.entries.where(type: @importer.parser.entry_class.to_s).page(params[:work_entries_page]).per(30) @collection_entries = @importer.entries.where(type: @importer.parser.collection_entry_class.to_s).page(params[:collections_entries_page]).per(30) @file_set_entries = @importer.entries.where(type: @importer.parser.file_set_entry_class.to_s).page(params[:file_set_entries_page]).per(30) + @complex_subject_entries = @importer.entries.where(type: @importer.parser.complex_subject_entry_class.to_s).page(params[:complex_subject_entries_page]).per(30) + @complex_session_entries = @importer.entries.where(type: @importer.parser.complex_session_entry_class.to_s).page(params[:complex_session_entries_page]).per(30) + @complex_modality_entries = @importer.entries.where(type: @importer.parser.complex_modality_entry_class.to_s).page(params[:complex_modality_entries_page]).per(30) end end diff --git a/hyrax/app/controllers/bulkrax/rerun_importers_controller.rb b/hyrax/app/controllers/bulkrax/rerun_importers_controller.rb index 821441b630548090adef5e8599de509c6ff909b5..52681ec6b33c15c344f0b86d085552a124be31fe 100644 --- a/hyrax/app/controllers/bulkrax/rerun_importers_controller.rb +++ b/hyrax/app/controllers/bulkrax/rerun_importers_controller.rb @@ -5,27 +5,49 @@ module Bulkrax before_action :set_importer, only: [:rerun_failed_entries] def rerun_failed_entries - if @importer.last_run&.failed_records&.positive? + current_run = @importer.last_run + + if current_run&.failed_records&.positive? ScheduleRelationshipsJob.set(wait: 5.minutes).perform_later(importer_id: @importer.id) + @importer.status_info('Pending') - @importer.entries.each do |failed_entry| - next unless failed_entry.status == 'Failed' + @importer.entries.each do |entry| + next if entry.status == 'Complete' - type = if failed_entry.raw_metadata['model'] == 'CrcDataset' + type = if entry.raw_metadata['model'] == 'CrcDataset' 'Work' else - failed_entry.raw_metadata['model'] + entry.raw_metadata['model'] end - "Bulkrax::Import#{type}Job".constantize.send( - failed_entry.parser.perform_method, - failed_entry.id, + entry.status_info('Pending') + current_run.decrement!(:failed_records) + current_run.increment!(:enqueued_records) + + if type == 'Collection' + current_run.decrement!(:failed_collections) + elsif type == 'Work' + current_run.decrement!(:failed_works) + elsif type == 'FileSet' + current_run.decrement!(:failed_file_sets) + elsif type == 'ComplexSubject' + current_run.decrement!(:failed_complex_subjects) + elsif type == 'ComplexSession' + current_run.decrement!(:failed_complex_sessions) + elsif type == 'ComplexModality' + current_run.decrement!(:failed_complex_modalities) + end + + "Bulkrax::CrcDataset::Import#{type}Job".constantize.send( + entry.parser.perform_method, + entry.id, @importer.importer_runs.last.id ) end - @importer.record_status - elsif @importer.last_run && @importer.parser.total.positive? && @importer.last_run.processed_records.zero? + current_run.save + + elsif current_run && @importer.parser.total.positive? && current_run.processed_records.zero? Bulkrax::ImporterJob.send( @importer.parser.perform_method, @importer.id diff --git a/hyrax/app/controllers/catalog_controller.rb b/hyrax/app/controllers/catalog_controller.rb index 66fc250a7e59960abca8b9b83da402910e791236..43f54342adfbddb7e656b2c68b54fad8f8f1b9fa 100644 --- a/hyrax/app/controllers/catalog_controller.rb +++ b/hyrax/app/controllers/catalog_controller.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true class CatalogController < ApplicationController + + include BlacklightRangeLimit::ControllerOverride include Hydra::Catalog include Hydra::Controller::ControllerBehavior @@ -64,7 +66,25 @@ class CatalogController < ApplicationController CrcDatasetIndexer.facet_fields ).uniq facet_fields.each do |fld| - config.add_facet_field fld, limit: 5 + if fld.end_with?("_dtsim") + config.add_facet_field fld, + range: { + num_segments: 10, + assumed_boundaries: [1100, Time.now.year + 2], + segments: false, + maxlength: 4 + } + elsif fld.end_with?("_itsim") + config.add_facet_field fld, + range: { + num_segments: 10, + assumed_boundaries: [0, 100], + segments: false, + maxlength: 4 + } + else + config.add_facet_field fld, limit: 5 + end end # The generic_type and depositor are not displayed on the facet list diff --git a/hyrax/app/controllers/hyrax/crc_datasets/complex_modalities_controller.rb b/hyrax/app/controllers/hyrax/crc_datasets/complex_modalities_controller.rb index a9e618567b347c62457ccf87b2b8dc97a7d1883e..4cc70b2d553d471c47e6b347092395c70e765701 100644 --- a/hyrax/app/controllers/hyrax/crc_datasets/complex_modalities_controller.rb +++ b/hyrax/app/controllers/hyrax/crc_datasets/complex_modalities_controller.rb @@ -6,6 +6,7 @@ module Hyrax before_action :set_crc_dataset before_action :set_complex_session, only: %i[new create] before_action :set_complex_modality, only: %i[show edit update] + before_action :check_tombstone with_themed_layout :decide_layout def new @@ -17,7 +18,7 @@ module Hyrax end def show - @modality_members = Kaminari.paginate_array(@complex_modality.file_sets).page(params[:page] || 1).per(params[:per_page] || 5) + @modality_members = Kaminari.paginate_array(@complex_modality.file_sets_fast_load_metadata).page(params[:page] || 1).per(params[:per_page] || 5) end def create @@ -59,7 +60,7 @@ module Hyrax end def complex_modality_params - params.require(:complex_modality).permit(:modality_title, :modality_identifier, :modality) + params.require(:complex_modality).permit(:modality_title, :modality) end def decide_layout @@ -82,6 +83,12 @@ module Hyrax def save_alert 'Your files are being processed by RDMS in the background. The metadata and access controls you specified are being applied. You may need to refresh this page to see these updates.' end + + def check_tombstone + if @crc_dataset.is_tombstoned == true + redirect_to main_app.polymorphic_path(@crc_dataset) + end + end end end end diff --git a/hyrax/app/controllers/hyrax/crc_datasets/complex_sessions_controller.rb b/hyrax/app/controllers/hyrax/crc_datasets/complex_sessions_controller.rb index bff4acbeaaffb7955dcbc852645d04da85d4d1d0..dd8654acc55844ea58330eaf2cf043d4d4c1ffc7 100644 --- a/hyrax/app/controllers/hyrax/crc_datasets/complex_sessions_controller.rb +++ b/hyrax/app/controllers/hyrax/crc_datasets/complex_sessions_controller.rb @@ -6,6 +6,7 @@ module Hyrax before_action :set_crc_dataset before_action :set_complex_subject, only: %i[new create] before_action :set_complex_session, only: %i[show edit update] + before_action :check_tombstone with_themed_layout :decide_layout def new @@ -15,7 +16,7 @@ module Hyrax def edit; end def show - @session_members = Kaminari.paginate_array(@complex_session.file_sets + @complex_session.complex_modalities).page(params[:page] || 1).per(params[:per_page] || 5) + @session_members = Kaminari.paginate_array(@complex_session.file_sets_fast_load_metadata + @complex_session.complex_modalities).page(params[:page] || 1).per(params[:per_page] || 5) end def create @@ -57,7 +58,7 @@ module Hyrax end def complex_session_params - params.require(:complex_session).permit(:session_identifier, :session_title, :session_date_recorded) + params.require(:complex_session).permit(:session_title, :session_date_recorded) end def decide_layout @@ -80,6 +81,12 @@ module Hyrax def save_alert 'Your files are being processed by RDMS in the background. The metadata and access controls you specified are being applied. You may need to refresh this page to see these updates.' end + + def check_tombstone + if @crc_dataset.is_tombstoned == true + redirect_to main_app.polymorphic_path(@crc_dataset) + end + end end end end diff --git a/hyrax/app/controllers/hyrax/crc_datasets/complex_subjects_controller.rb b/hyrax/app/controllers/hyrax/crc_datasets/complex_subjects_controller.rb index abf5ec2f185795a595df4e74f04673de5b4f4fcc..25a74734022e7aa5ee552718c2c6293daead6ce3 100644 --- a/hyrax/app/controllers/hyrax/crc_datasets/complex_subjects_controller.rb +++ b/hyrax/app/controllers/hyrax/crc_datasets/complex_subjects_controller.rb @@ -5,6 +5,7 @@ module Hyrax class ComplexSubjectsController < ApplicationController before_action :set_crc_dataset before_action :set_complex_subject, only: %i[show edit update] + before_action :check_tombstone with_themed_layout :decide_layout def new @@ -14,7 +15,7 @@ module Hyrax def edit; end def show - @subject_members = Kaminari.paginate_array(@complex_subject.file_sets + @complex_subject.complex_sessions).page(params[:page] || 1).per(params[:per_page] || 5) + @subject_members = Kaminari.paginate_array(@complex_subject.file_sets_fast_load_metadata + @complex_subject.complex_sessions).page(params[:page] || 1).per(params[:per_page] || 5) end def create @@ -52,7 +53,7 @@ module Hyrax end def complex_subject_params - params.require(:complex_subject).permit(:subject_title, :subject_identifier, :subject_species, :subject_type, :subject_sex, :subject_age) + params.require(:complex_subject).permit(:subject_title, :subject_species, :subject_type, :subject_sex, :subject_age) end def decide_layout @@ -75,6 +76,12 @@ module Hyrax def save_alert 'Your files are being processed by RDMS in the background. The metadata and access controls you specified are being applied. You may need to refresh this page to see these updates.' end + + def check_tombstone + if @crc_dataset.is_tombstoned == true + redirect_to main_app.polymorphic_path(@crc_dataset) + end + end end end end diff --git a/hyrax/app/controllers/hyrax/crc_datasets_controller.rb b/hyrax/app/controllers/hyrax/crc_datasets_controller.rb index 520b13e2f163a6fd548a138fbfd33491bd49fe1a..23c5642a7029b1f0ec4f18a438f67eecc5281754 100644 --- a/hyrax/app/controllers/hyrax/crc_datasets_controller.rb +++ b/hyrax/app/controllers/hyrax/crc_datasets_controller.rb @@ -14,6 +14,7 @@ module Hyrax self.show_presenter = Hyrax::CrcDatasetPresenter before_action :authorize_collection_access, only: :new + before_action :check_tombstone, only: [:show, :edit] def authorize_collection_access group_id = params[:add_works_to_collection] @@ -37,6 +38,20 @@ module Hyrax private + def check_tombstone + @crc_dataset = CrcDataset.find(params[:id]) + if current_user.crc_manager? || current_user.admin? + if @crc_dataset.is_tombstoned == true && params[:action] == 'edit' + redirect_to main_app.polymorphic_path(@crc_dataset) + end + else + if @crc_dataset.is_tombstoned == true + flash[:notice] = 'The work (dataset) is not available because it has Tombstoned' + render 'shared/tombstone', status: :unauthorized + end + end + end + def set_curation_attributes_from_parent parent_record = CrcDataset.find(params[:parent_id]) diff --git a/hyrax/app/controllers/hyrax/dashboard/collection_members_controller.rb b/hyrax/app/controllers/hyrax/dashboard/collection_members_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..04f000c3429e361fd41f8e449d53d4884f177436 --- /dev/null +++ b/hyrax/app/controllers/hyrax/dashboard/collection_members_controller.rb @@ -0,0 +1,96 @@ +# frozen_string_literal: true +module Hyrax + module Dashboard + ## Shows a list of all collections to the admins + class CollectionMembersController < Hyrax::My::CollectionsController + before_action :filter_docs_with_read_access! + + include Hyrax::Collections::AcceptsBatches + + load_resource only: :update_members, + instance_name: :collection, + class: Hyrax.config.collection_model + + def after_update + respond_to do |format| + format.html { redirect_to success_return_path, notice: t('hyrax.dashboard.my.action.collection_update_success') } + format.json { render json: @collection, status: :updated, location: dashboard_collection_path(@collection) } + end + end + + def after_update_error(err_msg) + respond_to do |format| + format.html { redirect_to err_return_path, alert: err_msg } + format.json { render json: @collection.errors, status: :unprocessable_entity } + end + end + + def update_members # rubocop:disable Metrics/MethodLength + err_msg = validate + after_update_error(err_msg) if err_msg.present? + return if err_msg.present? + + begin + template = Hyrax::PermissionTemplate.find_by!(source_id: @collection.id) + + @collection.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX + terminator_actor = Hyrax::Actors::Terminator.new + membership_actor = Hyrax::Actors::CollectionsMembershipActor.new(terminator_actor) + member_collection_hash = {member_of_collections_attributes: {'0': {id: @collection.id}}} + + batch_ids.each do |work_id| + work = CrcDataset.find(work_id) + env = Hyrax::Actors::Environment.new(work, current_user.ability, member_collection_hash) + + membership_actor.create(env) + + Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) + + work.save + end + + after_update + rescue Hyrax::SingleMembershipError => err + messages = JSON.parse(err.message) + if messages.size == batch_ids.size + after_update_error(messages.uniq.join(', ')) + elsif messages.present? + flash[:error] = messages.uniq.join(', ') + after_update + end + end + end + + private + + def validate + return t('hyrax.dashboard.my.action.members_no_access') if + batch_ids.blank? + return t('hyrax.dashboard.my.action.collection_deny_add_members') unless + current_ability.can?(:deposit, @collection) + return t('hyrax.dashboard.my.action.add_to_collection_only') unless + member_action == "add" # should never happen + end + + def success_return_path + dashboard_collection_path(collection_id) + end + + def err_return_path + dashboard_collections_path + end + + def collection_id + params[:id] + end + + def batch_ids + params[:batch_document_ids] + end + + def member_action + params[:collection][:members] + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/controllers/hyrax/datasets_controller.rb b/hyrax/app/controllers/hyrax/datasets_controller.rb index 2e58b47cdf6484f3d371e6ac7ca22f76451d199a..f3faf991b0d3adf9afadeeb251d18a12862207af 100644 --- a/hyrax/app/controllers/hyrax/datasets_controller.rb +++ b/hyrax/app/controllers/hyrax/datasets_controller.rb @@ -10,5 +10,23 @@ module Hyrax # Use this line if you want to use a custom presenter self.show_presenter = Hyrax::DatasetPresenter + + before_action :check_tombstone, only: [:show, :edit] + + private + + def check_tombstone + @dataset = Dataset.find(params[:id]) + if current_user.admin? + if @dataset.is_tombstoned == true && params[:action] == 'edit' + redirect_to main_app.polymorphic_path(@dataset) + end + else + if @dataset.is_tombstoned == true + flash[:notice] = 'The work (dataset) is not available because it has Tombstoned' + render 'shared/tombstone', status: :unauthorized + end + end + end end end diff --git a/hyrax/app/controllers/hyrax/tombstones_controller.rb b/hyrax/app/controllers/hyrax/tombstones_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..1a940d7b5428c99db12db09709efb723cc8251f5 --- /dev/null +++ b/hyrax/app/controllers/hyrax/tombstones_controller.rb @@ -0,0 +1,23 @@ +module Hyrax + class TombstonesController < ApplicationController + before_action :set_curation_concern + + def update + if params[:status] == 'tombstone' + @curation_concern.intialize_tombstone! + elsif params[:status] == 'restore' + @curation_concern.restore_tombstone! + elsif params[:status] == 'confirm' && params[:type] == 'CrcDataset' + @curation_concern.confirm_tombstone! + end + + redirect_to main_app.polymorphic_path(@curation_concern) + end + + private + + def set_curation_concern + @curation_concern = params[:type].constantize.find(params[:id]) + end + end +end \ No newline at end of file diff --git a/hyrax/app/controllers/search_history_controller.rb b/hyrax/app/controllers/search_history_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..67cb014cb4a0c573189980a7c452d9aa002e06bd --- /dev/null +++ b/hyrax/app/controllers/search_history_controller.rb @@ -0,0 +1,6 @@ +class SearchHistoryController < ApplicationController + include Blacklight::SearchHistory + + helper BlacklightRangeLimit::ViewHelperOverride + helper RangeLimitHelper +end diff --git a/hyrax/app/factories/bulkrax/object_factory.rb b/hyrax/app/factories/bulkrax/object_factory.rb new file mode 100644 index 0000000000000000000000000000000000000000..29665276058afc38939283ae2cc4b04c5c774bf5 --- /dev/null +++ b/hyrax/app/factories/bulkrax/object_factory.rb @@ -0,0 +1,243 @@ +# frozen_string_literal: true + +module Bulkrax + class ObjectFactory + extend ActiveModel::Callbacks + include Bulkrax::FileFactory + include DynamicRecordLookup + + define_model_callbacks :save, :create + attr_reader :attributes, :object, :source_identifier_value, :klass, :replace_files, :update_files, :work_identifier, :related_parents_parsed_mapping, :importer_run_id + + # rubocop:disable Metrics/ParameterLists + def initialize(attributes:, source_identifier_value:, work_identifier:, related_parents_parsed_mapping: nil, replace_files: false, user: nil, klass: nil, importer_run_id: nil, update_files: false) + @attributes = ActiveSupport::HashWithIndifferentAccess.new(attributes) + @replace_files = replace_files + @update_files = update_files + @user = user || User.batch_user + @work_identifier = work_identifier + @related_parents_parsed_mapping = related_parents_parsed_mapping + @source_identifier_value = source_identifier_value + @klass = klass || Bulkrax.default_work_type.constantize + @importer_run_id = importer_run_id + end + # rubocop:enable Metrics/ParameterLists + + # update files is set, replace files is set or this is a create + def with_files + update_files || replace_files || !object + end + + def run + arg_hash = { id: attributes[:id], name: 'UPDATE', klass: klass } + @object = find + if object + object.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX if object.respond_to?(:reindex_extent) + ActiveSupport::Notifications.instrument('import.importer', arg_hash) { update } + else + ActiveSupport::Notifications.instrument('import.importer', arg_hash.merge(name: 'CREATE')) { create } + end + yield(object) if block_given? + object + end + + def run! + self.run + # Create the error exception if the object is not validly saved for some reason + raise ActiveFedora::RecordInvalid, object if !object.persisted? || object.changed? + object + end + + def update + raise "Object doesn't exist" unless object + destroy_existing_files if @replace_files && ![Collection, FileSet].include?(klass) + attrs = transform_attributes(update: true) + run_callbacks :save do + if klass == Collection + update_collection(attrs) + elsif klass == FileSet + update_file_set(attrs) + else + work_actor.update(environment(attrs)) + end + end + object.apply_depositor_metadata(@user) && object.save! if object.depositor.nil? + log_updated(object) + end + + def find + return find_by_id if attributes[:id].present? + return search_by_identifier if attributes[work_identifier].present? + return search_by_source_identifier if ['ComplexSubject', 'ComplexSession', 'ComplexModality'].include?(klass.name) + end + + def find_by_id + klass.find(attributes[:id]) if klass.exists?(attributes[:id]) + end + + def search_by_source_identifier + klass.find_by(source_identifier: source_identifier_value) + end + + def find_or_create + o = find + return o if o + run(&:save!) + end + + def search_by_identifier + query = { work_identifier => + source_identifier_value } + # Query can return partial matches (something6 matches both something6 and something68) + # so we need to weed out any that are not the correct full match. But other items might be + # in the multivalued field, so we have to go through them one at a time. + match = klass.where(query).detect { |m| m.send(work_identifier).include?(source_identifier_value) } + return match if match + end + + # An ActiveFedora bug when there are many habtm <-> has_many associations means they won't all get saved. + # https://github.com/projecthydra/active_fedora/issues/874 + # 2+ years later, still open! + def create + attrs = transform_attributes + @object = klass.new + object.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX if object.respond_to?(:reindex_extent) + run_callbacks :save do + run_callbacks :create do + if klass == Collection + create_collection(attrs) + elsif klass == FileSet + create_file_set(attrs) + else + work_actor.create(environment(attrs)) + end + end + end + object.apply_depositor_metadata(@user) && object.save! if object.depositor.nil? + log_created(object) + end + + def log_created(obj) + msg = "Created #{klass.model_name.human} #{obj.id}" + Rails.logger.info("#{msg} (#{Array(attributes[work_identifier]).first})") + end + + def log_updated(obj) + msg = "Updated #{klass.model_name.human} #{obj.id}" + Rails.logger.info("#{msg} (#{Array(attributes[work_identifier]).first})") + end + + def log_deleted_fs(obj) + msg = "Deleted All Files from #{obj.id}" + Rails.logger.info("#{msg} (#{Array(attributes[work_identifier]).first})") + end + + private + + # @param [Hash] attrs the attributes to put in the environment + # @return [Hyrax::Actors::Environment] + def environment(attrs) + Hyrax::Actors::Environment.new(object, Ability.new(@user), attrs) + end + + def work_actor + Hyrax::CurationConcern.actor + end + + def create_collection(attrs) + attrs = clean_attrs(attrs) + attrs = collection_type(attrs) + object.attributes = attrs + object.save! + end + + def update_collection(attrs) + object.attributes = attrs + object.save! + end + + # This method is heavily inspired by Hyrax's AttachFilesToWorkJob + def create_file_set(attrs) + _, work = find_record(attributes[related_parents_parsed_mapping].first, importer_run_id) + work_permissions = work.permissions.map(&:to_hash) + attrs = clean_attrs(attrs) + file_set_attrs = attrs.slice(*object.attributes.keys) + object.assign_attributes(file_set_attrs) + + attrs['uploaded_files']&.each do |uploaded_file_id| + uploaded_file = ::Hyrax::UploadedFile.find(uploaded_file_id) + next if uploaded_file.file_set_uri.present? + + create_file_set_actor(attrs, work, work_permissions, uploaded_file) + end + attrs['remote_files']&.each do |remote_file| + create_file_set_actor(attrs, work, work_permissions, nil, remote_file) + end + + object.save! + end + + def create_file_set_actor(attrs, work, work_permissions, uploaded_file, remote_file = nil) + actor = ::Hyrax::Actors::FileSetActor.new(object, @user) + uploaded_file&.update(file_set_uri: actor.file_set.uri) + actor.file_set.permissions_attributes = work_permissions + actor.create_metadata(attrs) + actor.attach_to_work(work, attrs) + actor.create_content(uploaded_file) if uploaded_file + handle_remote_file(remote_file: remote_file, actor: actor, update: false) if remote_file + end + + def update_file_set(attrs) + file_set_attrs = attrs.slice(*object.attributes.keys) + actor = ::Hyrax::Actors::FileSetActor.new(object, @user) + attrs['remote_files']&.each do |remote_file| + handle_remote_file(remote_file: remote_file, actor: actor, update: true) + end + actor.update_metadata(file_set_attrs) + end + + def handle_remote_file(remote_file:, actor:, update: false) + actor.file_set.label = remote_file['file_name'] + actor.file_set.import_url = remote_file['url'] + + url = remote_file['url'] + tmp_file = Tempfile.new(remote_file['file_name'].split('.').first) + tmp_file.binmode + + URI.open(url) do |url_file| + tmp_file.write(url_file.read) + end + + tmp_file.rewind + update == true ? actor.update_content(tmp_file) : actor.create_content(tmp_file, from_url: true) + tmp_file.close + end + + def clean_attrs(attrs) + # avoid the "ArgumentError: Identifier must be a string of size > 0 in order to be treeified" error + # when setting object.attributes + attrs.delete('id') if attrs['id'].blank? + attrs + end + + def collection_type(attrs) + return attrs if attrs['collection_type_gid'].present? + + attrs['collection_type_gid'] = Hyrax::CollectionType.find_or_create_default_collection_type.gid + attrs + end + + # Override if we need to map the attributes from the parser in + # a way that is compatible with how the factory needs them. + def transform_attributes(update: false) + @transform_attributes = attributes.slice(*permitted_attributes) + @transform_attributes.merge!(file_attributes(update_files)) if with_files + update ? @transform_attributes.except(:id) : @transform_attributes + end + + # Regardless of what the Parser gives us, these are the properties we are prepared to accept. + def permitted_attributes + klass.properties.keys.map(&:to_sym) + %i[id edit_users edit_groups read_groups visibility work_members_attributes admin_set_id] + end + end +end \ No newline at end of file diff --git a/hyrax/app/forms/hyrax/dataset_form.rb b/hyrax/app/forms/hyrax/dataset_form.rb index c4a0dad5bb12d861f9feb1bc74a5422a20a954b9..0581287b4009ca6ac42303265d17dcd75ed3bade 100644 --- a/hyrax/app/forms/hyrax/dataset_form.rb +++ b/hyrax/app/forms/hyrax/dataset_form.rb @@ -29,7 +29,6 @@ module Hyrax :complex_relation, :software_version, :license, - :abstract, :description, # issue #21 - remove the following fields from form # :dataset_method, @@ -52,7 +51,7 @@ module Hyrax self.required_fields += [ # Adding all required fields in order of display in form - :title, :complex_person, :abstract, :resource_type, :keyword, :license + :title, :complex_person, :description, :resource_type, :keyword, :license ] def tabs @@ -63,7 +62,6 @@ module Hyrax # Date, Subject, Language, Location, Version, Resource Type [ :alternative_title, - :description, :complex_date, :subject, :language, diff --git a/hyrax/app/indexers/complex_field/modality_indexer.rb b/hyrax/app/indexers/complex_field/modality_indexer.rb index c618bcfb34ec4f93b18c3824dbd69803af4662e9..bc8b7e6eca15ac5157a592bd2a6fe0acd455477b 100644 --- a/hyrax/app/indexers/complex_field/modality_indexer.rb +++ b/hyrax/app/indexers/complex_field/modality_indexer.rb @@ -12,13 +12,6 @@ module ComplexField solr_doc[Solrizer.solr_name('complex_modality', :displayable)] = complex_modalities.to_json complex_modalities.each do |c| - # identifier - fld_name = Solrizer.solr_name('modality_identifier', :symbol) - vals = c.modality_identifier - solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) - solr_doc[fld_name] << vals - solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - # modality_titles vals = c.modality_title fld_name = Solrizer.solr_name('modality_title', :stored_searchable) @@ -54,7 +47,6 @@ module ComplexField def self.modality_search_fields # solr fields that will be used for a search fields = [] - fields << Solrizer.solr_name('modality_identifier', :symbol) fields << Solrizer.solr_name('modality_title', :stored_searchable) fields << Solrizer.solr_name('modality', :stored_searchable) fields diff --git a/hyrax/app/indexers/complex_field/session_indexer.rb b/hyrax/app/indexers/complex_field/session_indexer.rb index 44d01ad27087d1e54a46d082ee339a5dac81b90b..b56e01d5bc8e6f868ac601614d89273f482b7687 100644 --- a/hyrax/app/indexers/complex_field/session_indexer.rb +++ b/hyrax/app/indexers/complex_field/session_indexer.rb @@ -11,13 +11,6 @@ module ComplexField solr_doc[Solrizer.solr_name('complex_session', :displayable)] = complex_sessions.to_json complex_sessions.each do |c| - # identifier - fld_name = Solrizer.solr_name('session_identifier', :symbol) - vals = c.session_identifier - solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) - solr_doc[fld_name] << vals - solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - # session_titles vals = c.session_title fld_name = Solrizer.solr_name('session', :stored_searchable) @@ -30,28 +23,32 @@ module ComplexField solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq # date_recorded as date - vals = c.session_date_recorded.reject(&:blank?) - fld_name = Solrizer.solr_name('date_recorded', :dateable) - solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) - begin - dates_utc = vals.map { |d| d.tr('0-9a-zA-Z', '0-9a-zA-Z') }.map { |d| d.length <= 4 ? DateTime.strptime(d, '%Y').utc.iso8601 : DateTime.parse(d).utc.iso8601 } unless dates.blank? - rescue ArgumentError - dates_utc = vals.map { |d| d.tr('0-9a-zA-Z', '0-9a-zA-Z') }.map { |d| DateTime.parse("#{d}-01").utc.iso8601 } unless dates.blank? + unless c.session_date_recorded.blank? + vals = c.session_date_recorded + fld_name = Solrizer.solr_name('date_recorded', :dateable) + solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) + begin + dates_utc = vals.tr('0-9a-zA-Z', '0-9a-zA-Z') + dates_utc = (dates_utc.length <= 4 ? DateTime.strptime(dates_utc, '%Y').utc.iso8601 : DateTime.parse(dates_utc).utc.iso8601) unless vals.blank? + rescue ArgumentError + dates_utc = vals.tr('0-9a-zA-Z', '0-9a-zA-Z') + dates_utc = DateTime.parse("#{dates_utc}-01").utc.iso8601 unless vals.blank? + end + # as date + solr_doc[fld_name] << dates_utc unless dates_utc.blank? + solr_doc[fld_name].flatten! + # Add years + year_fld = Solrizer.solr_name("year_recorded", :facetable) + years = DateTime.parse(dates_utc).strftime("%Y") unless dates_utc.blank? + solr_doc[year_fld] = [] unless solr_doc.include?(year_fld) + solr_doc[year_fld] << years unless years.blank? + solr_doc[year_fld].flatten! + # date as displayable + fld_name = Solrizer.solr_name("date_recorded", :displayable) + solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) + solr_doc[fld_name] << vals + solr_doc[fld_name].flatten! end - # as date - solr_doc[fld_name] << dates_utc unless dates_utc.blank? - solr_doc[fld_name].flatten! - # Add years - year_fld = Solrizer.solr_name("year_recorded", :facetable) - years = dates_utc.map { |d| DateTime.parse(d).strftime("%Y") } - solr_doc[year_fld] = [] unless solr_doc.include?(year_fld) - solr_doc[year_fld] << years unless years.blank? - solr_doc[year_fld].flatten! - # date as displayable - fld_name = Solrizer.solr_name("date_recorded", :displayable) - solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) - solr_doc[fld_name] << vals - solr_doc[fld_name].flatten! end end @@ -67,7 +64,7 @@ module ComplexField def self.session_search_fields # solr fields that will be used for a search fields = [] - fields << Solrizer.solr_name('session_identifier', :symbol) + fields << Solrizer.solr_name('session_title', :symbol) fields << Solrizer.solr_name('session', :stored_searchable) fields << Solrizer.solr_name('date_recorded', :dateable) fields diff --git a/hyrax/app/indexers/complex_field/subject_indexer.rb b/hyrax/app/indexers/complex_field/subject_indexer.rb index a87dbfa9dd2b9ca375c00a45393d39026947575d..56e45907c34bea7c415fb3005b9ccf4bf93be630 100644 --- a/hyrax/app/indexers/complex_field/subject_indexer.rb +++ b/hyrax/app/indexers/complex_field/subject_indexer.rb @@ -9,15 +9,8 @@ module ComplexField def index_subject(solr_doc) solr_doc[Solrizer.solr_name('complex_subject', :displayable)] = object.complex_subjects.to_json object.complex_subjects.each do |c| - # identifier - fld_name = Solrizer.solr_name('complex_subject_identifier', :symbol) - vals = c.subject_identifier - solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) - solr_doc[fld_name] << vals - solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - # species - vals = c.subject_species + vals = [c.subject_species] fld_name = Solrizer.solr_name('complex_subject_species', :stored_searchable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals @@ -28,7 +21,7 @@ module ComplexField solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq # type - vals = c.subject_type + vals = [c.subject_type] fld_name = Solrizer.solr_name('complex_subject_type', :stored_searchable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals @@ -39,7 +32,7 @@ module ComplexField solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq # sex - vals = c.subject_sex + vals = [c.subject_sex] fld_name = Solrizer.solr_name('complex_subject_sex', :stored_searchable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals @@ -50,7 +43,7 @@ module ComplexField solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq # age - vals = c.subject_age + vals = [c.subject_age] fld_name = Solrizer.solr_name('complex_subject_age', :stored_searchable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals @@ -59,6 +52,15 @@ module ComplexField solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq + # for integer range queries + fld_name = 'complex_subject_age_itsim' + int_vals = [] + vals.each do |v| + int_vals << Integer(v) if Integer === Integer(v, exception: false) + end + solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) + solr_doc[fld_name] << int_vals + solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq end end @@ -68,14 +70,13 @@ module ComplexField fields << Solrizer.solr_name('complex_subject_species', :facetable) fields << Solrizer.solr_name('complex_subject_type', :facetable) fields << Solrizer.solr_name('complex_subject_sex', :facetable) - fields << Solrizer.solr_name('complex_subject_age', :facetable) + fields << 'complex_subject_age_itsim' fields end def self.subject_search_fields # solr fields that will be used for a search fields = [] - fields << Solrizer.solr_name('complex_subject_identifier', :symbol) fields << Solrizer.solr_name('complex_subject_species', :stored_searchable) fields << Solrizer.solr_name('complex_subject_type', :stored_searchable) fields << Solrizer.solr_name('complex_subject_sex', :stored_searchable) diff --git a/hyrax/app/jobs/attach_files_to_work_job.rb b/hyrax/app/jobs/attach_files_to_work_job.rb index 87ba6afa6aaeacfab101550d2da0b7b9a683ec1a..778648d906d5b73cf7a8bb880d48a1cae0c0cfe6 100644 --- a/hyrax/app/jobs/attach_files_to_work_job.rb +++ b/hyrax/app/jobs/attach_files_to_work_job.rb @@ -30,7 +30,16 @@ class AttachFilesToWorkJob < Hyrax::ApplicationJob end def attach_work(user, work, work_attributes, work_permissions, uploaded_file) + if work.class.name == "CrcDataset" + work_attributes[:for_complex_type] ||= "CrcDataset" + work_attributes[:for_complex_identifier] ||= work.source.first + else + work_attributes[:for_complex_type] = nil + work_attributes[:for_complex_identifier] = nil + end + actor = Hyrax::Actors::FileSetActor.new(FileSet.create(for_complex_identifier: work_attributes[:for_complex_identifier], for_complex_type: work_attributes[:for_complex_type]), user) + file_set_attributes = file_set_attrs(work_attributes, uploaded_file) metadata = visibility_attributes(work_attributes, file_set_attributes) uploaded_file.add_file_set!(actor.file_set) diff --git a/hyrax/app/jobs/bulkrax/crc_dataset/import_collection_job.rb b/hyrax/app/jobs/bulkrax/crc_dataset/import_collection_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..a19b33c11d97be8a3f993576a2ae497a10449722 --- /dev/null +++ b/hyrax/app/jobs/bulkrax/crc_dataset/import_collection_job.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Bulkrax + module CrcDataset + class ImportCollectionJob < ApplicationJob + queue_as :import + + # rubocop:disable Rails/SkipsModelValidations + def perform(*args) + entry = Entry.find(args[0]) + begin + entry.build + entry.save! + ImporterRun.find(args[1]).increment!(:processed_records) + ImporterRun.find(args[1]).increment!(:processed_collections) + ImporterRun.find(args[1]).decrement!(:enqueued_records) unless ImporterRun.find(args[1]).enqueued_records <= 0 # rubocop:disable Style/IdenticalConditionalBranches + rescue => e + ImporterRun.find(args[1]).increment!(:failed_records) + ImporterRun.find(args[1]).increment!(:failed_collections) + ImporterRun.find(args[1]).decrement!(:enqueued_records) unless ImporterRun.find(args[1]).enqueued_records <= 0 # rubocop:disable Style/IdenticalConditionalBranches + raise e + end + entry.importer.current_run = ImporterRun.find(args[1]) + entry.importer.record_status + end + # rubocop:enable Rails/SkipsModelValidations + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_modality_job.rb b/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_modality_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..6cb1526cd08d4e51694c1c7b5c795021d264a2b4 --- /dev/null +++ b/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_modality_job.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Bulkrax + module CrcDataset + class ImportComplexModalityJob < ApplicationJob + queue_as :complex_modality_import + + # rubocop:disable Rails/SkipsModelValidations + def perform(entry_id, run_id, time_to_live = 3, *) + entry = Entry.find(entry_id) + importer_run = ImporterRun.find(run_id) + entry.build + if entry.status == "Complete" + importer_run.increment!(:processed_records) + importer_run.increment!(:processed_complex_modalities) + else + # do not retry here because whatever parse error kept you from creating a complex_modality will likely + # keep preventing you from doing so. + importer_run.increment!(:failed_records) + importer_run.increment!(:failed_complex_modalities) + end + # Regardless of completion or not, we want to decrement the enqueued records. + importer_run.decrement!(:enqueued_records) unless importer_run.enqueued_records <= 0 + + entry.save! + entry.importer.current_run = importer_run + entry.importer.record_status + rescue Bulkrax::ComplexSessionCreatedError => e + Rails.logger.warn("#{self.class} entry_id: #{entry_id}, run_id: #{run_id} encountered #{e.class}: #{e.message}") + # You get 3 attempts at the above perform before we have the import exception cascade into + # the Sidekiq retry ecosystem. + # rubocop:disable Style/IfUnlessModifier + if time_to_live <= 1 + raise "Exhauted reschedule limit for #{self.class} entry_id: #{entry_id}, run_id: #{run_id}. Attemping retries" + end + # rubocop:enable Style/IfUnlessModifier + reschedule(entry_id, run_id, time_to_live) + end + # rubocop:enable Rails/SkipsModelValidations + + def reschedule(entry_id, run_id, time_to_live) + ImportComplexModalityJob.set(wait: 1.minute).perform_later(entry_id, run_id, time_to_live - 1) + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_session_job.rb b/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_session_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..0dd994156a2fb1201247ffe1466de97e72cae6df --- /dev/null +++ b/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_session_job.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Bulkrax + module CrcDataset + class ImportComplexSessionJob < ApplicationJob + queue_as :complex_session_import + + # rubocop:disable Rails/SkipsModelValidations + def perform(entry_id, run_id, time_to_live = 3, *) + entry = Entry.find(entry_id) + importer_run = ImporterRun.find(run_id) + entry.build + if entry.status == "Complete" + importer_run.increment!(:processed_records) + importer_run.increment!(:processed_complex_sessions) + else + # do not retry here because whatever parse error kept you from creating a complex_session will likely + # keep preventing you from doing so. + importer_run.increment!(:failed_records) + importer_run.increment!(:failed_complex_sessions) + end + # Regardless of completion or not, we want to decrement the enqueued records. + importer_run.decrement!(:enqueued_records) unless importer_run.enqueued_records <= 0 + + entry.save! + entry.importer.current_run = importer_run + entry.importer.record_status + rescue Bulkrax::ComplexSubjectCreatedError => e + Rails.logger.warn("#{self.class} entry_id: #{entry_id}, run_id: #{run_id} encountered #{e.class}: #{e.message}") + # You get 3 attempts at the above perform before we have the import exception cascade into + # the Sidekiq retry ecosystem. + # rubocop:disable Style/IfUnlessModifier + if time_to_live <= 1 + raise "Exhauted reschedule limit for #{self.class} entry_id: #{entry_id}, run_id: #{run_id}. Attemping retries" + end + # rubocop:enable Style/IfUnlessModifier + reschedule(entry_id, run_id, time_to_live) + end + # rubocop:enable Rails/SkipsModelValidations + + def reschedule(entry_id, run_id, time_to_live) + ImportComplexSessionJob.set(wait: 1.minute).perform_later(entry_id, run_id, time_to_live - 1) + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_subject_job.rb b/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_subject_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..950aae3b6cb81865bb0e718453ffa3cf2891212b --- /dev/null +++ b/hyrax/app/jobs/bulkrax/crc_dataset/import_complex_subject_job.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Bulkrax + module CrcDataset + class ImportComplexSubjectJob < ApplicationJob + queue_as :complex_subject_import + + # rubocop:disable Rails/SkipsModelValidations + def perform(entry_id, run_id, time_to_live = 3, *) + entry = Entry.find(entry_id) + importer_run = ImporterRun.find(run_id) + entry.build + if entry.status == "Complete" + importer_run.increment!(:processed_records) + importer_run.increment!(:processed_complex_subjects) + else + # do not retry here because whatever parse error kept you from creating a complex_subject will likely + # keep preventing you from doing so. + importer_run.increment!(:failed_records) + importer_run.increment!(:failed_complex_subjects) + end + # Regardless of completion or not, we want to decrement the enqueued records. + importer_run.decrement!(:enqueued_records) unless importer_run.enqueued_records <= 0 + + entry.save! + entry.importer.current_run = importer_run + entry.importer.record_status + rescue Bulkrax::CrcDatasetCreatedError => e + Rails.logger.warn("#{self.class} entry_id: #{entry_id}, run_id: #{run_id} encountered #{e.class}: #{e.message}") + # You get 3 attempts at the above perform before we have the import exception cascade into + # the Sidekiq retry ecosystem. + # rubocop:disable Style/IfUnlessModifier + if time_to_live <= 1 + raise "Exhauted reschedule limit for #{self.class} entry_id: #{entry_id}, run_id: #{run_id}. Attemping retries" + end + # rubocop:enable Style/IfUnlessModifier + reschedule(entry_id, run_id, time_to_live) + end + # rubocop:enable Rails/SkipsModelValidations + + def reschedule(entry_id, run_id, time_to_live) + ImportComplexSubjectJob.set(wait: 1.minute).perform_later(entry_id, run_id, time_to_live - 1) + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/crc_dataset/import_file_set_job.rb b/hyrax/app/jobs/bulkrax/crc_dataset/import_file_set_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..a7e288135dd6f424e90fb6dd629aabc729b66cb1 --- /dev/null +++ b/hyrax/app/jobs/bulkrax/crc_dataset/import_file_set_job.rb @@ -0,0 +1,93 @@ +# frozen_string_literal: true + +module Bulkrax + module CrcDataset + class MissingParentError < ::StandardError; end + + class ImportFileSetJob < ApplicationJob + include DynamicRecordLookup + + queue_as :import + + attr_reader :importer_run_id + + def perform(entry_id, importer_run_id) + @importer_run_id = importer_run_id + entry = Entry.find(entry_id) + # e.g. "parents" or "parents_1" + parent_identifier = (entry.raw_metadata[entry.related_parents_raw_mapping] || entry.raw_metadata["#{entry.related_parents_raw_mapping}_1"])&.strip + for_complex_identifier = entry.raw_metadata['for_complex_identifier'] + for_complex_type = entry.raw_metadata['for_complex_type'] + + validate_parent!(parent_identifier) + validate_complex_parent!(for_complex_identifier, for_complex_type) + + entry.build + if entry.succeeded? + # rubocop:disable Rails/SkipsModelValidations + ImporterRun.find(importer_run_id).increment!(:processed_records) + ImporterRun.find(importer_run_id).increment!(:processed_file_sets) + else + ImporterRun.find(importer_run_id).increment!(:failed_records) + ImporterRun.find(importer_run_id).increment!(:failed_file_sets) + # rubocop:enable Rails/SkipsModelValidations + end + ImporterRun.find(importer_run_id).decrement!(:enqueued_records) unless ImporterRun.find(importer_run_id).enqueued_records <= 0 # rubocop:disable Rails/SkipsModelValidations + entry.save! + entry.importer.current_run = ImporterRun.find(importer_run_id) + entry.importer.record_status + + rescue MissingParentError => e + # try waiting for the parent record to be created + entry.import_attempts += 1 + entry.save! + if entry.import_attempts < 5 + ImportFileSetJob.set(wait: (entry.import_attempts + 1).minutes).perform_later(entry_id, importer_run_id) + else + ImporterRun.find(importer_run_id).decrement!(:enqueued_records) # rubocop:disable Rails/SkipsModelValidations + entry.status_info(e) + end + end + + private + + attr_reader :parent_record + + def validate_parent!(parent_identifier) + # if parent_identifier is missing, it will be caught by #validate_presence_of_parent! + return if parent_identifier.blank? + + find_parent_record(parent_identifier) + check_parent_exists!(parent_identifier) + check_parent_is_a_work!(parent_identifier) + end + + def validate_complex_parent!(for_complex_identifier, for_complex_type) + return true if for_complex_type == 'CrcDataset' + + complex_object = if for_complex_type == 'ComplexSubject' + ComplexSubject.find_by(source_identifier: for_complex_identifier).present? + elsif for_complex_type == 'ComplexSession' + ComplexSession.find_by(source_identifier: for_complex_identifier).present? + elsif for_complex_type == 'ComplexModality' + ComplexModality.find_by(source_identifier: for_complex_identifier).present? + end + + raise MissingParentError, %(Unable to find "#{for_complex_type}" with the source identifier "#{for_complex_identifier}") if complex_object.nil? + end + + def check_parent_exists!(parent_identifier) + raise MissingParentError, %(Unable to find a record with the identifier "#{parent_identifier}") if parent_record.nil? + end + + def check_parent_is_a_work!(parent_identifier) + error_msg = %(A record with the ID "#{parent_identifier}" was found, but it was a #{parent_record.class}, which is not an valid/available work type) + raise ::StandardError, error_msg unless curation_concern?(parent_record) + end + + def find_parent_record(parent_identifier) + _, @parent_record = find_record(parent_identifier, importer_run_id) + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/crc_dataset/import_work_job.rb b/hyrax/app/jobs/bulkrax/crc_dataset/import_work_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..c9e51bf4eda197d2397ecd22fc8a02ebc0d24d07 --- /dev/null +++ b/hyrax/app/jobs/bulkrax/crc_dataset/import_work_job.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module Bulkrax + module CrcDataset + class ImportWorkJob < ApplicationJob + queue_as :work_import + + # rubocop:disable Rails/SkipsModelValidations + def perform(entry_id, run_id, time_to_live = 3, *) + entry = Entry.find(entry_id) + importer_run = ImporterRun.find(run_id) + entry.build + if entry.status == "Complete" + importer_run.increment!(:processed_records) + importer_run.increment!(:processed_works) + else + # do not retry here because whatever parse error kept you from creating a work will likely + # keep preventing you from doing so. + importer_run.increment!(:failed_records) + importer_run.increment!(:failed_works) + end + # Regardless of completion or not, we want to decrement the enqueued records. + importer_run.decrement!(:enqueued_records) unless importer_run.enqueued_records <= 0 + + entry.save! + entry.importer.current_run = importer_run + entry.importer.record_status + rescue Bulkrax::CollectionsCreatedError => e + Rails.logger.warn("#{self.class} entry_id: #{entry_id}, run_id: #{run_id} encountered #{e.class}: #{e.message}") + # You get 3 attempts at the above perform before we have the import exception cascade into + # the Sidekiq retry ecosystem. + # rubocop:disable Style/IfUnlessModifier + if time_to_live <= 1 + raise "Exhauted reschedule limit for #{self.class} entry_id: #{entry_id}, run_id: #{run_id}. Attemping retries" + end + # rubocop:enable Style/IfUnlessModifier + reschedule(entry_id, run_id, time_to_live) + end + # rubocop:enable Rails/SkipsModelValidations + + def reschedule(entry_id, run_id, time_to_live) + ImportWorkJob.set(wait: 1.minute).perform_later(entry_id, run_id, time_to_live - 1) + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/create_relationships_job.rb b/hyrax/app/jobs/bulkrax/create_relationships_job.rb index 8ca733731e6727f3ff7eeb4af547564a47894960..db44b18a17fa157de55905f06bb450d31c1f5a25 100644 --- a/hyrax/app/jobs/bulkrax/create_relationships_job.rb +++ b/hyrax/app/jobs/bulkrax/create_relationships_job.rb @@ -60,7 +60,7 @@ module Bulkrax pending_relationships.each(&:destroy) rescue ::StandardError => e parent_entry ? parent_entry.status_info(e) : child_entry.status_info(e) - Bulkrax::ImporterRun.find(importer_run_id).increment!(:failed_relationships) # rubocop:disable Rails/SkipsModelValidations + Bulkrax::ImporterRun.find(importer_run_id).increment!(:failed_relationships) end private @@ -85,11 +85,19 @@ module Bulkrax child_work_ids = child_records[:works].map(&:id) parent_record.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX - parent_record.add_member_objects(child_work_ids) + #parent_record.add_member_objects(child_work_ids) template = Hyrax::PermissionTemplate.find_by!(source_id: parent_record.id) + terminator_actor = Hyrax::Actors::Terminator.new + membership_actor = Hyrax::Actors::CollectionsMembershipActor.new(terminator_actor) + member_collection_hash = {member_of_collections_attributes: {'0': {id: parent_record.id}}} + child_records[:works].each do |work| + env = Hyrax::Actors::Environment.new(work, Ability.new(user), member_collection_hash) + + membership_actor.create(env) + Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) work.save diff --git a/hyrax/app/jobs/bulkrax/import_complex_modality_job.rb b/hyrax/app/jobs/bulkrax/import_complex_modality_job.rb deleted file mode 100644 index 0c020e91c14b918903f6f2c48d5fb98a73f340f7..0000000000000000000000000000000000000000 --- a/hyrax/app/jobs/bulkrax/import_complex_modality_job.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -module Bulkrax - class ImportComplexModalityJob < ApplicationJob - queue_as :import - - # rubocop:disable Rails/SkipsModelValidations - def perform(entry_id, run_id, *) - entry = Entry.find(entry_id) - importer_run = ImporterRun.find(run_id) - entry.build - if entry.status == "Complete" - importer_run.increment!(:processed_records) - importer_run.increment!(:processed_complex_modalities) - else - # do not retry here because whatever parse error kept you from creating a complex_modality will likely - # keep preventing you from doing so. - importer_run.increment!(:failed_records) - importer_run.increment!(:failed_complex_modalities) - end - # Regardless of completion or not, we want to decrement the enqueued records. - importer_run.decrement!(:enqueued_records) unless importer_run.enqueued_records <= 0 - - entry.save! - entry.importer.current_run = importer_run - entry.importer.record_status - rescue Bulkrax::CollectionsCreatedError - reschedule(entry_id, run_id) - end - # rubocop:enable Rails/SkipsModelValidations - - def reschedule(entry_id, run_id) - ImportComplexModalityJob.set(wait: 1.minute).perform_later(entry_id, run_id) - end - end -end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/import_complex_session_job.rb b/hyrax/app/jobs/bulkrax/import_complex_session_job.rb deleted file mode 100644 index 0ed5f532ecf810968aab43afa7c97e08b4b6acd3..0000000000000000000000000000000000000000 --- a/hyrax/app/jobs/bulkrax/import_complex_session_job.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -module Bulkrax - class ImportComplexSessionJob < ApplicationJob - queue_as :import - - # rubocop:disable Rails/SkipsModelValidations - def perform(entry_id, run_id, *) - entry = Entry.find(entry_id) - importer_run = ImporterRun.find(run_id) - entry.build - if entry.status == "Complete" - importer_run.increment!(:processed_records) - importer_run.increment!(:processed_complex_sessions) - else - # do not retry here because whatever parse error kept you from creating a complex_session will likely - # keep preventing you from doing so. - importer_run.increment!(:failed_records) - importer_run.increment!(:failed_complex_sessions) - end - # Regardless of completion or not, we want to decrement the enqueued records. - importer_run.decrement!(:enqueued_records) unless importer_run.enqueued_records <= 0 - - entry.save! - entry.importer.current_run = importer_run - entry.importer.record_status - rescue Bulkrax::CollectionsCreatedError - reschedule(entry_id, run_id) - end - # rubocop:enable Rails/SkipsModelValidations - - def reschedule(entry_id, run_id) - ImportComplexSessionJob.set(wait: 1.minute).perform_later(entry_id, run_id) - end - end -end \ No newline at end of file diff --git a/hyrax/app/jobs/bulkrax/import_complex_subject_job.rb b/hyrax/app/jobs/bulkrax/import_complex_subject_job.rb deleted file mode 100644 index ba7b663f0bc73ed680d59d5211459a944f5cc48b..0000000000000000000000000000000000000000 --- a/hyrax/app/jobs/bulkrax/import_complex_subject_job.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -module Bulkrax - class ImportComplexSubjectJob < ApplicationJob - queue_as :import - - # rubocop:disable Rails/SkipsModelValidations - def perform(entry_id, run_id, *) - entry = Entry.find(entry_id) - importer_run = ImporterRun.find(run_id) - entry.build - if entry.status == "Complete" - importer_run.increment!(:processed_records) - importer_run.increment!(:processed_complex_subjects) - else - # do not retry here because whatever parse error kept you from creating a complex_subject will likely - # keep preventing you from doing so. - importer_run.increment!(:failed_records) - importer_run.increment!(:failed_complex_subjects) - end - # Regardless of completion or not, we want to decrement the enqueued records. - importer_run.decrement!(:enqueued_records) unless importer_run.enqueued_records <= 0 - - entry.save! - entry.importer.current_run = importer_run - entry.importer.record_status - rescue Bulkrax::CollectionsCreatedError - reschedule(entry_id, run_id) - end - # rubocop:enable Rails/SkipsModelValidations - - def reschedule(entry_id, run_id) - ImportComplexSubjectJob.set(wait: 1.minute).perform_later(entry_id, run_id) - end - end -end \ No newline at end of file diff --git a/hyrax/app/jobs/file_set_attached_event_job.rb b/hyrax/app/jobs/file_set_attached_event_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..662956f3d5c7476931d76613df8aa84eb59a743e --- /dev/null +++ b/hyrax/app/jobs/file_set_attached_event_job.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true +# Log a fileset attachment to activity streams +class FileSetAttachedEventJob < ContentEventJob + # Log the event to the fileset's and its container's streams + def log_event(repo_object) + repo_object.log_event(event) + curation_concern.log_event(event) + end + + def action + "User #{link_to_profile depositor} has attached #{file_link} to #{work_link}" + end + + private + + def file_link + link_to file_title, polymorphic_path(repo_object) + end + + def work_link + link_to work_title, polymorphic_path(curation_concern) + end + + def file_title + repo_object.title.first + end + + def work_title + curation_concern.title.first + end + + def curation_concern + case repo_object + when ActiveFedora::Base + repo_object.parent_works.first + else + Hyrax.query_service.find_parents(resource: repo_object).first + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/hyrax/clear_s3_bucket_job.rb b/hyrax/app/jobs/hyrax/clear_s3_bucket_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..82542abfc44d9ca321d9601f4b1f29a25d711cf0 --- /dev/null +++ b/hyrax/app/jobs/hyrax/clear_s3_bucket_job.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true +module Hyrax + class ClearS3BucketJob < ApplicationJob + def perform(crc_dataset_id) + s3 = S3StorageService.new + s3.init_client + bucket_name = s3.sanitise_name(crc_dataset_id) + s3.delete_all_objects(bucket_name) if s3.bucket_exists?(bucket_name) + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/hyrax/reindex_crc_dataset_job.rb b/hyrax/app/jobs/hyrax/reindex_crc_dataset_job.rb index 833c188cbfb73b4a559aed30943acd513529fb3a..2bbae5d69408d51d271709b2c9f264edd97f30e3 100644 --- a/hyrax/app/jobs/hyrax/reindex_crc_dataset_job.rb +++ b/hyrax/app/jobs/hyrax/reindex_crc_dataset_job.rb @@ -2,6 +2,7 @@ module Hyrax # Grants read access for the supplied group for the members attached to a work class ReindexCrcDatasetJob < ApplicationJob + queue_as :default def perform(crc_dataset_id) crc_dataset = CrcDataset.find(crc_dataset_id) diff --git a/hyrax/app/jobs/hyrax/remove_associated_objects_job.rb b/hyrax/app/jobs/hyrax/remove_associated_objects_job.rb new file mode 100644 index 0000000000000000000000000000000000000000..c6e0a78f1d4e73fda46583b12563b764876da537 --- /dev/null +++ b/hyrax/app/jobs/hyrax/remove_associated_objects_job.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true +module Hyrax + class RemoveAssociatedObjectsJob < ApplicationJob + def perform(dataset_id, work_type) + dataset = work_type.constantize.find(dataset_id) + dataset.complex_subjects.destroy_all if work_type == 'CrcDataset' + dataset.file_sets.each(&:destroy) + end + end +end \ No newline at end of file diff --git a/hyrax/app/jobs/ingest_job.rb b/hyrax/app/jobs/ingest_job.rb index 00c31a00bc0fa47ccf0158c7277dc3b6bef5a871..abd40d032f41f8e06a77a2a3e860738d7bd2d13c 100644 --- a/hyrax/app/jobs/ingest_job.rb +++ b/hyrax/app/jobs/ingest_job.rb @@ -14,6 +14,16 @@ class IngestJob < Hyrax::ApplicationJob # @see 'config/initializers/hyrax_callbacks.rb' # rubocop:disable Lint/UnusedMethodArgument def perform(wrapper, notification: false) - wrapper.ingest_file + if wrapper.file_set.parent_works.present? + wrapper.ingest_file + else + reschedule(wrapper) + end + end + + private + + def reschedule(wrapper) + IngestJob.set(wait: 5.minutes).perform_later(wrapper) end end \ No newline at end of file diff --git a/hyrax/app/models/ability.rb b/hyrax/app/models/ability.rb index 362df1e2c6cb489c00fc752bf8139cab3f63305d..858968a7aade0b47a84484835de24d0733c2f262 100644 --- a/hyrax/app/models/ability.rb +++ b/hyrax/app/models/ability.rb @@ -25,7 +25,8 @@ class Ability def create_content return unless current_user - can :create, [::Dataset, ::CrcDataset] + can [:confirm_delete, :restore], [::Dataset, ::CrcDataset] if current_user.admin? || current_user.crc_manager? + can [:create, :tombstone], [::Dataset, ::CrcDataset] end def manage_roles diff --git a/hyrax/app/models/bulkrax/crc_folder_complex_modality_entry.rb b/hyrax/app/models/bulkrax/crc_folder_complex_modality_entry.rb index d7604f9cdc359fe6f81dc38e461d2d36b776f53b..21b3ad8bf96cd98326fac1b9b9ee0f16f1357dc6 100644 --- a/hyrax/app/models/bulkrax/crc_folder_complex_modality_entry.rb +++ b/hyrax/app/models/bulkrax/crc_folder_complex_modality_entry.rb @@ -1,14 +1,25 @@ # frozen_string_literal: true module Bulkrax - class CrcFolderComplexModalityEntry < CsvEntry + class CrcFolderComplexModalityEntry < CrcFolderEntry def build - complex_modality = ComplexModality.new(modality: self.raw_metadata['modality']) + raise ComplexSessionCreatedError unless session_created? + + complex_modality = ComplexModality.new(modality_title: raw_metadata['title'], modality: self.raw_metadata['modality']) complex_modality.source_identifier = identifier - complex_modality.parent_source_identifier = self.raw_metadata['for_complex_identifier'] + complex_modality.parent_source_identifier = self.raw_metadata['parents'] + if complex_modality.save self.status_info end end + + def factory_class + ComplexModality + end + + def session_created? + ComplexSession.find_by(source_identifier: self.raw_metadata['parents']) + end end end diff --git a/hyrax/app/models/bulkrax/crc_folder_complex_session_entry.rb b/hyrax/app/models/bulkrax/crc_folder_complex_session_entry.rb index fb9e7cb5b8c3199fdfa5062715e8c96c520b65e7..dd81e6c090c61130e1f784fea3d42555e09515a6 100644 --- a/hyrax/app/models/bulkrax/crc_folder_complex_session_entry.rb +++ b/hyrax/app/models/bulkrax/crc_folder_complex_session_entry.rb @@ -1,14 +1,25 @@ # frozen_string_literal: true module Bulkrax - class CrcFolderComplexSessionEntry < CsvEntry + class CrcFolderComplexSessionEntry < CrcFolderEntry def build - complex_session = ComplexSession.new(session_title: self.raw_metadata['title']) + raise ComplexSubjectCreatedError unless subject_created? + + complex_session = ComplexSession.new(session_title: self.raw_metadata['title'], session_date_recorded: self.raw_metadata['record_date']) complex_session.source_identifier = identifier - complex_session.parent_source_identifier = self.raw_metadata['for_complex_identifier'] + complex_session.parent_source_identifier = self.raw_metadata['parents'] + if complex_session.save self.status_info end end + + def factory_class + ComplexSession + end + + def subject_created? + ComplexSubject.find_by(source_identifier: self.raw_metadata['parents']) + end end end diff --git a/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb b/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb index 4d8ecd5e2d36ce7a8578f4298dec0360b8d6bfb2..c1c92f1e5e903ab8adc1c69d8d4105865bed860d 100644 --- a/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb +++ b/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb @@ -1,14 +1,26 @@ # frozen_string_literal: true module Bulkrax - class CrcFolderComplexSubjectEntry < CsvEntry + class CrcFolderComplexSubjectEntry < CrcFolderEntry def build - complex_subject = ComplexSubject.new(self.raw_metadata.slice('subject_identifier', 'subject_species', 'subject_type', 'subject_sex', 'subject_age')) + raise CrcDatasetCreatedError unless crc_dataset_created? + + complex_subject = ComplexSubject.new(self.raw_metadata.slice('subject_species', 'subject_type', 'subject_sex', 'subject_age')) + complex_subject.subject_title = raw_metadata['title'] complex_subject.source_identifier = identifier - complex_subject.parent_source_identifier = self.raw_metadata['for_complex_identifier'] + complex_subject.parent_source_identifier = self.raw_metadata['parents'] + if complex_subject.save self.status_info end end + + def factory_class + ComplexSubject + end + + def crc_dataset_created? + ::CrcDataset.where(source: self.raw_metadata['parents']).present? + end end end diff --git a/hyrax/app/models/bulkrax/crc_folder_entry.rb b/hyrax/app/models/bulkrax/crc_folder_entry.rb index d9b5e3c3d5bc9e9e15fc5ff75af373304aa422bc..b243d42e69273ca27229b4d344535e9717f46b58 100644 --- a/hyrax/app/models/bulkrax/crc_folder_entry.rb +++ b/hyrax/app/models/bulkrax/crc_folder_entry.rb @@ -1,6 +1,10 @@ # frozen_string_literal: true module Bulkrax + class CrcDatasetCreatedError < RuntimeError; end + class ComplexSubjectCreatedError < RuntimeError; end + class ComplexSessionCreatedError < RuntimeError; end + class CrcFolderEntry < CsvEntry def add_metadata_for_model if factory_class == Collection diff --git a/hyrax/app/models/bulkrax/importer.rb b/hyrax/app/models/bulkrax/importer.rb index 77bc36c09485c1db0b703e48f44e32d988fe1a90..0caec978e31aa94ebe27df407e0db4be90686f78 100644 --- a/hyrax/app/models/bulkrax/importer.rb +++ b/hyrax/app/models/bulkrax/importer.rb @@ -155,7 +155,7 @@ module Bulkrax import_objects(['relationship']) end - DEFAULT_OBJECT_TYPES = %w[collection work file_set complex_session complex_modality complex_subject relationship].freeze + DEFAULT_OBJECT_TYPES = %w[collection work complex_subject complex_session complex_modality file_set relationship].freeze def import_objects(types_array = nil) self.only_updates ||= false diff --git a/hyrax/app/models/complex_modality.rb b/hyrax/app/models/complex_modality.rb index bd51065e3b0f4344d79a625fe47e8836561c89e4..4a3f4635405432916f9f5836af8c02d0c3f9b818 100644 --- a/hyrax/app/models/complex_modality.rb +++ b/hyrax/app/models/complex_modality.rb @@ -16,6 +16,10 @@ class ComplexModality < ActiveRecord::Base FileSet.where(for_complex_identifier: source_identifier) end + def file_sets_fast_load_metadata + FileSetFastLoadMetadata.where(work_source_identifier: source_identifier) + end + private def reindex_crc_dataset @@ -27,6 +31,6 @@ class ComplexModality < ActiveRecord::Base s3.init_client bucket_name = s3.sanitise_name(crc_dataset.id) s3.create_bucket(bucket_name) unless s3.bucket_exists?(bucket_name) - s3.add_content(bucket_name, "#{complex_subject.source_identifier}/#{complex_session.source_identifier}/#{source_identifier}/metadata.json", to_json) + s3.add_content(bucket_name, "#{complex_subject.subject_title}/#{complex_session.session_title}/#{modality_title}/metadata.json", to_json) end end diff --git a/hyrax/app/models/complex_session.rb b/hyrax/app/models/complex_session.rb index 6ea059c7a25efa1cff3624bb225491a482322b91..efd6a9bcfbf0bbcd846d66f914edf8024d9853f5 100644 --- a/hyrax/app/models/complex_session.rb +++ b/hyrax/app/models/complex_session.rb @@ -3,7 +3,7 @@ class ComplexSession < ActiveRecord::Base belongs_to :complex_subject, foreign_key: 'parent_source_identifier', primary_key: 'source_identifier', optional: true - has_many :complex_modalities, foreign_key: 'parent_source_identifier', primary_key: 'source_identifier' + has_many :complex_modalities, foreign_key: 'parent_source_identifier', primary_key: 'source_identifier', dependent: :destroy attribute :source_identifier, :string, default: -> { SecureRandom.uuid } @@ -18,6 +18,12 @@ class ComplexSession < ActiveRecord::Base FileSet.where(for_complex_identifier: source_identifier) end + def file_sets_fast_load_metadata + FileSetFastLoadMetadata.where(work_source_identifier: source_identifier) + end + + + private def reindex_crc_dataset @@ -29,6 +35,6 @@ class ComplexSession < ActiveRecord::Base s3.init_client bucket_name = s3.sanitise_name(crc_dataset.id) s3.create_bucket(bucket_name) unless s3.bucket_exists?(bucket_name) - s3.add_content(bucket_name, "#{complex_subject.source_identifier}/#{source_identifier}/metadata.json", to_json) + s3.add_content(bucket_name, "#{complex_subject.subject_title}/#{session_title}/metadata.json", to_json) end end diff --git a/hyrax/app/models/complex_subject.rb b/hyrax/app/models/complex_subject.rb index caf8bbea5d609ba4a8fd3e5cc93901a4e486e892..60dcf4f7388105888e50c2652031974f31105db4 100644 --- a/hyrax/app/models/complex_subject.rb +++ b/hyrax/app/models/complex_subject.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class ComplexSubject < ActiveRecord::Base - has_many :complex_sessions, foreign_key: 'parent_source_identifier', primary_key: 'source_identifier' + has_many :complex_sessions, foreign_key: 'parent_source_identifier', primary_key: 'source_identifier', dependent: :destroy attribute :source_identifier, :string, default: -> { SecureRandom.uuid } @@ -18,6 +18,10 @@ class ComplexSubject < ActiveRecord::Base FileSet.where(for_complex_identifier: source_identifier) end + def file_sets_fast_load_metadata + FileSetFastLoadMetadata.where(work_source_identifier: source_identifier) + end + private def reindex_crc_dataset @@ -29,6 +33,6 @@ class ComplexSubject < ActiveRecord::Base s3.init_client bucket_name = s3.sanitise_name(crc_dataset.id) s3.create_bucket(bucket_name) unless s3.bucket_exists?(bucket_name) - s3.add_content(bucket_name, "#{source_identifier}/metadata.json", to_json) + s3.add_content(bucket_name, "#{subject_title}/metadata.json", to_json) end end diff --git a/hyrax/app/models/concerns/bulkrax/dynamic_record_lookup.rb b/hyrax/app/models/concerns/bulkrax/dynamic_record_lookup.rb new file mode 100644 index 0000000000000000000000000000000000000000..c8ea90dd044ea9ea8824f2d25bdb9d6b4282956a --- /dev/null +++ b/hyrax/app/models/concerns/bulkrax/dynamic_record_lookup.rb @@ -0,0 +1,48 @@ + +# frozen_string_literal: true + +module Bulkrax + module DynamicRecordLookup + # Search entries, collections, and every available work type for a record that + # has the provided identifier. + # + # @param identifier [String] Work/Collection ID or Bulkrax::Entry source_identifier + # @param importer_run_id [Number] ID of the current_run of this Importer Job + # @return [Entry, nil], [Work, Collection, nil] Entry if found, otherwise nil and a Work or Collection if found, otherwise nil + def find_record(identifier, importer_run_id = nil) + # check for our entry in our current importer first + importer_id = ImporterRun.find(importer_run_id).importer_id + default_scope = { identifier: identifier, importerexporter_type: 'Bulkrax::Importer' } + + begin + # the identifier parameter can be a :source_identifier or the id of an object + record = Entry.find_by(default_scope.merge({ importerexporter_id: importer_id })) || Entry.find_by(default_scope) + record ||= ActiveFedora::Base.find(identifier) + # NameError for if ActiveFedora isn't installed + rescue NameError, ActiveFedora::ObjectNotFoundError + record = ActiveFedora::Base.where(source_tesim: identifier).first + end + + # return the found entry here instead of searching for it again in the CreateRelationshipsJob + # also accounts for when the found entry isn't a part of this importer + record.is_a?(Entry) ? [record, record.factory.find] : [nil, record] + end + + # Check if the record is a Work + def curation_concern?(record) + available_work_types.include?(record.class) + end + + private + + # @return [Array<Class>] list of work type classes + def available_work_types + # If running in a Hyku app, do not include disabled work types + @available_work_types ||= if defined?(::Hyku) + ::Site.instance.available_works.map(&:constantize) + else + ::Hyrax.config.curation_concerns + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/models/concerns/bulkrax/has_local_processing.rb b/hyrax/app/models/concerns/bulkrax/has_local_processing.rb index 8ec336ce7e682a7c96ba5c21f555fff80ee946d8..29ac288920222930168693f598489b693448be2e 100644 --- a/hyrax/app/models/concerns/bulkrax/has_local_processing.rb +++ b/hyrax/app/models/concerns/bulkrax/has_local_processing.rb @@ -121,7 +121,7 @@ module Bulkrax def complex_subject complex_subject_object = ComplexSubject.new(RDF::Node.new, ActiveTriples::Resource.new) - %w[subject_identifier subject_species subject_type subject_sex subject_age].each do |attribute| + %w[subject_species subject_type subject_sex subject_age].each do |attribute| complex_subject_object[attribute] = record[attribute] end diff --git a/hyrax/app/models/concerns/datacite_metadata.rb b/hyrax/app/models/concerns/datacite_metadata.rb deleted file mode 100644 index 2e798bd9a360d053d33acd2d361120cd81ab62d6..0000000000000000000000000000000000000000 --- a/hyrax/app/models/concerns/datacite_metadata.rb +++ /dev/null @@ -1,29 +0,0 @@ -module DataciteMetadata - property :doi, predicate: ::RDF::Vocab::DataCite.doi, multiple: false do |index| - index.as :symbol - end - - property :complex_person, predicate: ::RDF::Vocab::SIOC.has_creator, class_name:"ComplexPerson" - - # property :date_published, predicate: ::RDF::Vocab::Rdms.datePublished, multiple: false do |index| - # index.type :date - # index.as :stored_sortable - # end - - property :complex_date, predicate: ::RDF::Vocab::DC.date, class_name:"ComplexDate" - - property :complex_identifier, predicate: ::RDF::Vocab::Rdms.identifier, class_name:"ComplexIdentifier" - - # Geolocation - would this be used? Ignoring for now. - - property :complex_funding_reference, predicate: ::RDF::Vocab::DataCite.fundref, class_name:"ComplexFundingReference" - - property :complex_relation, predicate: ::RDF::Vocab::DC.relation, class_name:"ComplexRelation" - - include ComplexValidation - accepts_nested_attributes_for :complex_person, reject_if: :person_blank, allow_destroy: true - accepts_nested_attributes_for :complex_date, reject_if: :date_blank, allow_destroy: true - accepts_nested_attributes_for :complex_identifier, reject_if: :identifier_blank, allow_destroy: true - accepts_nested_attributes_for :complex_funding_reference, reject_if: :fundref_blank, allow_destroy: true - accepts_nested_attributes_for :complex_relation, reject_if: :relation_blank, allow_destroy: true -end \ No newline at end of file diff --git a/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb b/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb new file mode 100644 index 0000000000000000000000000000000000000000..cada6368a48cbcacefd2bb6b22e858eb0881c9c7 --- /dev/null +++ b/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true +module Hyrax + module TombstoneBehavior + def intialize_tombstone! + self.is_tombstoned = true + self.tombstone_status = "initiated" + self.tombstone_date = DateTime.now + + self.save + end + + def confirm_tombstone! + return false unless self.is_tombstoned || self.tombstone_status == "initiated" + + self.tombstone_status = "deleted" + self.save + + Hyrax::RemoveAssociatedObjectsJob.perform_later(self.id, self.class.to_s) + + Hyrax::ClearS3BucketJob.perform_later(self.id) + end + + def restore_tombstone! + return false if self.tombstone_status == "deleted" + + self.is_tombstoned = false + self.tombstone_status = "restored" + + self.save + end + end +end \ No newline at end of file diff --git a/hyrax/app/models/crc_dataset.rb b/hyrax/app/models/crc_dataset.rb index 87b567ccb9757705815f538214046897b016e09d..cb3162801da6f3c345796711422c603f4f4abff3 100644 --- a/hyrax/app/models/crc_dataset.rb +++ b/hyrax/app/models/crc_dataset.rb @@ -4,14 +4,14 @@ # `rails generate hyrax:work CrcDataset` class CrcDataset < ActiveFedora::Base include ::Hyrax::WorkBehavior - + include ::Hyrax::TombstoneBehavior self.indexer = CrcDatasetIndexer # Change this to restrict which works can be added as a child. # self.valid_child_concerns = [] validates :title, presence: { message: 'Your CRC dataset must have a title.' } after_save :save_work_meta_json_file_to_s3 - after_create :set_default_source + after_create :set_default_source_and_tombstone_status # ------ properties from core metadata ------ # property date_modified - not displayed (filled in by the system) @@ -49,6 +49,18 @@ class CrcDataset < ActiveFedora::Base index.as :symbol end + property :tombstone_status, predicate: ::RDF::Vocab::Rdms.tombstoneStatus, multiple: false do |index| + index.as :symbol + end + + property :tombstone_date, predicate: ::RDF::Vocab::Rdms.tombstoneDate, multiple: false do |index| + index.as :symbol + end + + property :is_tombstoned, predicate: ::RDF::Vocab::Rdms.isTombstone, multiple: false do |index| + index.as :symbol + end + property :complex_person, predicate: ::RDF::Vocab::SIOC.has_creator, class_name: 'ComplexPerson' # property :date_published, predicate: ::RDF::Vocab::Rdms.datePublished, multiple: false do |index| @@ -112,6 +124,9 @@ class CrcDataset < ActiveFedora::Base index.as :stored_searchable, :facetable end + # Required due to bug saving nested resources + property :updated_subresources, predicate: ::RDF::Vocab::Rdms.updatedSubresources, class_name: "ActiveTriples::Resource" + # This must be included at the end, because it finalizes the metadata # schema (by adding accepts_nested_attributes) include ::Hyrax::BasicMetadata @@ -121,11 +136,16 @@ class CrcDataset < ActiveFedora::Base accepts_nested_attributes_for :complex_identifier, reject_if: :identifier_blank, allow_destroy: true accepts_nested_attributes_for :complex_funding_reference, reject_if: :fundref_blank, allow_destroy: true accepts_nested_attributes_for :complex_relation, reject_if: :relation_blank, allow_destroy: true + accepts_nested_attributes_for :updated_subresources, allow_destroy: true def complex_subjects ComplexSubject.where(parent_source_identifier: source.first) end + def file_sets_fast_load_metadata + FileSetFastLoadMetadata.where(work_source_identifier: source.first) + end + private def save_work_meta_json_file_to_s3 @@ -136,8 +156,9 @@ class CrcDataset < ActiveFedora::Base s3.add_content(bucket_name, 'metadata.json', to_json) end - def set_default_source + def set_default_source_and_tombstone_status self.source = source.present? ? source : [SecureRandom.uuid] + self.is_tombstoned = false self.save end end diff --git a/hyrax/app/models/dataset.rb b/hyrax/app/models/dataset.rb index c9e0b72358ca29cc906191ec1793ce9c7c3ae502..283936fd3ea5272047c9da0c5d36e26af66f1bea 100644 --- a/hyrax/app/models/dataset.rb +++ b/hyrax/app/models/dataset.rb @@ -3,12 +3,13 @@ require "./lib/vocabularies/rdms" # `rails generate hyrax:work Dataset` class Dataset < ActiveFedora::Base include ::Hyrax::WorkBehavior - + include ::Hyrax::TombstoneBehavior self.indexer = DatasetIndexer # Change this to restrict which works can be added as a child. # self.valid_child_concerns = [] validates :title, presence: { message: 'Your dataset must have a title.' } + after_create :set_default_tombstone_status # ------ properties from core metadata ------ # property date_modified - not displayed (filled in by the system) # property date_uploaded - not displayed (filled in by the system) @@ -44,6 +45,18 @@ class Dataset < ActiveFedora::Base index.as :symbol end + property :tombstone_status, predicate: ::RDF::Vocab::Rdms.tombstoneStatus, multiple: false do |index| + index.as :symbol + end + + property :tombstone_date, predicate: ::RDF::Vocab::Rdms.tombstoneDate, multiple: false do |index| + index.as :symbol + end + + property :is_tombstoned, predicate: ::RDF::Vocab::Rdms.isTombstone, multiple: false do |index| + index.as :symbol + end + property :software_version, predicate: ::RDF::Vocab::Rdms.softwareVersion do |index| index.as :stored_searchable end @@ -85,6 +98,9 @@ class Dataset < ActiveFedora::Base property :complex_relation, predicate: ::RDF::Vocab::DC.relation, class_name:"ComplexRelation" + # Required due to bug saving nested resources + property :updated_subresources, predicate: ::RDF::Vocab::Rdms.updatedSubresources, class_name: "ActiveTriples::Resource" + # This must be included at the end, because it finalizes the metadata # schema (by adding accepts_nested_attributes) include ::Hyrax::BasicMetadata @@ -94,4 +110,13 @@ class Dataset < ActiveFedora::Base accepts_nested_attributes_for :complex_identifier, reject_if: :identifier_blank, allow_destroy: true accepts_nested_attributes_for :complex_funding_reference, reject_if: :fundref_blank, allow_destroy: true accepts_nested_attributes_for :complex_relation, reject_if: :relation_blank, allow_destroy: true + accepts_nested_attributes_for :updated_subresources, allow_destroy: true + + private + + def set_default_tombstone_status + self.tombstone_status = false + self.save + end + end diff --git a/hyrax/app/models/file_set.rb b/hyrax/app/models/file_set.rb index 1ea4326d8f66819d60bf9c6963b74337946706c5..7cf0932652b9d009d27c25e0d402e17b1d1c1ed4 100644 --- a/hyrax/app/models/file_set.rb +++ b/hyrax/app/models/file_set.rb @@ -3,6 +3,10 @@ require "./lib/vocabularies/rdms" # Generated by hyrax:models:install class FileSet < ActiveFedora::Base self.indexer = CrcFileSetIndexer + + after_save :create_file_set_with_fast_load_meta_data + after_destroy :destroy_set_meta_data + property :for_complex_identifier, predicate: ::RDF::Vocab::Rdms.forComplexIdentifier, multiple: false do |index| index.as :stored_searchable, :facetable end @@ -11,4 +15,26 @@ class FileSet < ActiveFedora::Base index.as :stored_searchable, :facetable end include ::Hyrax::FileSetBehavior + + def fast_load_meta_data + FileSetFastLoadMetadata.find_by(fedora_file_set_id: id) + end + + private + + def create_file_set_with_fast_load_meta_data + work_source_identifier = self.for_complex_identifier || self.parent_works.first&.source&.first + work_type = self.for_complex_type || "CrcDataset" + + metadata = FileSetFastLoadMetadata.find_or_initialize_by(fedora_file_set_id: self.id) + metadata.work_source_identifier = work_source_identifier + metadata.work_model_name = work_type + metadata.file_set_title = self.title&.first || self.label + metadata.save + end + + def destroy_set_meta_data + meta_data = FileSetFastLoadMetadata.find_by(fedora_file_set_id: self.id) + meta_data.destroy! if meta_data.present? + end end diff --git a/hyrax/app/models/file_set_fast_load_metadata.rb b/hyrax/app/models/file_set_fast_load_metadata.rb new file mode 100644 index 0000000000000000000000000000000000000000..3a6b3adabc7077974d83cfd44f1a861a46965a19 --- /dev/null +++ b/hyrax/app/models/file_set_fast_load_metadata.rb @@ -0,0 +1,2 @@ +class FileSetFastLoadMetadata < ActiveRecord::Base +end \ No newline at end of file diff --git a/hyrax/app/models/search_builder.rb b/hyrax/app/models/search_builder.rb index c8969859e710dff9066c80582b93c21bdb2bb20f..ee3effb1424e629eec26b94a96a3bacc2283066e 100644 --- a/hyrax/app/models/search_builder.rb +++ b/hyrax/app/models/search_builder.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class SearchBuilder < Blacklight::SearchBuilder include Blacklight::Solr::SearchBuilderBehavior + include BlacklightRangeLimit::RangeLimitBuilder + # Add a filter query to restrict the search to documents the current user has access to include Hydra::AccessControlsEnforcement include Hyrax::SearchFilters diff --git a/hyrax/app/models/solr_document.rb b/hyrax/app/models/solr_document.rb index 45e6537ab9647dd1502e12e70e599e27237aafd8..66d927f4b3aa80bba836ff70552688bb8f02036e 100644 --- a/hyrax/app/models/solr_document.rb +++ b/hyrax/app/models/solr_document.rb @@ -78,6 +78,18 @@ class SolrDocument self[Solrizer.solr_name('dataset_method', :stored_searchable)] end + def tombstone_status + self[Solrizer.solr_name('tombstone_status', :symbol)] + end + + def is_tombstoned + self[Solrizer.solr_name('is_tombstoned', :symbol)] + end + + def tombstone_date + self[Solrizer.solr_name('tombstone_date', :symbol)] + end + def doi self[Solrizer.solr_name('doi', :symbol)] end diff --git a/hyrax/app/parsers/bulkrax/crc_folder_parser.rb b/hyrax/app/parsers/bulkrax/crc_folder_parser.rb index 13a3a6a1b5ad8fb0cfed95c204f6c0fe51b8470f..16bb255d35a03888aecc781d37ee39f3d041eb66 100644 --- a/hyrax/app/parsers/bulkrax/crc_folder_parser.rb +++ b/hyrax/app/parsers/bulkrax/crc_folder_parser.rb @@ -120,7 +120,53 @@ module Bulkrax # We could use CsvEntry#fields_from_data(data) but that would mean re-reading the data def import_fields - @import_fields ||= records.inject(:merge).keys.compact.uniq + @import_fields = [:model, + :collection_type, + :crc_collection_type, + :file, + :source, + :parents, + :for_complex_identifier, + :for_complex_type, + :title, + :contributor, + :contributor_orcid, + :contributor_affiliation, + :contributor_scheme, + :creator, :creator_orcid, + :creator_affiliation, + :creator_scheme, + :keyword, + :resource_type, + :crc_resource_type, + :experiment_title, + :experiment_description, + :crc_work_type, + :doi, + :alternative_title, + :description, + :group_identifier, + :record_date, + :date_description, + :date, + :modality, + :subject_identifier, + :subject_species, + :subject_type, + :subject_sex, + :subject_age, + :approval_number, + :subject, + :publisher, + :language, + :funder_identifier, + :funder_name, + :award_number, + :award_uri, + :award_title, + :coverage, + :software_version, + :extra_information] end def required_elements?(keys) @@ -174,7 +220,7 @@ module Bulkrax def create_objects(types_array = nil) index = 0 - (types_array || %w[collection work file_set complex_subject complex_session complex_modality relationship]).each do |type| + (types_array || %w[collection work complex_subject complex_session complex_modality file_set relationship]).each do |type| if type.eql?('relationship') ScheduleRelationshipsJob.set(wait: 5.minutes).perform_later(importer_id: importerexporter.id) next @@ -203,7 +249,7 @@ module Bulkrax if current_record[:delete].present? "Bulkrax::Delete#{type.camelize}Job".constantize.send(perform_method, new_entry, current_run) else - "Bulkrax::Import#{type.camelize}Job".constantize.send(perform_method, new_entry.id, current_run.id) + "Bulkrax::CrcDataset::Import#{type.camelize}Job".constantize.send(perform_method, new_entry.id, current_run.id) end end diff --git a/hyrax/app/presenters/hyrax/crc_dataset_presenter.rb b/hyrax/app/presenters/hyrax/crc_dataset_presenter.rb index ef82147449a4d6c2fc4e6854ac1b3cbd947ed872..0e018699dd759c742e7a28b597e9a35e0bf553b6 100644 --- a/hyrax/app/presenters/hyrax/crc_dataset_presenter.rb +++ b/hyrax/app/presenters/hyrax/crc_dataset_presenter.rb @@ -4,7 +4,7 @@ module Hyrax class CrcDatasetPresenter < Hyrax::WorkShowPresenter delegate :approval_number, :complex_date, :complex_funding_reference, :complex_identifier, :complex_person, :complex_relation, :complex_subject, :coverage, :crc_resource_type, :crc_work_type, :doi, :experiment_title, - :experiment_description, :extra_information, :modality, :parent_work_id, :software_version, to: :solr_document + :experiment_description, :extra_information, :modality, :parent_work_id, :software_version, :tombstone_status, :tombstone_date, :is_tombstoned, to: :solr_document def list_all_children(options = {}) all_children = { @@ -14,22 +14,22 @@ module Hyrax 'modality' => {} } experiment = CrcDataset.find(self.id) - members = experiment.file_sets.select{ |f| f.for_complex_identifier.nil? } + experiment.complex_subjects + members = experiment.file_sets_fast_load_metadata + experiment.complex_subjects members = Kaminari.paginate_array(members).page(options[:page] || 1).per(options[:per_page] || 5) all_children['experiment'][id] = gather_children(members) # get subject children experiment.complex_subjects.each do |subject| - subject_members = subject.file_sets + subject.complex_sessions + subject_members = subject.file_sets_fast_load_metadata + subject.complex_sessions all_children['subject'][subject.id] = gather_children(subject_members) # get session children subject.complex_sessions.each do |session| - session_members = session.file_sets + session.complex_modalities + session_members = session.file_sets_fast_load_metadata + session.complex_modalities all_children['session'][session.id] = gather_children(session_members) # get modality children session.complex_modalities.each do |modality| - modality_members = modality.file_sets + modality_members = modality.file_sets_fast_load_metadata all_children['modality'][modality.id] = gather_children(modality_members) end end @@ -45,18 +45,18 @@ module Hyrax return {} unless members.any? members.each do |member| - if member.class.name == "FileSet" + if member.class.name == "FileSetFastLoadMetadata" # When the data has not been processed by the actors, # the label property is missing and it throws http errors - data['info'][member.id] = {'title' => member.title.first, 'label' => member&.label} - data['files'] << member.id + data['info'][member.fedora_file_set_id] = {'title' => member.file_set_title, 'label' => member.file_set_title} + data['files'] << member.fedora_file_set_id else if member.is_a?(ComplexSubject) - data['info'][member.id] = {'title' => member.subject_identifier} + data['info'][member.id] = {'title' => member.subject_title} elsif member.is_a?(ComplexSession) data['info'][member.id] = {'title' => member.session_title} elsif member.is_a?(ComplexModality) - data['info'][member.id] = {'title' => member.modality} + data['info'][member.id] = {'title' => member.modality_title} end data['children'] << member.id diff --git a/hyrax/app/presenters/hyrax/dataset_presenter.rb b/hyrax/app/presenters/hyrax/dataset_presenter.rb index f3e4255ca73f2ac4e34eee43412572c8ef005e01..757983a38f9259f5b782fa306e86e74a2825df56 100644 --- a/hyrax/app/presenters/hyrax/dataset_presenter.rb +++ b/hyrax/app/presenters/hyrax/dataset_presenter.rb @@ -4,6 +4,6 @@ module Hyrax class DatasetPresenter < Hyrax::WorkShowPresenter delegate :complex_person, :complex_date, :complex_relation, :software_version, :dataset_method, :series_information, :table_of_contents, :technical_information, :based_near_label, :complex_funding_reference, :complex_identifier, :doi, - to: :solr_document + :tombstone_status, :tombstone_date, :is_tombstoned, to: :solr_document end end diff --git a/hyrax/app/renderers/nested_subject_attribute_renderer.rb b/hyrax/app/renderers/nested_subject_attribute_renderer.rb index 262e3d7dbea71d0030a2b45b845f2859833bf276..f98620f01ffe29335226d0eda8dfdbadc1aea53b 100644 --- a/hyrax/app/renderers/nested_subject_attribute_renderer.rb +++ b/hyrax/app/renderers/nested_subject_attribute_renderer.rb @@ -8,31 +8,31 @@ class NestedSubjectAttributeRenderer < NestedAttributeRenderer # Identifier unless v.dig('subject_identifier').blank? label = t('rdms.fields.complex_subject_identifier') - val = v['subject_identifier'][0] + val = v['subject_identifier'] each_html += get_row(label, val) end # Species unless v.dig('subject_species').blank? label = t('rdms.fields.complex_subject_species') - val = v['subject_species'][0] + val = v['subject_species'] each_html += get_row(label, val) end # type unless v.dig('subject_type').blank? label = t('rdms.fields.complex_subject_type') - val = v['subject_type'][0] + val = v['subject_type'] each_html += get_row(label, val) end # sex unless v.dig('subject_sex').blank? label = t('rdms.fields.complex_subject_sex') - val = v['subject_sex'][0] + val = v['subject_sex'] each_html += get_row(label, val) end # age unless v.dig('subject_age').blank? label = t('rdms.fields.complex_subject_age') - val = v['subject_age'][0] + val = v['subject_age'] each_html += get_row(label, val) end html += get_inner_html(each_html) diff --git a/hyrax/app/search_builders/hyrax/search_builder.rb b/hyrax/app/search_builders/hyrax/search_builder.rb new file mode 100644 index 0000000000000000000000000000000000000000..45f0bd380f17f1f47118d1e35b883e42e512b3a6 --- /dev/null +++ b/hyrax/app/search_builders/hyrax/search_builder.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true +module Hyrax + class SearchBuilder < ::SearchBuilder + self.default_processor_chain += [:filter_tombstone] + + def filter_tombstone(solr_parameters) + unless current_user.present? && current_user.crc_manager? + solr_parameters[:fq] << "{!terms f=is_tombstoned_ssim}false" + end + end + end +end \ No newline at end of file diff --git a/hyrax/app/services/hyrax/workflow/grant_edit_to_crc_manager.rb b/hyrax/app/services/hyrax/workflow/grant_edit_to_crc_manager.rb index 91a825ae6182ba92bd31659671410259109934f2..d7c10275b397d53b382658745ea56c1d58e2a759 100644 --- a/hyrax/app/services/hyrax/workflow/grant_edit_to_crc_manager.rb +++ b/hyrax/app/services/hyrax/workflow/grant_edit_to_crc_manager.rb @@ -9,7 +9,7 @@ module Hyrax # @return void def self.call(target:, **) - crc_dataset = ::CrcDataset.find(target.id.id) + crc_dataset = ::CrcDataset.find(target.id) collection = crc_dataset.parent_collections.first group_key = "#{collection.collection_type.title.parameterize(separator: '_')}_manager" diff --git a/hyrax/app/services/hyrax/workflow/grant_edit_to_group_manager.rb b/hyrax/app/services/hyrax/workflow/grant_edit_to_group_manager.rb index 1fab1baf84c896037acea001b59ddf834b95294c..763fc7d3d4363682a1b09ad49d0bd64881328dab 100644 --- a/hyrax/app/services/hyrax/workflow/grant_edit_to_group_manager.rb +++ b/hyrax/app/services/hyrax/workflow/grant_edit_to_group_manager.rb @@ -8,7 +8,7 @@ module Hyrax # @param [#read_users=, #read_users] target (likely an ActiveRecord::Base) to which we are adding edit_users for the depositor # @return void def self.call(target:, **) - crc_dataset = ::CrcDataset.find(target.id.id) + crc_dataset = ::CrcDataset.find(target.id) collection = crc_dataset.parent_collections.first group_key = "#{collection.collection_type.title.parameterize(separator: '_')}_#{collection.id}_manager" diff --git a/hyrax/app/services/hyrax/workflow/grant_read_to_crc_manager.rb b/hyrax/app/services/hyrax/workflow/grant_read_to_crc_manager.rb index 7e08a208b997a23b6501651ffc9ce2dbf57b73f7..40a33f7328eb4c30824e3dcef2e31be5254703d5 100644 --- a/hyrax/app/services/hyrax/workflow/grant_read_to_crc_manager.rb +++ b/hyrax/app/services/hyrax/workflow/grant_read_to_crc_manager.rb @@ -10,7 +10,7 @@ module Hyrax # @return void def self.call(target:, **) - crc_dataset = ::CrcDataset.find(target.id.id) + crc_dataset = ::CrcDataset.find(target.id) collection = crc_dataset.parent_collections.first group_key = "#{collection.collection_type.title.parameterize(separator: '_')}_manager" diff --git a/hyrax/app/services/hyrax/workflow/grant_read_to_group_manager.rb b/hyrax/app/services/hyrax/workflow/grant_read_to_group_manager.rb index cb86b319bb8c2fe916fdab048457211fba110291..eb7580278779b338373c73ee126122d6d69a386b 100644 --- a/hyrax/app/services/hyrax/workflow/grant_read_to_group_manager.rb +++ b/hyrax/app/services/hyrax/workflow/grant_read_to_group_manager.rb @@ -9,8 +9,7 @@ module Hyrax # for the depositor # @return void def self.call(target:, **) - - crc_dataset = ::CrcDataset.find(target.id.id) + crc_dataset = ::CrcDataset.find(target.id) collection = crc_dataset.parent_collections.first group_key = "#{collection.collection_type.title.parameterize(separator: '_')}_#{collection.id}_manager" diff --git a/hyrax/app/services/hyrax/workflow/register_doi.rb b/hyrax/app/services/hyrax/workflow/register_doi.rb new file mode 100644 index 0000000000000000000000000000000000000000..ec8fd336fe8933f97fff632990ad7de9311bea3a --- /dev/null +++ b/hyrax/app/services/hyrax/workflow/register_doi.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +require 'uri' +require 'net/http' +require 'openssl' + +module Hyrax + module Workflow + ## + # This is a built in function for workflow, so that a workflow action can be created that + # Genrate DOI for dataset + module RegisterDoi + def self.call(target:, **) + return true unless ENV['USE_DOI_REGISTRATION'] + + @dataset = target + collection = @dataset.parent_collections.first + collection_type = collection.collection_type.title + + url = URI(ENV['DOI_URL']) + + http = Net::HTTP.new(url.host, url.port) + http.use_ssl = true + creators = @dataset.complex_person.select { |person| person.role == ['creator'] } + creators_hash = creators.map do |person| + { name: "#{person.last_name.first},#{person.first_name.first}" } + end.compact + + request = Net::HTTP::Post.new(url) + request['content-type'] = 'application/vnd.api+json' + request.basic_auth ENV['DOI_USERNAME'], ENV['DOI_PASSWORD'] + + body = { + "data": { + "id": "#{ENV['DOI_PREFIX']}/#{@dataset.id}", + "type": 'dois', + "attributes": { + "doi": "#{ENV['DOI_PREFIX']}/#{@dataset.id}", + "creators": creators_hash, + "titles": [{ title: @dataset.title&.first }], + "publisher": collection_type == 'CRC 1280' ? 'SFB1280' : 'Ruhr-University Bochum', + "publicationYear": Date.today.year, + "types": { + "resourceTypeGeneral": @dataset.resource_type&.first + } + } + } + } + request.body = body.to_json + response = http.request(request) + + return unless response.is_a?(Net::HTTPSuccess) + + parsed_response = JSON.parse(response.body) + + attributes = parsed_response['data']['attributes'] + + return unless attributes.present? + + complex_identifier = ComplexIdentifier.new(RDF::Node.new, ActiveTriples::Resource.new) + complex_date = ComplexDate.new(RDF::Node.new, ActiveTriples::Resource.new) + + complex_identifier.identifier = attributes['doi'] + complex_identifier.scheme = 'DOI' + + complex_date.date = attributes['created'].to_date.strftime('%d/%m/%Y') + complex_date.description = 'Published' + + @dataset.update(complex_date: [complex_date], complex_identifier: [complex_identifier]) + + @dataset.save + end + end + end +end diff --git a/hyrax/app/services/hyrax/workflow/revoke_edit_from_crc_manager.rb b/hyrax/app/services/hyrax/workflow/revoke_edit_from_crc_manager.rb index 37f8097d2512b5070728bd1ef6646b8869313e95..855369422ac2daab7bf3c49085d03f25422e4298 100644 --- a/hyrax/app/services/hyrax/workflow/revoke_edit_from_crc_manager.rb +++ b/hyrax/app/services/hyrax/workflow/revoke_edit_from_crc_manager.rb @@ -6,7 +6,7 @@ module Hyrax # removes the creators the ability to alter it. module RevokeEditFromCrcManager def self.call(target:, **) - crc_dataset = ::CrcDataset.find(target.id.id) + crc_dataset = ::CrcDataset.find(target.id) collection = crc_dataset.parent_collections.first group_key = "#{collection.collection_type.title.parameterize(separator: '_')}_manager" diff --git a/hyrax/app/services/hyrax/workflow/revoke_edit_from_group_manager.rb b/hyrax/app/services/hyrax/workflow/revoke_edit_from_group_manager.rb index 55ea27067b91219b9a6699562294f839480d9560..3dd664f5fe32aacbd1795860f0f5b132c8f636b1 100644 --- a/hyrax/app/services/hyrax/workflow/revoke_edit_from_group_manager.rb +++ b/hyrax/app/services/hyrax/workflow/revoke_edit_from_group_manager.rb @@ -6,7 +6,7 @@ module Hyrax # removes the creators the ability to alter it. module RevokeEditFromGroupManager def self.call(target:, **) - crc_dataset = ::CrcDataset.find(target.id.id) + crc_dataset = ::CrcDataset.find(target.id) collection = crc_dataset.parent_collections.first group_key = "#{collection.collection_type.title.parameterize(separator: '_')}_#{collection.id}_manager" diff --git a/hyrax/app/services/prepare_csv_from_crc_folder.rb b/hyrax/app/services/prepare_csv_from_crc_folder.rb index 041b8ec8487b7ff0bc9615ed7079f280425c4544..d96b554a31358c260812bf56cea1f137e1f8bd77 100644 --- a/hyrax/app/services/prepare_csv_from_crc_folder.rb +++ b/hyrax/app/services/prepare_csv_from_crc_folder.rb @@ -377,9 +377,9 @@ class PrepareCsvFromCrcFolder '', '', meta_info[:source_identifier], - '', meta_info[:parent_work_source_identifier], - meta_info[:crc_work_type], + '', + '', meta_info[:title], '', '', @@ -432,12 +432,11 @@ class PrepareCsvFromCrcFolder '', '', meta_info[:source_identifier], - '', meta_info[:parent_source_identifier], - meta_info[:crc_work_type], - meta_info[:title], '', '', + meta_info[:title], + '', '', '', '', @@ -455,6 +454,7 @@ class PrepareCsvFromCrcFolder '', '', '', + file_attributes['Record date'], '', '', '', @@ -487,9 +487,9 @@ class PrepareCsvFromCrcFolder '', '', meta_info[:source_identifier], - '', meta_info[:parent_source_identifier], - meta_info[:crc_work_type], + '', + '', meta_info[:title], '', '', @@ -535,7 +535,8 @@ class PrepareCsvFromCrcFolder def create_file_sets_for_work(folder_path, csv, meta_info) Dir.glob("#{folder_path}/*").reject { |item| Pathname(item).directory? || item.include?('MetaApp2_SFB1280.exe') || item.include?('meta.json') }.each_with_index do |file_path, index| - csv << ['FileSet', '', '', file_path, SecureRandom.uuid, meta_info[:parent_work_source_identifier] || meta_info[:source_identifier], meta_info[:source_identifier], meta_info[:crc_work_type], file_path.split('/')[-1]] + for_complex_type = meta_info[:crc_work_type] == 'experiment' ? "CrcDataset" : meta_info[:crc_work_type] + csv << ['FileSet', '', '', file_path, SecureRandom.uuid, meta_info[:parent_work_source_identifier] || meta_info[:source_identifier], meta_info[:source_identifier], for_complex_type, file_path.split('/')[-1]] end end diff --git a/hyrax/app/views/bulkrax/entries/show.html.erb b/hyrax/app/views/bulkrax/entries/show.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..59ebb13a8fcc255252d65126325e20d3b360d04f --- /dev/null +++ b/hyrax/app/views/bulkrax/entries/show.html.erb @@ -0,0 +1,69 @@ +<p id="notice"><%= notice %></p> +<div class="panel panel-default"> + <div class="panel-body"> + <p class='bulkrax-p-align'> + <strong>Identifier:</strong> + <%= @entry.identifier %> + </p> + + <p class='bulkrax-p-align'> + <strong>Entry ID:</strong> + <%= @entry.id %> + </p> + + <p class='bulkrax-p-align'> + <strong>Type:</strong> + <%= @entry.factory_class || 'Unknown' %> + </p> + <%= render partial: 'raw_metadata'%> + + <%= render partial: 'parsed_metadata'%> + + <%= render partial: 'bulkrax/shared/bulkrax_errors', locals: {item: @entry} %> + + <p class="bulkrax-p-align"> + <% if @importer.present? %> + <strong>Importer:</strong> + <%= link_to @importer.name, importer_path(@importer) %> + <% elsif @exporter.present? %> + <strong>Exporter:</strong> + <%= link_to @exporter.name, exporter_path(@exporter) %> + <% end %> + </p> + + <p class='bulkrax-p-align'> + <% if @importer.present? %> + <% factory_record = @entry.factory.find %> + <% if factory_record.present? && @entry.factory_class %> + <strong><%= @entry.factory_class.to_s %> Link:</strong> + <% if @entry.factory_class.to_s == 'Collection' %> + <%= link_to @entry.factory_class.to_s, hyrax.polymorphic_path(factory_record) %> + <% elsif @entry.factory_class.to_s == 'ComplexSubject' %> + <%= link_to @entry.factory_class.to_s, hyrax.crc_dataset_complex_subject_path(factory_record.crc_dataset, factory_record) %> + <% elsif @entry.factory_class.to_s == 'ComplexSession' %> + <%= link_to @entry.factory_class.to_s, hyrax.crc_dataset_complex_session_path(factory_record.crc_dataset, factory_record) %> + <% elsif @entry.factory_class.to_s == 'ComplexModality' %> + <%= link_to @entry.factory_class.to_s, hyrax.crc_dataset_complex_modality_path(factory_record.crc_dataset, factory_record) %> + <% else %> + <%= link_to @entry.factory_class.to_s, main_app.polymorphic_path(factory_record) %> + <% end %> + <% else %> + <strong>Item Link:</strong> Item has not yet been imported successfully + <% end %> + <% else %> + <% record = @entry&.hyrax_record %> + <% if record.present? && @entry.factory_class %> + <strong><%= record.class.to_s %> Link:</strong> + <% if record.is_a?(Collection) %> + <%= link_to record.class.to_s, hyrax.polymorphic_path(record) %> + <% else %> + <%= link_to record.class.to_s, main_app.polymorphic_path(record) %> + <% end %> + <% else %> + <strong>Item Link:</strong> No item associated with this entry or class unknown + <% end %> + <% end %> + </p> + + </div> +</div> \ No newline at end of file diff --git a/hyrax/app/views/bulkrax/importers/index.html.erb b/hyrax/app/views/bulkrax/importers/index.html.erb index 15b26232b4680b33c9aaad8c30e57bfa1fdf6528..f6b1b8394376582ee97319ace39988c2d2062355 100644 --- a/hyrax/app/views/bulkrax/importers/index.html.erb +++ b/hyrax/app/views/bulkrax/importers/index.html.erb @@ -28,6 +28,9 @@ <th scope="col">Entries Deleted Upstream</th> <th scope="col">Total Collection Entries</th> <th scope="col">Total Work Entries</th> + <th scope="col">Total Complex Subject Entries</th> + <th scope="col">Total Complex Session Entries</th> + <th scope="col">Total Complex Modality Entries</th> <th scope="col">Total File Set Entries</th> <th scope="col"></th> <th scope="col"></th> @@ -47,6 +50,9 @@ <td><%= importer.last_run&.deleted_records %></td> <td><%= importer.last_run&.total_collection_entries %></td> <td><%= importer.last_run&.total_work_entries %></td> + <td><%= importer.last_run&.total_complex_subject_entries %></td> + <td><%= importer.last_run&.total_complex_session_entries %></td> + <td><%= importer.last_run&.total_complex_modality_entries %></td> <td><%= importer.last_run&.total_file_set_entries %></td> <td><%= link_to raw('<span class="glyphicon glyphicon-info-sign"></span>'), importer_path(importer) %></td> <td><%= link_to raw('<span class="glyphicon glyphicon-pencil"></span>'), edit_importer_path(importer) %></td> diff --git a/hyrax/app/views/bulkrax/importers/show.html.erb b/hyrax/app/views/bulkrax/importers/show.html.erb index 83f8bc7ecd3b21240468c08625f567e8b8fcc0d7..fa0c13990da4268b85395e1b6723b0100d417e0c 100644 --- a/hyrax/app/views/bulkrax/importers/show.html.erb +++ b/hyrax/app/views/bulkrax/importers/show.html.erb @@ -88,16 +88,22 @@ <div class="bulkrax-nav-tab-bottom-margin"> <!-- Nav tabs --> - <ul class="bulkrax-nav-tab-top-margin tab-nav nav nav-tabs" role="tablist"> + <ul class="bulkrax-nav-tab-top-margin tab-nav nav nav-tabs importer-nav-tabs" role="tablist"> <li role="presentation" class='active'><a href="#work-entries" aria-controls="work-entries" role="tab" data-toggle="tab">Work Entries</a></li> <li role="presentation"><a href="#collection-entries" aria-controls="collection-entries" role="tab" data-toggle="tab">Collection Entries</a></li> <li role="presentation"><a href="#file-set-entries" aria-controls="file-set-entries" role="tab" data-toggle="tab">File Set Entries</a></li> + <li role="presentation"><a href="#complex-subject-entries" aria-controls="complex-subject-entries" role="tab" data-toggle="tab">Complex Subject Entries</a></li> + <li role="presentation"><a href="#complex-session-entries" aria-controls="complex-session-entries" role="tab" data-toggle="tab">Complex Session Entries</a></li> + <li role="presentation"><a href="#complex-modality-entries" aria-controls="complex-modality-entries" role="tab" data-toggle="tab">Complex Modality Entries</a></li> </ul> <!-- Tab panes --> <div class="tab-content outline"> <%= render partial: 'bulkrax/shared/work_entries_tab', locals: { item: @importer, entries: @work_entries } %> <%= render partial: 'bulkrax/shared/collection_entries_tab', locals: { item: @importer, entries: @collection_entries } %> <%= render partial: 'bulkrax/shared/file_set_entries_tab', locals: { item: @importer, entries: @file_set_entries } %> + <%= render partial: 'bulkrax/shared/complex_subject_entries_tab', locals: { item: @importer, entries: @complex_subject_entries } %> + <%= render partial: 'bulkrax/shared/complex_session_entries_tab', locals: { item: @importer, entries: @complex_session_entries } %> + <%= render partial: 'bulkrax/shared/complex_modality_entries_tab', locals: { item: @importer, entries: @complex_modality_entries } %> </div> </div> diff --git a/hyrax/app/views/bulkrax/shared/_complex_modality_entries_tab.html.erb b/hyrax/app/views/bulkrax/shared/_complex_modality_entries_tab.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..d347b1eb98db627ec3029c1d9af89291c874de4c --- /dev/null +++ b/hyrax/app/views/bulkrax/shared/_complex_modality_entries_tab.html.erb @@ -0,0 +1,39 @@ +<div role="tabpanel" class="tab-pane bulkrax-nav-tab-table-left-align" id="complex-modality-entries"> + <table class='table table-striped'> + <thead> + <tr> + <th>Identifier</th> + <th>Entry ID</th> + <th>Status</th> + <th>Errors</th> + <th>Status Set At</th> + <th>Actions</th> + </tr> + </thead> + <tbody> + <% entries.each do |e| %> + <% entry_path = item.class.to_s.include?('Importer') ? bulkrax.importer_entry_path(item.id, e.id) : bulkrax.exporter_entry_path(item.id, e.id) %> + <tr> + <td><%= link_to e.identifier, entry_path %></td> + <td><%= e.id %></td> + <% if e.status == "Complete" %> + <td><span class="glyphicon glyphicon-ok" style="color: green;"></span> <%= e.status %></td> + <% elsif e.status == "Pending" %> + <td><span class="glyphicon glyphicon-option-horizontal" style="color: blue;"></span> <%= e.status %></td> + <% else %> + <td><span class="glyphicon glyphicon-remove" style="color: <%= e.status == 'Deleted' ? 'green' : 'red' %>;"></span> <%= e.status %></td> + <% end %> + <% if e.last_error.present? %> + <td><%= link_to e.last_error.dig("error_class"), entry_path %></td> + <% else %> + <td></td> + <% end %> + <td><%= e.status_at %></td> + <td><%= link_to raw('<span class="glyphicon glyphicon-info-sign"></span>'), entry_path %></td> + </tr> + <% end %> + </tbody> + </table> + <%= page_entries_info(entries) %><br /> + <%= paginate(entries, theme: 'blacklight', param_name: :complex_modality_entries_page, params: { anchor: 'complex-modality-entries' }) %> +</div> \ No newline at end of file diff --git a/hyrax/app/views/bulkrax/shared/_complex_session_entries_tab.html.erb b/hyrax/app/views/bulkrax/shared/_complex_session_entries_tab.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..6cef6740b214b6cca49cf85523f6e10fb5b18887 --- /dev/null +++ b/hyrax/app/views/bulkrax/shared/_complex_session_entries_tab.html.erb @@ -0,0 +1,39 @@ +<div role="tabpanel" class="tab-pane bulkrax-nav-tab-table-left-align" id="complex-session-entries"> + <table class='table table-striped'> + <thead> + <tr> + <th>Identifier</th> + <th>Entry ID</th> + <th>Status</th> + <th>Errors</th> + <th>Status Set At</th> + <th>Actions</th> + </tr> + </thead> + <tbody> + <% entries.each do |e| %> + <% entry_path = item.class.to_s.include?('Importer') ? bulkrax.importer_entry_path(item.id, e.id) : bulkrax.exporter_entry_path(item.id, e.id) %> + <tr> + <td><%= link_to e.identifier, entry_path %></td> + <td><%= e.id %></td> + <% if e.status == "Complete" %> + <td><span class="glyphicon glyphicon-ok" style="color: green;"></span> <%= e.status %></td> + <% elsif e.status == "Pending" %> + <td><span class="glyphicon glyphicon-option-horizontal" style="color: blue;"></span> <%= e.status %></td> + <% else %> + <td><span class="glyphicon glyphicon-remove" style="color: <%= e.status == 'Deleted' ? 'green' : 'red' %>;"></span> <%= e.status %></td> + <% end %> + <% if e.last_error.present? %> + <td><%= link_to e.last_error.dig("error_class"), entry_path %></td> + <% else %> + <td></td> + <% end %> + <td><%= e.status_at %></td> + <td><%= link_to raw('<span class="glyphicon glyphicon-info-sign"></span>'), entry_path %></td> + </tr> + <% end %> + </tbody> + </table> + <%= page_entries_info(entries) %><br /> + <%= paginate(entries, theme: 'blacklight', param_name: :complex_session_entries_page, params: { anchor: 'complex-session-entries' }) %> +</div> \ No newline at end of file diff --git a/hyrax/app/views/bulkrax/shared/_complex_subject_entries_tab.html.erb b/hyrax/app/views/bulkrax/shared/_complex_subject_entries_tab.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..97e4157d49130342cdbadb7e51d69bc0b88914af --- /dev/null +++ b/hyrax/app/views/bulkrax/shared/_complex_subject_entries_tab.html.erb @@ -0,0 +1,39 @@ +<div role="tabpanel" class="tab-pane bulkrax-nav-tab-table-left-align" id="complex-subject-entries"> + <table class='table table-striped'> + <thead> + <tr> + <th>Identifier</th> + <th>Entry ID</th> + <th>Status</th> + <th>Errors</th> + <th>Status Set At</th> + <th>Actions</th> + </tr> + </thead> + <tbody> + <% entries.each do |e| %> + <% entry_path = item.class.to_s.include?('Importer') ? bulkrax.importer_entry_path(item.id, e.id) : bulkrax.exporter_entry_path(item.id, e.id) %> + <tr> + <td><%= link_to e.identifier, entry_path %></td> + <td><%= e.id %></td> + <% if e.status == "Complete" %> + <td><span class="glyphicon glyphicon-ok" style="color: green;"></span> <%= e.status %></td> + <% elsif e.status == "Pending" %> + <td><span class="glyphicon glyphicon-option-horizontal" style="color: blue;"></span> <%= e.status %></td> + <% else %> + <td><span class="glyphicon glyphicon-remove" style="color: <%= e.status == 'Deleted' ? 'green' : 'red' %>;"></span> <%= e.status %></td> + <% end %> + <% if e.last_error.present? %> + <td><%= link_to e.last_error.dig("error_class"), entry_path %></td> + <% else %> + <td></td> + <% end %> + <td><%= e.status_at %></td> + <td><%= link_to raw('<span class="glyphicon glyphicon-info-sign"></span>'), entry_path %></td> + </tr> + <% end %> + </tbody> + </table> + <%= page_entries_info(entries) %><br /> + <%= paginate(entries, theme: 'blacklight', param_name: :complex_subject_entries_page, params: { anchor: 'complex-subject-entries' }) %> +</div> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/base/_form_relationships.html.erb b/hyrax/app/views/hyrax/base/_form_relationships.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..3991208549700399664ff95e07943153f15f0714 --- /dev/null +++ b/hyrax/app/views/hyrax/base/_form_relationships.html.erb @@ -0,0 +1,18 @@ +<% if Flipflop.assign_admin_set? %> + <%= f.input :admin_set_id, as: :select, + include_blank: false, + collection: admin_set_options, + input_html: { class: 'form-control' } %> +<% end %> + +<%= render 'form_in_works', f: f %> +<%= render 'form_member_of_collections', f: f %> + +<% if f.object.persisted? %> + <h2 class="h3 mt-4"><%= t("hyrax.works.form.in_this_work") %></h2> + <% if f.object.class.name == "Hyrax::CrcDatasetForm" %> + <%= render 'hyrax/crc_datasets/crc_form_child_work_relationships', f: f %> + <% else %> + <%= render 'form_child_work_relationships', f: f %> + <% end %> +<% end %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/base/_show_actions.html.erb b/hyrax/app/views/hyrax/base/_show_actions.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..aface6101d8e765b1c27a1416a77973cd294c4b4 --- /dev/null +++ b/hyrax/app/views/hyrax/base/_show_actions.html.erb @@ -0,0 +1,67 @@ +<div class="row show-actions button-row-top-two-column"> + <div class="col-sm-6"> + <% if !workflow_restriction?(presenter) %> + <% if presenter.show_deposit_for?(collections: @user_collections) %> + <input type="checkbox" style="display:none" name="batch_document_ids[]" id="batch_document_<%= presenter.id %>" value="<%= presenter.id %>" class="batch_document_selector" checked="checked" /> + <%= button_tag t('hyrax.dashboard.my.action.add_to_collection'), + class: 'btn btn-secondary submits-batches submits-batches-add', + data: { toggle: "modal", target: "#collection-list-container" } %> + <% end %> + <% if presenter.work_featurable? %> + <%= link_to t('.feature'), hyrax.featured_work_path(presenter, format: :json), + data: { behavior: 'feature' }, + class: presenter.display_feature_link? ? 'btn btn-secondary' : 'btn btn-secondary collapse' %> + + <%= link_to t('.unfeature'), hyrax.featured_work_path(presenter, format: :json), + data: { behavior: 'unfeature' }, + class: presenter.display_unfeature_link? ? 'btn btn-secondary' : 'btn btn-secondary collapse' %> + <% end %> + <% end %> + <% if Hyrax.config.analytics? %> + <% # turbolinks needs to be turned off or the page will use the cache and the %> + <% # analytics graph will not show unless the page is refreshed. %> + <%= link_to t('.analytics'), presenter.stats_path, id: 'stats', class: 'btn btn-secondary', data: { turbolinks: false } %> + <% end %> + </div> + + <% if presenter.tombstone_status != ['deleted'] %> + <div class="col-sm-6 text-right"> + <% if presenter.editor? && !workflow_restriction?(presenter) %> + <%= link_to t('.edit'), edit_polymorphic_path([main_app, presenter]), class: 'btn btn-secondary' %> + <% if presenter.member_count > 1 %> + <%= link_to t("hyrax.file_manager.link_text"), polymorphic_path([main_app, :file_manager, presenter]), class: 'btn btn-secondary' %> + <% end %> + <% if presenter.valid_child_concerns.length > 0 %> + <div class="btn-group"> + <button type="button" class="btn btn-secondary dropdown-toggle" type="button" id="dropdown-menu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <%= t('.attach_child') %> + <ul class="dropdown-menu"> + <% presenter.valid_child_concerns.each do |concern| %> + <li class="dropdown-item"> + <%= link_to "Attach #{concern.human_readable_type}", polymorphic_path([main_app, :new, :hyrax, :parent, concern.model_name.singular.to_sym], parent_id: presenter.id) %> + </li> + <% end %> + </ul> + </div> + <% end %> + <% if presenter.tombstone_status.present? %> + <% if ['initiated', 'deleted'].exclude?(presenter.tombstone_status&.first) %> + <%= link_to t('.tombstone'), tombstone_path('Dataset', presenter.id, 'tombstone'), method: :patch, class: 'btn btn-default' %> + <% end %> + <% if presenter.tombstone_status == ['initiated'] && current_user.admin? && ((Date.today) - presenter.tombstone_date.first.to_date).to_i >= ENV['NUMBER_OF_DAYS_TO_TOMBSTONE'].to_i %> + <div class="work-actions"> + <%= link_to t('.confirm_delete'), tombstone_path('Dataset', presenter.id, 'confirm'), method: :patch, class: 'btn btn-default' %> + <%= link_to t('.restore'), tombstone_path('Dataset', presenter.id, 'restore'), method: :patch, class: 'btn btn-default' %> + </div> + <% end %> + <% end %> + <%= link_to t('.delete'), [main_app, presenter], class: 'btn btn-danger', data: { confirm: t('.confirm_delete', work_type: presenter.human_readable_type) }, method: :delete %> + <% end %> + </div> + <% end %> +</div> + +<!-- COinS hook for Zotero --> + <span class="Z3988" title="<%= export_as_openurl_ctx_kev(presenter) %>"></span> +<!-- Render Modals --> + <%= render 'hyrax/dashboard/collections/form_for_select_collection', user_collections: @user_collections %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/crc_datasets/_all_children.html.erb b/hyrax/app/views/hyrax/crc_datasets/_all_children.html.erb index 2f6b2e6abf4cb6d5adda522b84dd5498b5b7bab6..aa8f5e7ef0557189001c7586bc31b68b10913473 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_all_children.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_all_children.html.erb @@ -1,5 +1,5 @@ <% experiment = CrcDataset.find(@presenter.id) - member_ids = experiment.file_sets.map{ |f| f.id if f.for_complex_identifier.nil?}.compact + experiment.complex_subjects&.ids + member_ids = experiment.file_sets_fast_load_metadata.map(&:fedora_file_set_id).compact + experiment.complex_subjects&.ids %> <% if presenter.crc_work_type.present? && presenter.crc_work_type[0] == 'experiment' %> @@ -8,4 +8,4 @@ <% render 'items', presenter: @presenter %> <% end %> -<%= render 'shared/pagination', response: Kaminari.paginate_array(member_ids).page(params[:page] || 1).per(params[:per_page] || 5), route_set: main_app %> \ No newline at end of file +<%= render 'shared/pagination', response: Kaminari.paginate_array(member_ids).page(params[:page] || 1).per(params[:per_page] || 10), route_set: main_app %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb b/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb index 4fd21e09f7814acba09c7b67037f23186644b83c..f618c6f5b59719158bb3bababea7e155059c3249 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb @@ -15,8 +15,8 @@ <%= presenter.attribute_to_html(:complex_person, render_as: :nested_person, label: t('rdms.fields.complex_person'), html_dl: true) %> <%= presenter.attribute_to_html(:coverage, label: t('rdms.fields.coverage'), render_as: :faceted, html_dl: true) %> <%= presenter.attribute_to_html(:crc_resource_type, label: t('rdms.fields.crc_resource_type'), render_as: :faceted, html_dl: true) %> - <%= presenter.attribute_to_html(:modality, label: t('rdms.fields.modality'), html_dl: true) %> - <%= presenter.attribute_to_html(:complex_subject, render_as: :nested_subject, label: t('rdms.fields.complex_subject'), html_dl: true) %> + <%#= presenter.attribute_to_html(:modality, label: t('rdms.fields.modality'), html_dl: true) %> + <%#= presenter.attribute_to_html(:complex_subject, render_as: :nested_subject, label: t('rdms.fields.complex_subject'), html_dl: true) %> <%= presenter.attribute_to_html(:approval_number, label: t('rdms.fields.approval_number'), html_dl: true) %> <%= presenter.attribute_to_html(:complex_identifier, render_as: :nested_identifier, label: t('rdms.fields.complex_identifier'), html_dl: true) %> <%= presenter.attribute_to_html(:complex_date, render_as: :nested_date, label: t('rdms.fields.complex_date'), html_dl: true) %> diff --git a/hyrax/app/views/hyrax/crc_datasets/_crc_form_child_work_relationships.html.erb b/hyrax/app/views/hyrax/crc_datasets/_crc_form_child_work_relationships.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..1ac697a019a87d3bcd7d5856b3754b10fcb1535f --- /dev/null +++ b/hyrax/app/views/hyrax/crc_datasets/_crc_form_child_work_relationships.html.erb @@ -0,0 +1,47 @@ +<%# Form UI behavior code and details; +Code: + app/assets/javascripts/hyrax/relationships +CSS: + [data-behavior="remove-relationship"] : Button to remove its parent TR from the table + [data-behavior="add-relationship"] : Button to clone its parent TR and inject a new row into the table + .message.has-warning : Used to display UI errors related to input values and server errors +HTML Properties: + table: + [data-behavior="child-relationships"] : allows the javascript to be initialized + data-param-key : the parameter key value for this model type %> +<div class="form-group" data-behavior="child-relationships" data-param-key="<%= f.object.model_name.param_key %>" data-members=""> + <div class="form-inline"> + <%= f.label :find_child_work %> + <%= f.input_field :find_child_work, + prompt: :translate, + autocomplete: 'off', + data: { + autocomplete: 'work', + 'autocomplete-url' => Rails.application.routes.url_helpers.qa_path + '/search/find_works', + 'exclude-work': f.object.model.id.to_s # exclude this item from the result set. + } %> + <a href="#" onclick="return false;" class="btn btn-secondary ml-2" data-behavior="add-relationship"><%= t('.add') %></a> + </div> + <div class="message has-warning"></div> + <div class="my-4"> + <%= link_to t('.attach_new_work'), polymorphic_path([main_app, :new, :hyrax, :parent, curation_concern.model_name.singular.to_sym], parent_id: curation_concern.id), target: "_blank", class: 'btn btn-primary' %> + </div> + <table class="table table-striped"> + <caption><%= t('.caption') %></caption> + <thead> + <tr> + <th><%= t('.header.title') %></th> + <th><%= t('.header.actions') %></th> + </tr> + </thead> + <tbody> + </tbody> + </table> +</div> + +<script type="text/x-tmpl" id="tmpl-child-work"> +<tr> + <td>{%= o.title %}</td> + <td><button class="btn btn-danger" data-behavior="remove-relationship" data-confirm-text="<%= t('.confirm.text') %>" data-confirm-cancel="<%= t('.confirm.cancel') %>" data-confirm-remove="<%= t('.confirm.remove') %>"><%= t('.actions.remove') %></button></td> +</tr> +</script> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/crc_datasets/_experiment_items.html.erb b/hyrax/app/views/hyrax/crc_datasets/_experiment_items.html.erb index 11307511cd9f4beb8cf8b063e180b90766a8b78e..5bebc8a877434b3897a399da497da1d288c10326 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_experiment_items.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_experiment_items.html.erb @@ -2,11 +2,12 @@ <!-- experiment children and files --> <% if children.dig('experiment', presenter.id) %> <% parent = children['experiment'][presenter.id] %> - <ul class="treeview"> <!-- experiment ul --> + <div class="treeview"> + <ul> <!-- experiment ul --> <!-- experiment files --> <% if parent.dig('files') %> <% parent['files'].each do |child| %> - <li data-icon-cls="treeview-icon icon-pdf"> + <li> <% if parent.dig('info', child, 'label') %> <%= link_to parent['info'][child]['label'], "/concern/file_sets/#{child}" %> <% elsif parent.dig('info', child, 'title') %> @@ -20,7 +21,7 @@ <!-- experiment children --> <% if parent.dig('children') %> <% parent['children'].each do |child| %> - <li data-icon-cls="treeview-icon icon-folder" data-expanded="true"> + <li> <% if parent.dig('info', child, 'title') %> <%= link_to parent['info'][child]['title'], crc_dataset_complex_subject_path(@presenter.id, child) %> <% else %> @@ -33,7 +34,7 @@ <!-- subject files --> <% if sub.dig('files') %> <% sub['files'].each do |child2| %> - <li data-icon-cls="treeview-icon icon-pdf"> + <li> <% if sub.dig('info', child2, 'label') %> <%= link_to sub['info'][child2]['label'], "/concern/file_sets/#{child2}" %> <% elsif sub.dig('info', child2, 'title') %> @@ -47,7 +48,7 @@ <!-- subject children --> <% if sub.dig('children') %> <% sub['children'].each do |child2| %> - <li data-icon-cls="treeview-icon icon-folder" data-expanded="true"> + <li> <% if sub.dig('info', child2, 'title') %> <%= link_to sub['info'][child2]['title'], crc_dataset_complex_session_path(@presenter.id, child2) %> <% else %> @@ -60,7 +61,7 @@ <!-- session files --> <% if ses.dig('files') %> <% ses['files'].each do |child3| %> - <li data-icon-cls="treeview-icon icon-pdf"> + <li> <% if ses.dig('info', child3, 'label') %> <%= link_to ses['info'][child3]['label'], "/concern/file_sets/#{child3}" %> <% elsif ses.dig('info', child3, 'title') %> @@ -74,7 +75,7 @@ <!-- session children --> <% if ses.dig('children') %> <% ses['children'].each do |child3| %> - <li data-icon-cls="treeview-icon icon-folder" data-expanded="true"> + <li> <% if ses.dig('info', child3, 'title') %> <%= link_to ses['info'][child3]['title'], crc_dataset_complex_modality_path(@presenter.id, child3) %> <% else %> @@ -87,7 +88,7 @@ <!-- modality files --> <% if mod.dig('files') %> <% mod['files'].each do |child4| %> - <li data-icon-cls="treeview-icon icon-pdf"> + <li> <% if mod.dig('info', child4, 'label') %> <%= link_to mod['info'][child4]['label'], "/concern/file_sets/#{child4}" %> <% elsif mod.dig('info', child4, 'title') %> @@ -116,5 +117,6 @@ <% end %> <% end %> </ul> <!-- experiment ul --> + </div> <% end %> <!-- experiment end --> diff --git a/hyrax/app/views/hyrax/crc_datasets/_form_metadata.html.erb b/hyrax/app/views/hyrax/crc_datasets/_form_metadata.html.erb index 61d3e68f2fbc09eee0659fc018b89565cb742f74..77cd5951a1c64619cf1a61ca68473f115d464337 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_form_metadata.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_form_metadata.html.erb @@ -17,6 +17,5 @@ <% f.object.secondary_terms_by_work_type(work_type=work_type).each do |term| %> <%= render_edit_field_partial(term, f: f) %> <% end %> - <%= render 'form_media', f: f %> </div> <% end %> diff --git a/hyrax/app/views/hyrax/crc_datasets/_modality_items.html.erb b/hyrax/app/views/hyrax/crc_datasets/_modality_items.html.erb index 098944779645eee3c0a8826d9a730a23032e359a..29e5be8ccd9d02d23024af63d12086585b38289f 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_modality_items.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_modality_items.html.erb @@ -2,21 +2,23 @@ <!-- modality files only --> <% if children.dig('modality', presenter.id) %> <% parent = children['modality'][presenter.id] %> - <ul class="treeview"> <!-- modality ul --> - <!-- modality files --> - <% if parent.dig('files') %> - <% parent['files'].each do |child| %> - <li data-icon-cls="treeview-icon icon-pdf"> - <% if parent.dig('info', child, 'label') %> - <%= link_to parent['info'][child]['label'], "/concern/file_sets/#{child}" %> - <% elsif parent.dig('info', child, 'title') %> - <%= link_to parent['info'][child]['title'], "/concern/file_sets/#{child}" %> - <% else %> - <%= link_to child, "/concern/file_sets/#{child}" %> - <% end %> - </li> + <div class="treeview"> + <ul> <!-- modality ul --> + <!-- modality files --> + <% if parent.dig('files') %> + <% parent['files'].each do |child| %> + <li> + <% if parent.dig('info', child, 'label') %> + <%= link_to parent['info'][child]['label'], "/concern/file_sets/#{child}" %> + <% elsif parent.dig('info', child, 'title') %> + <%= link_to parent['info'][child]['title'], "/concern/file_sets/#{child}" %> + <% else %> + <%= link_to child, "/concern/file_sets/#{child}" %> + <% end %> + </li> + <% end %> <% end %> - <% end %> - </ul> <!-- modality ul --> + </ul> <!-- modality ul --> + </div> <% end %> <!-- modality end --> diff --git a/hyrax/app/views/hyrax/crc_datasets/_title.html.erb b/hyrax/app/views/hyrax/crc_datasets/_title.html.erb index bab2af9456b8beaeb18863e11cd4b7ef0a43a2a0..e8252d2d4a431370ad251b2b3fda686eb60fc580 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_title.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_title.html.erb @@ -4,6 +4,9 @@ <% presenter.title.each do |title| %> <h2 class="work_title"> <%= presenter.crc_work_type.first.capitalize %>: <%= title %> + <% if presenter.is_tombstoned == ['true']%> + <span class="state state-tombstone label label-primary">Tombstoned On <%= @crc_dataset.tombstone_date&.to_date %></span> + <% end %> </h2> <% titles.append(title) %> <% end %> diff --git a/hyrax/app/views/hyrax/crc_datasets/_work_actions.html.erb b/hyrax/app/views/hyrax/crc_datasets/_work_actions.html.erb index 47fdbca7c9d2cb96db51aa519b184cb0cb94faaa..f300fd54519f9d248d49ebff795ec99468e954b5 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_work_actions.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_work_actions.html.erb @@ -1,13 +1,24 @@ - <% if can?(:edit, presenter) %> - <div class="work-actions"> - <%= link_to t('.edit'), edit_polymorphic_path([main_app, presenter]), class: 'btn btn-default' %> - </div> - <% end %> + <% if presenter.tombstone_status != ['deleted'] %> + <% if can?(:edit, presenter) && presenter.is_tombstoned != ['true'] %> + <div class="work-actions"> + <%= link_to t('.edit'), edit_polymorphic_path([main_app, presenter]), class: 'btn btn-default' %> + <% if ['initiated', 'deleted'].exclude?(presenter.tombstone_status&.first) %> + <%= link_to t('.tombstone'), tombstone_path('CrcDataset', presenter.id, 'tombstone'), method: :patch, class: 'btn btn-default' %> + <% end %> + </div> + <% end %> + <% if (current_user.crc_manager? || current_user.admin? )&& presenter.tombstone_status.present? and presenter.tombstone_status == ['initiated'] && ((Date.today) - presenter.tombstone_date.first.to_date).to_i >= ENV['NUMBER_OF_DAYS_TO_TOMBSTONE'].to_i %> + <div class="work-actions"> + <%= link_to t('.confirm_delete'), tombstone_path('CrcDataset', presenter.id, 'confirm'), method: :patch, class: 'btn btn-default' %> + <%= link_to t('.restore'), tombstone_path('CrcDataset', presenter.id, 'restore'), method: :patch, class: 'btn btn-default' %> + </div> + <% end %> + <% end %> <% if presenter.editor? && !workflow_restriction?(presenter) %> <% if presenter.valid_child_concerns.length > 0 %> <% presenter.valid_child_concerns.each do |concern| %> - <% if concern == CrcDataset && presenter.crc_work_type.present? && presenter.crc_work_type[0] != 'modality' %> + <% if concern == CrcDataset && presenter.crc_work_type.present? && presenter.crc_work_type[0] != 'modality' && presenter.is_tombstoned != ['true'] %> <div class="workflow-actions"> <%= link_to "Add New Subject", new_crc_dataset_complex_subject_path(presenter.id), class: 'btn btn-primary' %> </div> diff --git a/hyrax/app/views/hyrax/crc_datasets/complex_modalities/_form.html.erb b/hyrax/app/views/hyrax/crc_datasets/complex_modalities/_form.html.erb index 426d8bd21580fc75f8f13971d2a314813e4eda10..f2bddc2d06c1701185ef8b5e5859b6d56a082eb0 100644 --- a/hyrax/app/views/hyrax/crc_datasets/complex_modalities/_form.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/complex_modalities/_form.html.erb @@ -22,17 +22,11 @@ <% end %> <div class="base-terms"> <div class="form-group complex-form-field"> - <%= f.label :modality_title, class:'form-label' %> + <%= f.label :modality_title, "Modality folder name", class:'form-label' %> <ul class="listing" aria-live="polite"> <li><%= f.text_field :modality_title, class:'form-control' %></li> </ul> </div> - <div class="form-group complex-form-field"> - <%= f.label :modality_identifier, class:'form-label' %> - <ul class="listing" aria-live="polite"> - </li><%= f.text_field :modality_identifier, class:'form-control' %></li> - </ul> - </div> </div> <div class="base-terms"> <div class="form-group complex-form-field"> diff --git a/hyrax/app/views/hyrax/crc_datasets/complex_modalities/show.html.erb b/hyrax/app/views/hyrax/crc_datasets/complex_modalities/show.html.erb index 77f66faceb11857989619b58a6a518185b0d66a2..d826200c26a18376819bff79cc2a17fb08b4452b 100644 --- a/hyrax/app/views/hyrax/crc_datasets/complex_modalities/show.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/complex_modalities/show.html.erb @@ -7,7 +7,7 @@ <div class="card-body"> <div class="work-row row"> <div class="workflow-actions"> - <%= link_to 'Edit', edit_crc_dataset_complex_modality_path(@crc_dataset, @complex_modality), class: 'btn btn-default' %> + <%= link_to 'Edit modality and add files', edit_crc_dataset_complex_modality_path(@crc_dataset, @complex_modality), class: 'btn btn-default' %> </div> </div> <div> @@ -32,7 +32,7 @@ </li> <li> - <%= link_to @complex_modality.complex_subject.subject_identifier, crc_dataset_complex_subject_path(@complex_modality.crc_dataset, @complex_modality.complex_subject) %> + <%= link_to @complex_modality.complex_subject.subject_title, crc_dataset_complex_subject_path(@complex_modality.crc_dataset, @complex_modality.complex_subject) %> </li> <li> @@ -55,9 +55,9 @@ <!-- Accordion body --> <div id="metadata" class="panel-collapse collapse"> <div class="panel-body"> - <% if @complex_modality.modality_identifier.present? %> - <dt>modality_identifier</dt> - <dd><ul class="tabular"><li class="attribute attribute-identifier"><%= @complex_modality.modality_identifier %></ul></dd> + <% if @complex_modality.modality_title.present? %> + <dt>Modality folder name</dt> + <dd><ul class="tabular"><li class="attribute attribute-title"><%= @complex_modality.modality_title %></ul></dd> <% end %> <% if @complex_modality.modality.present? %> <dt>modality</dt> @@ -78,19 +78,19 @@ </div> <div class="card-body"> <!--- files --> - <ul class="treeview"> - <% @modality_members.each do |modality_member| %> - <li data-icon-cls="treeview-icon icon-pdf"> - <% if modality_member.label.present? %> - <%= link_to modality_member.label, "/concern/file_sets/#{modality_member.id}" %> - <% elsif modality_member.title.present? %> - <%= link_to modality_member.title, "/concern/file_sets/#{modality_member.id}" %> - <% else %> - <%= link_to modality_member.id, "/concern/file_sets/#{modality_member.id}" %> - <% end %> - </li> - <% end %> - </ul> + <div class="treeview"> + <ul> + <% @modality_members.each do |modality_member| %> + <li> + <% if modality_member.file_set_title.present? %> + <%= link_to modality_member.file_set_title, "/concern/file_sets/#{modality_member.fedora_file_set_id}" %> + <% else %> + <%= link_to modality_member.fedora_file_set_id, "/concern/file_sets/#{modality_member.fedora_file_set_id}" %> + <% end %> + </li> + <% end %> + </ul> + </div> </div> </div> <%= render 'shared/pagination', response: @modality_members, route_set: hyrax %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/crc_datasets/complex_sessions/_form.html.erb b/hyrax/app/views/hyrax/crc_datasets/complex_sessions/_form.html.erb index 55699a79d371127c8945c16e8a4c0671077efb80..7eb4bc8b7b5b75b9a7e5068564a54336712e54ac 100644 --- a/hyrax/app/views/hyrax/crc_datasets/complex_sessions/_form.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/complex_sessions/_form.html.erb @@ -22,15 +22,7 @@ <% end %> <div class="base-terms"> <div class="form-group complex-form-field"> - <%= f.label :session_identifier, class:'form-label' %> - <ul class="listing" aria-live="polite"> - <li><%= f.text_field :session_identifier, class:'form-control' %></li> - </ul> - </div> - </div> - <div class="base-terms"> - <div class="form-group complex-form-field"> - <%= f.label :session_title, class:'form-label' %> + <%= f.label :session_title, "Session folder name", class:'form-label' %> <ul class="listing" aria-live="polite"> <li><%= f.text_field :session_title, class:'form-control' %></li> </ul> diff --git a/hyrax/app/views/hyrax/crc_datasets/complex_sessions/show.html.erb b/hyrax/app/views/hyrax/crc_datasets/complex_sessions/show.html.erb index 1992fdca0573b2d45884822e03777a88a9e196a4..cdafeb25acc02fd3932c03b6cd04a4b74c51dd62 100644 --- a/hyrax/app/views/hyrax/crc_datasets/complex_sessions/show.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/complex_sessions/show.html.erb @@ -7,7 +7,7 @@ <div class="work-row row"> <div class="workflow-actions"> <%= link_to 'Add New Modality', new_crc_dataset_complex_modality_path(add_modalities_to_session: @complex_session), class: 'btn btn-primary' %> - <%= link_to 'Edit', edit_crc_dataset_complex_session_path(@crc_dataset, @complex_session), class: 'btn btn-default' %> + <%= link_to 'Edit session', edit_crc_dataset_complex_session_path(@crc_dataset, @complex_session), class: 'btn btn-default' %> </div> </div> <!-- Belongs to block --> @@ -33,7 +33,7 @@ </li> <li> - <%= link_to @complex_session.complex_subject.subject_identifier, crc_dataset_complex_subject_path(@complex_session.crc_dataset, @complex_session.complex_subject) %> + <%= link_to @complex_session.complex_subject.subject_title, crc_dataset_complex_subject_path(@complex_session.crc_dataset, @complex_session.complex_subject) %> </li> </ul> </div> @@ -51,9 +51,9 @@ <!-- Accordion body --> <div id="metadata" class="panel-collapse collapse"> <div class="panel-body"> - <% if @complex_session.session_identifier.present? %> - <dt>Session identifier</dt> - </dd><ul class="tabular"><li class="attribute attribute-identifier"><%= @complex_session.session_identifier %></li></ul></dd> + <% if @complex_session.session_title.present? %> + <dt>Session folder name</dt> + </dd><ul class="tabular"><li class="attribute attribute-identifier"><%= @complex_session.session_title %></li></ul></dd> <% end %> <% if @complex_session.session_date_recorded.present? %> <dt>Session date recorded<dt> @@ -72,44 +72,42 @@ <h2 class="card-title">Modalities and files</h2> </div> <div class="card-body"> - <!--- session children and files --> - <ul class="treeview"> - <% @session_members.each do |session_member| %> - <% if session_member.class.to_s == 'FileSet' %> - <li data-icon-cls="treeview-icon icon-pdf"> - <% if session_member.label.present? %> - <%= link_to session_member.label, "/concern/file_sets/#{session_member.id}" %> - <% elsif session_member.title.present? %> - <%= link_to session_member.title, "/concern/file_sets/#{session_member.id}" %> - <% else %> - <%= link_to session_member.id, "/concern/file_sets/#{session_member.id}" %> - <% end %> - </li> - <% else %> - <li data-icon-cls="treeview-icon icon-folder" data-expanded="true"> - <% if session_member.modality.present? %> - <%= link_to session_member.modality, crc_dataset_complex_modality_path(@complex_session.crc_dataset, session_member) %> - <% else %> - <%= link_to session_member.id, crc_dataset_complex_modality_path(@complex_session.crc_dataset, session_member) %> - <% end %> - <!--- modality files --> - <ul> - <% session_member.file_sets.each do |file_set|%> - <li data-icon-cls="treeview-icon icon-pdf"> - <% if file_set.label.present? %> - <%= link_to file_set.label, "/concern/file_sets/#{file_set.id}" %> - <% elsif file_set.title.present? %> - <%= link_to file_set.title, "/concern/file_sets/#{file_set.id}" %> - <% else %> - <%= link_to file_set.id, "/concern/file_sets/#{file_set.id}" %> - <% end %> - </li> + <div class="treeview"> + <!--- session children and files --> + <ul class="treeview"> + <% @session_members.each do |session_member| %> + <% if session_member.class.to_s == 'FileSetFastLoadMetadata' %> + <li> + <% if session_member.file_set_title.present? %> + <%= link_to session_member.file_set_title, "/concern/file_sets/#{session_member.fedora_file_set_id}" %> + <% else %> + <%= link_to session_member.fedora_file_set_id, "/concern/file_sets/#{session_member.fedora_file_set_id}" %> <% end %> - </ul> - </li> + </li> + <% else %> + <li> + <% if session_member.modality.present? %> + <%= link_to session_member.modality, crc_dataset_complex_modality_path(@complex_session.crc_dataset, session_member) %> + <% else %> + <%= link_to session_member.id, crc_dataset_complex_modality_path(@complex_session.crc_dataset, session_member) %> + <% end %> + <!--- modality files --> + <ul> + <% session_member.file_sets_fast_load_metadata.each do |metadata|%> + <li> + <% if metadata.file_set_title.present? %> + <%= link_to metadata.file_set_title, "/concern/file_sets/#{metadata.fedora_file_set_id}" %> + <% else %> + <%= link_to metadata.fedora_file_set_id, "/concern/file_sets/#{metadata.fedora_file_set_id}" %> + <% end %> + </li> + <% end %> + </ul> + </li> + <% end %> <% end %> - <% end %> - </ul> + </ul> + </div> </div> </div> <%= render 'shared/pagination', response: @session_members, route_set: hyrax %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/crc_datasets/complex_subjects/_form.html.erb b/hyrax/app/views/hyrax/crc_datasets/complex_subjects/_form.html.erb index 619cf5dd74ffeb51a54335fa5fda83895eb67102..14091d1a5a194401f84f1a7a54d3f65545655d4b 100644 --- a/hyrax/app/views/hyrax/crc_datasets/complex_subjects/_form.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/complex_subjects/_form.html.erb @@ -19,17 +19,11 @@ <div class="form-tab-content"> <div class="base-terms"> <div class="form-group complex-form-field subject_title managed"> - <%= f.label :subject_title, class:'control-label' %> + <%= f.label :subject_title, "Subject folder name", class:'control-label'%> <ul class="listing" aria-live="polite"> <li><%= f.text_field :subject_title, class:'form-control' %></li> </ul> </div> - <div class="form-group complex-form-field subject_identifier managed"> - <%= f.label :subject_identifier, class:'control-label' %> - <ul class="listing" aria-live="polite"> - <li><%= f.text_field :subject_identifier, class:'form-control' %></li> - </ul> - </div> </div> <div class="base-terms"> <div class="form-group complex-form-field subject_species managed"> @@ -57,7 +51,7 @@ </div> <div class="base-terms"> <div class="form-group complex-form-field subject_age managed"> - <%= f.label :subject_age, class:'control-label' %> + <%= f.label :subject_age, "Subject age (in years)", class:'control-label' %> <ul class="listing" aria-live="polite"> <li><%= f.text_field :subject_age , class:'form-control'%></li> </ul> diff --git a/hyrax/app/views/hyrax/crc_datasets/complex_subjects/show.html.erb b/hyrax/app/views/hyrax/crc_datasets/complex_subjects/show.html.erb index 1196ebd6e1165f844211191089163a16a35dac22..6140ceaedfbda94383d9dffdff03f6797616e85a 100644 --- a/hyrax/app/views/hyrax/crc_datasets/complex_subjects/show.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/complex_subjects/show.html.erb @@ -2,13 +2,13 @@ <div class="row work-type"> <div class="card"> <div class="card-header"> - <h2 class="card-title">Subject: <%= @complex_subject.subject_identifier %></h2> + <h2 class="card-title">Subject: <%= @complex_subject.subject_title %></h2> </div> <div class="card-body"> <div class="work-row row"> <div class="workflow-actions"> <%= link_to 'Add New Session', new_crc_dataset_complex_session_path(add_sessions_to_subject: @complex_subject), class: 'btn btn-primary' %> - <%= link_to 'Edit', edit_crc_dataset_complex_subject_path(@crc_dataset, @complex_subject), class: 'btn btn-default' %> + <%= link_to 'Edit subject', edit_crc_dataset_complex_subject_path(@crc_dataset, @complex_subject), class: 'btn btn-default' %> </div> </div> <div> @@ -47,9 +47,9 @@ <!-- Accordion body --> <div id="metadata" class="panel-collapse collapse"> <div class="panel-body"> - <% if @complex_subject.subject_identifier.present? %> - <dt>Subject identifier</dt> - <dd><ul class="tabular"><li class="attribute attribute-identifier"><%= @complex_subject.subject_identifier %></li></ul></dd> + <% if @complex_subject.subject_title.present? %> + <dt>Subject folder name</dt> + <dd><ul class="tabular"><li class="attribute attribute-identifier"><%= @complex_subject.subject_title %></li></ul></dd> <% end %> <% if @complex_subject.subject_species.present? %> <dt>Subject species</dt> @@ -64,7 +64,7 @@ <dd><ul class="tabular"><li class="attribute attribute-sex"><%= @complex_subject.subject_sex %></li></ul></dd> <% end %> <% if @complex_subject.subject_age.present? %> - <dt>Subject age</dt> + <dt>Subject age (in years)</dt> <dd><ul class="tabular"><li class="attribute attribute-age"><%= @complex_subject.subject_age %></li></ul></dd> <% end %> </ul> @@ -83,66 +83,63 @@ </div> <div class="card-body"> <!--- subject children and files --> - <ul class="treeview"> - <% @subject_members.each do |subject_member| %> - <% if subject_member.class.to_s == 'FileSet' %> - <li data-icon-cls="treeview-icon icon-pdf"> - <% if subject_member.label.present? %> - <%= link_to subject_member.label, "/concern/file_sets/#{subject_member.id}" %> - <% elsif subject_member.title.present? %> - <%= link_to subject_member.title, "/concern/file_sets/#{subject_member.id}" %> - <% else %> - <%= link_to subject_member.id, "/concern/file_sets/#{subject_member.id}" %> - <% end %> - </li> - <% else %> - <li data-icon-cls="treeview-icon icon-folder" data-expanded="true"> - <% if subject_member.session_title.present? %> - <%= link_to subject_member.session_title, crc_dataset_complex_session_path(subject_member.crc_dataset, subject_member) %> - <% else %> - <%= link_to subject_member.id, crc_dataset_complex_session_path(subject_member.crc_dataset, subject_member) %> - <% end %> - <!--- session children and files --> - <ul> - <% subject_member.file_sets.each do |file_set| %> - <li data-icon-cls="treeview-icon icon-pdf"> - <% if file_set.label.present? %> - <%= link_to file_set.label, "/concern/file_sets/#{file_set.id}" %> - <% elsif file_set.title.present? %> - <%= link_to file_set.title, "/concern/file_sets/#{file_set.id}" %> - <% else %> - <%= link_to file_set.id, "/concern/file_sets/#{file_set.id}" %> - <% end %> - </li> + <div class="treeview"> + <ul> + <% @subject_members.each do |subject_member| %> + + <% if subject_member.class.to_s == 'FileSetFastLoadMetadata' %> + <li> + <% if subject_member.file_set_title.present? %> + <%= link_to subject_member.file_set_title, "/concern/file_sets/#{subject_member.fedora_file_set_id}" %> + <% else %> + <%= link_to subject_member.fedora_file_set_id, "/concern/file_sets/#{subject_member.fedora_file_set_id}" %> <% end %> - <% subject_member.complex_modalities.each do |complex_modality| %> - <li data-icon-cls="treeview-icon icon-folder" data-expanded="true"> - <% if complex_modality.modality.present? %> - <%= link_to complex_modality.modality, crc_dataset_complex_modality_path(complex_modality.crc_dataset, complex_modality) %> - <% else %> - <%= link_to complex_modality.id, crc_dataset_complex_modality_path(complex_modality.crc_dataset, complex_modality) %> - <% end %> - <!--- modality files --> - <ul> - <% complex_modality.file_sets.each do |file_set|%> - <li data-icon-cls="treeview-icon icon-pdf"> - <% if file_set.label.present? %> - <%= link_to file_set.label, "/concern/file_sets/#{file_set.id}" %> - <% elsif file_set.title.present? %> - <%= link_to file_set.title, "/concern/file_sets/#{file_set.id}" %> - <% else %> - <%= link_to file_set.id, "/concern/file_sets/#{file_set.id}" %> - <% end %> - </li> - <% end %> - </ul> - </li> + </li> + <% else %> + <li> + <% if subject_member.session_title.present? %> + <%= link_to subject_member.session_title, crc_dataset_complex_session_path(subject_member.crc_dataset, subject_member) %> + <% else %> + <%= link_to subject_member.id, crc_dataset_complex_session_path(subject_member.crc_dataset, subject_member) %> <% end %> - </ul> - </li> + <!--- session children and files --> + <ul> + <% subject_member.file_sets_fast_load_metadata.each do |metadata| %> + <li> + <% if metadata.file_set_title.present? %> + <%= link_to metadata.file_set_title, "/concern/file_sets/#{metadata.fedora_file_set_id}" %> + <% else %> + <%= link_to metadata.fedora_file_set_id, "/concern/file_sets/#{metadata.fedora_file_set_id}" %> + <% end %> + </li> + <% end %> + <% subject_member.complex_modalities.each do |complex_modality| %> + <li> + <% if complex_modality.modality.present? %> + <%= link_to complex_modality.modality, crc_dataset_complex_modality_path(complex_modality.crc_dataset, complex_modality) %> + <% else %> + <%= link_to complex_modality.id, crc_dataset_complex_modality_path(complex_modality.crc_dataset, complex_modality) %> + <% end %> + <!--- modality files --> + <ul> + <% complex_modality.file_sets_fast_load_metadata.each do |metadata|%> + <li> + <% if metadata.file_set_title.present? %> + <%= link_to metadata.file_set_title, "/concern/file_sets/#{metadata.fedora_file_set_id}" %> + <% else %> + <%= link_to metadata.fedora_file_set_id, "/concern/file_sets/#{metadata.fedora_file_set_id}" %> + <% end %> + </li> + <% end %> + </ul> + </li> + <% end %> + </ul> + </li> + <% end %> <% end %> - <% end %> - </ul> + </ul> + </div> </div> </div> <%= render 'shared/pagination', response: @subject_members, route_set: hyrax %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/crc_datasets/show.html.erb b/hyrax/app/views/hyrax/crc_datasets/show.html.erb index 5eb0fa438f1a3e0f85003b0a403e1b96d136aee1..188fe8050ae77e789eee34ddc2dc16ba529d4ea4 100644 --- a/hyrax/app/views/hyrax/crc_datasets/show.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/show.html.erb @@ -11,18 +11,19 @@ </div> </div><!-- /.card --> </div> - - <div class="card"> - <div class="card-header"> - <% if presenter.crc_work_type.first != 'modality' %> - <h2 class="card-title">Subjects and files</h2> - <% else %> - <h2 class="card-title">Files</h2> - <% end %> - </div> - <div class="card-body"> - <%= render 'all_children', presenter: @presenter %> + <% if presenter.tombstone_status != ["deleted"] %> + <div class="card"> + <div class="card-header"> + <% if presenter.crc_work_type.first != 'modality' %> + <h2 class="card-title">Subjects and files</h2> + <% else %> + <h2 class="card-title">Files</h2> + <% end %> + </div> + <div class="card-body"> + <%= render 'all_children', presenter: @presenter %> + </div> </div> - </div> + <% end %> </div> </div> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/dashboard/sidebar/_bulkrax_sidebar_additions.html.erb b/hyrax/app/views/hyrax/dashboard/sidebar/_bulkrax_sidebar_additions.html.erb index c00e3605f16fccf0c14e1d66ed67e1448103a8dd..fce88aa2b66b802055323c567939e70fe8e4546f 100644 --- a/hyrax/app/views/hyrax/dashboard/sidebar/_bulkrax_sidebar_additions.html.erb +++ b/hyrax/app/views/hyrax/dashboard/sidebar/_bulkrax_sidebar_additions.html.erb @@ -1,11 +1,13 @@ -<% if can? :read, Bulkrax::Importer %> - <%= menu.nav_link(bulkrax.importers_path) do %> - <span class="fa fa-cloud-upload" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('bulkrax.admin.sidebar.importers') %></span> +<% if ENV.fetch('HYKU_BULKRAX_ENABLED', 'true') == 'true' %> + <% if can? :read, Bulkrax::Importer %> + <%= menu.nav_link(bulkrax.importers_path) do %> + <span class="fa fa-cloud-upload" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('bulkrax.admin.sidebar.importers') %></span> + <% end %> <% end %> -<% end %> -<% if can? :read, Bulkrax::Exporter %> - <%= menu.nav_link(bulkrax.exporters_path) do %> - <span class="fa fa-cloud-download" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('bulkrax.admin.sidebar.exporters') %></span> + <% if can? :read, Bulkrax::Exporter %> + <%= menu.nav_link(bulkrax.exporters_path) do %> + <span class="fa fa-cloud-download" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('bulkrax.admin.sidebar.exporters') %></span> + <% end %> <% end %> <% end %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb b/hyrax/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb index 6a9ef9b0bbde3245c46188dbf598b706f225fbf3..f4936305e0e68b7428cbdb3a965d0b330c7ff51f 100644 --- a/hyrax/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +++ b/hyrax/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb @@ -1,15 +1,17 @@ -<li class="h5"><%= t('hyrax.admin.sidebar.repository_objects') %></li> + <li class="h5 nav-item"><%= t('hyrax.admin.sidebar.repository_objects') %></li> -<%= menu.nav_link(hyrax.my_collections_path, - onclick: "dontChangeAccordion(event);", - also_active_for: hyrax.dashboard_collections_path) do %> - <span class="fa fa-folder-open" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('hyrax.admin.sidebar.collections') %></span> -<% end %> + <%= menu.nav_link(hyrax.my_collections_path, + class: "nav-link", + onclick: "dontChangeAccordion(event);", + also_active_for: hyrax.dashboard_collections_path) do %> + <span class="fa fa-folder-open" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('hyrax.admin.sidebar.collections') %></span> + <% end %> -<%= menu.nav_link(hyrax.my_works_path, - onclick: "dontChangeAccordion(event);", - also_active_for: hyrax.dashboard_works_path) do %> - <span class="fa fa-file" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('hyrax.admin.sidebar.works') %></span> -<% end %> + <%= menu.nav_link(hyrax.my_works_path, + class: "nav-link", + onclick: "dontChangeAccordion(event);", + also_active_for: hyrax.dashboard_works_path) do %> + <span class="fa fa-file" aria-hidden="true"></span> <span class="sidebar-action-text"><%= t('hyrax.admin.sidebar.works') %></span> + <% end %> -<%= render 'hyrax/dashboard/sidebar/menu_partials', menu: menu, section: :repository_content %> \ No newline at end of file + <%= render 'hyrax/dashboard/sidebar/bulkrax_sidebar_additions', menu: menu %> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/my/works/_facets.html.erb b/hyrax/app/views/hyrax/my/works/_facets.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..ba15d10917ce41df7a482d740d8222db84fc1999 --- /dev/null +++ b/hyrax/app/views/hyrax/my/works/_facets.html.erb @@ -0,0 +1,19 @@ +<% # main container for facets/limits menu -%> +<% if has_facet_values? %> + <div class="list-filters" role="group"> + <span class="list-filters-label"><%= t("hyrax.dashboard.my.facet_label.works") %></span> + <%= render_facet_partials %> + <fieldset class="btn-group"> + <legend class="sr-only">Tombstoned</legend> + <% button_url = if params[:controller].include?('my') + "/dashboard/my/works?f%5Bis_tombstoned_ssim%5D%5B%5D=true&locale=en" + else + "/dashboard/works?f%5Bis_tombstoned_ssim%5D%5B%5D=true&locale=en" + end + %> + <a class="btn btn-default" type="button" id="is_tombstoned_ssim" href="<%= button_url %>"> + Tombstoned + </a> + </fieldset> + </div> +<% end %> \ No newline at end of file diff --git a/hyrax/app/views/shared/_footer.html.erb b/hyrax/app/views/shared/_footer.html.erb index e77800942234a5dd29ec68c0a319d653d93ce38c..c6516a6e2bbb4b7561a73f415586eafedb5f169a 100644 --- a/hyrax/app/views/shared/_footer.html.erb +++ b/hyrax/app/views/shared/_footer.html.erb @@ -23,7 +23,7 @@ </a> </li> <li> - <a href=#> + <a href=/terms> Terms of Usage </a> </li> diff --git a/hyrax/app/views/shared/tombstone.html.erb b/hyrax/app/views/shared/tombstone.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..ee0d8105f45d002b33c1959df85a724fb4071a2d --- /dev/null +++ b/hyrax/app/views/shared/tombstone.html.erb @@ -0,0 +1,2 @@ +<h1><%= @crc_dataset %> <span class="state state-tombstone label label-primary">Tombstoned On <%= @crc_dataset.tombstone_date&.to_date %></span></h1> +<span class="human_readable_type">(<%= @crc_dataset&.human_readable_type %>)</span> \ No newline at end of file diff --git a/hyrax/config/authorities/dates.yml b/hyrax/config/authorities/dates.yml index 5fc8d6d1029d394d8b8b04c26a7cff9f06dc0951..4f2d0b3a085465a97c645e7acf68b4f1ab911530 100644 --- a/hyrax/config/authorities/dates.yml +++ b/hyrax/config/authorities/dates.yml @@ -17,6 +17,9 @@ terms: - id: Deposited term: Deposited active: true + - id: Published + term: Published + active: true - id: Recorded term: Recorded active: true diff --git a/hyrax/config/environments/production.rb b/hyrax/config/environments/production.rb index cf85b5457a0c4491960f476e2aad61aaa4af4f10..26c99685544c77446076c2957f199c4d1b359d8a 100644 --- a/hyrax/config/environments/production.rb +++ b/hyrax/config/environments/production.rb @@ -33,7 +33,7 @@ Rails.application.configure do end # Compress JavaScripts and CSS. - config.assets.js_compressor = :uglifier + config.assets.js_compressor = :terser # config.assets.css_compressor = :sass # Do not fallback to assets pipeline if a precompiled asset is missed. diff --git a/hyrax/config/initializers/bulkrax.rb b/hyrax/config/initializers/bulkrax.rb index a3b5c79e9d2bb567d081019eeb8609c54d7c2fbe..34289090ce6afd127f085ad34a35c22c8cd3a817 100644 --- a/hyrax/config/initializers/bulkrax.rb +++ b/hyrax/config/initializers/bulkrax.rb @@ -6,6 +6,8 @@ Bulkrax.setup do |config| { name: 'CRC folder parser - Build csv from directory data', class_name: 'Bulkrax::CrcFolderParser', partial: 'crc_folder_fields' }, ] + config.default_work_type = 'CrcDataset' + config.field_mappings = { "Bulkrax::CrcFolderParser" => { "date_created" => { from: ["date"] }, @@ -32,6 +34,3 @@ Bulkrax.setup do |config| } } end - -# Sidebar for hyrax 3+ support -Hyrax::DashboardController.sidebar_partials[:repository_content] << "hyrax/dashboard/sidebar/bulkrax_sidebar_additions" if Object.const_defined?(:Hyrax) && ::Hyrax::DashboardController&.respond_to?(:sidebar_partials) diff --git a/hyrax/config/initializers/hyrax.rb b/hyrax/config/initializers/hyrax.rb index de35f0789c44c4f66c851a9a32684e6c0b2b8087..44cb7c1a2b73657f485e86e23a9d94af1814a96a 100644 --- a/hyrax/config/initializers/hyrax.rb +++ b/hyrax/config/initializers/hyrax.rb @@ -79,7 +79,7 @@ Hyrax.config do |config| # config.redis_namespace = "hyrax" # Path to the file characterization tool - config.fits_path = ENV['FITS_PATH'] || "/fits/fits-1.5.0/fits.sh" + config.fits_path = ENV['FITS_PATH'] || "/fits/fits-1.5.5/fits.sh" # Path to the file derivatives creation tool # config.libreoffice_path = "soffice" diff --git a/hyrax/config/initializers/sidekiq.rb b/hyrax/config/initializers/sidekiq.rb index 438ce86f9100434951e22d84f88b77eadccfc4f3..9117b1adf9b8537e1d08651ab4876e25b6d8bd43 100644 --- a/hyrax/config/initializers/sidekiq.rb +++ b/hyrax/config/initializers/sidekiq.rb @@ -2,7 +2,7 @@ config = YAML.safe_load(ERB.new(IO.read(Rails.root + 'config' + 'redis.yml')).result)[Rails.env].with_indifferent_access redis_config = config.merge(thread_safe: true) -Sidekiq::Logging.logger.level = Logger::WARN if ENV['RAILS_ENV'] == 'production' +Sidekiq.logger.level = Logger::WARN if ENV['RAILS_ENV'] == 'production' redis_conn = { url: "redis://#{config[:host]}:#{config[:port]}/" } diff --git a/hyrax/config/locales/crc_dataset.en.yml b/hyrax/config/locales/crc_dataset.en.yml index dd51c997bc3ca1b34d53361098807717b5b7a262..b1abd9f470071bed4e4cbf23395d87c1dff564e2 100644 --- a/hyrax/config/locales/crc_dataset.en.yml +++ b/hyrax/config/locales/crc_dataset.en.yml @@ -9,9 +9,15 @@ en: crc_datasets: attribute_rows: edit: "Edit" + work_actions: + tombstone: "Tombstone" + confirm_delete: "Confirm Delete" + restore: "Restore" + edit: "Edit experiment" simple_form: labels: crc_dataset: + title: "Folder name" complex_date: "Date" complex_funding_reference: "Funding reference" complex_identifier: "Identifiers" diff --git a/hyrax/config/locales/en.yml b/hyrax/config/locales/en.yml index 69723792d79959043e267cbe01eaf1fbce233376..fd52b8fc03b532b890de0e96b63352da0036e78d 100644 --- a/hyrax/config/locales/en.yml +++ b/hyrax/config/locales/en.yml @@ -61,14 +61,14 @@ en: simple_form: hints: defaults: - title: The title of your work. + title: The title of your work (dataset). abstract: Abstract, method, table of contents, technical information or a free-text description for the dataset. alternative_title: Alternative title or the title in another language, if applicable. keyword: '<strong>Note:</strong> To enter multiple keywords, click on "Add another Keyword." Do not list them in a single field.' - license: License for your work. + license: License for your work (dataset). resource_type: Type of content. More than one type may be selected. - publisher: The person or group making the work available. - complex_person: 'Authors or contributors to the work. Enter the Surname, the Given name, and select their Role. A person can have multiple Given names. <br/>For affiliation, enter details of the affiliation, e.g. Chair, Institute, Faculty, University' + publisher: The person or group making the work (dataset) available. + complex_person: 'Authors or contributors to the work (dataset). Enter the Surname, the Given name, and select their Role. A person can have multiple Given names. <br/>For affiliation, enter details of the affiliation, e.g. Chair, Institute, Faculty, University' complex_identifier: External identifiers, if applicable. placeholders: defaults: diff --git a/hyrax/config/locales/hyrax.en.yml b/hyrax/config/locales/hyrax.en.yml index a3d324e298563682fecb7036ff47c564aa7f2c5c..b034206c1374b710ce1fb152e192f8395c39442b 100644 --- a/hyrax/config/locales/hyrax.en.yml +++ b/hyrax/config/locales/hyrax.en.yml @@ -42,6 +42,8 @@ en: complex_identifier_ssm: Identifier complex_identifier_group_id_sim: Group id complex_identifier_project_id_sim: Project id + # complex modality + modality_title_sim: Modality # complex person complex_person_sim: Creator complex_person_other_sim: Creator @@ -58,11 +60,14 @@ en: complex_person_affiliation_sim: Affiliation # complex relation complex_relation_relationship_sim: Relationship + # complex session + session_sim: Session # complex subject complex_subject_species_sim: Subject species complex_subject_type_sim: Subject type complex_subject_sex_sim: Subject sex complex_subject_age_sim: Subject age + complex_subject_age_itsim: Subject age # crc fields modality_sim: Modality coverage_sim: Coverage @@ -195,18 +200,236 @@ en: complex_relation_ssm: Related item # Complex subject complex_subject_ssm: Subject + helpers: + action: + batch: + new: Create batch of works (datasets) + work: + new: Add New Work (dataset) hyrax: account_name: My Institution Account Id + admin: + admin_sets: + document_list: + no_works: The administrative set does not contain any works (datasets). + form: + note: Users granted a new role will only gain the role on works (datasets) that are deposited after that role has been granted. + form_participant_table: + depositors: + help: Depositors can add new works (datasets) to this administrative set. + viewers: + help: Viewers of this administrative set can view works in the set regardless of the visibility settings applied to the work (dataset). For example, viewers can view works (datasets) in this set even if the works (datasets) are currently embargoed or restricted. + form_visibility: + page_description: Release and visibility settings determine the options available to depositors when submitting a work (dataset) to this administrative set. Changes to these settings do not affect previously deposited works. + release: + fixed: Depositor must choose embargo -- delay release of all works (datasets) until + form_workflow: + page_description: Each administrative set has a workflow associated with it. This workflow is applied to all works (datasets) added to the administrative set. Select the workflow to be used for this administrative set below. + show: + item_list_header: Works (datasets) in This Set + analytics: + collection_reports: + summary: + work_views: Views of works (datasets) + work_downloads: Downloads of works (datasets) + monthly_summary: + work_views: Views of works (datasets) + work_downloads: Downloads of works (datasets) + custom_range: + work_views: Views of works (datasets) + work_downloads: Downloads of works (datasets) + top_collections: + works_in_collection_views: Works (datasets) In This Collection Views + work_reports: + index: + title: Works (datasets) Report + works: works (datasets) + show: + title: Work (dataset) Report + return_to_btn: Return to Works (datasets) Report + view_work_btn: View Work (dataset) + work_type: Work (datasets) type + work_counts: + child_works: child works (datasets) + top_works: + top_works: Top Works (datasets) + work_title: Work (dataset) Title + work_views: Work (dataset) Page Views + collection_types: + form_participant_table: + help: Managers of collections of this type can edit collections other users have created, including adding to and removing works (datasets) from a collection, modifying collection metadata, and deleting collections. + sidebar: + works_report: Works (datasets) Report + works: Works (Datasets) + works_listing: Works (datasets) listing + stats: + headers: + main: Work (dataset) Statistics + total: 'Total Works (datasets):' + base: + form: + batch_upload_hint: To create a separate work (dataset) for each of the files, go to + form_child_work_relationships: + actions: + remove: Remove from this work (dataset) + attach_new_work: Deposit new work as child of this work (dataset) + caption: This work currently contains these child works (datasets) + confirm: + text: Removing this child work (dataset) will not remove it from the repository, only from this parent work (dataset). Are you sure you want to remove this work (dataset) from this parent work (dataset)? + header: + title: Work (dataset) title + form_files: + local_upload_browse_everything_html: | + <p>You can add one or more files to associate with this work (dataset). Add files + from your local system or a cloud provider.</p> + <p>Note that if you use a cloud provider to upload a large number of + files within a short period of time, the provider may not be able to + accommodate your request. If you experience errors uploading from the + cloud, let us know via the %{contact_href}.</p> + local_upload_html: "<p>You can add one or more files to associate with this work (dataset).</p>" + form_member_of_collections: + add: Add + caption: This work (dataset) is currently in these collections + confirm: + text: Removing this work (dataset) will not remove it from the repository, only from this collection. Are you sure you want to remove this work (dataset) from the collection? + form_permission_under_embargo: + help_html: "<strong>This work (dataset) is under embargo.</strong> You can change the settings of the embargo here, or you can visit the %{edit_link} to deactivate it." + form_permission_under_lease: + help_html: "<strong>This work (dataset) is under lease.</strong> You can change the settings of the lease here, or you can visit the %{edit_link} to deactivate it." + form_progress: + required_descriptions: Describe your work (dataset) + saving_your_work: Saving your work (dataset). This may take a few moments + form_rendering: + help_html: Select file(s) to be offered as a download for every image in Universal Viewer, for example a PDF of the whole work (dataset). + form_representative: + help_html: Select the file with media that represents this work (dataset). + form_share: + directions: Regardless of the visibility settings for this work (dataset), you can also share it with other users and groups. + form_thumbnail: + help_html: Select the file to be used as the thumbnail for this work (dataset). + batch: + edit: + apply_changes_to: 'Changes will be applied to: (%{x_number_of} works (datasets))' + batch_edit_descriptions: Batch Edit Descriptions <small>Click on labels below to edit work (dataset) descriptions.</small> + batch_uploads: + files: + button_label: Add New Work (dataset) + instructions: Each file will be uploaded to a separate new work (dataset) resulting in one work (dataset) per uploaded file. + upload_type_instructions: To create a single work (dataset) for all the files, go to + new: + breadcrumb: Create Batch of Works (datasets) + header: Batch Create New Works (datasets) + in_collections: These Works (datasets) in Collections + in_other_works: This Work in Other Works (datasets) + in_this_work: Other Works in this Work (dataset) + progress: + header: Save Works (datasets) + collection: + actions: + add_existing_works: + desc: Add existing works (datasets) to this Collection + label: Add existing works (datasets) to this collection + add_new_work: + desc: Deposit new work (dataset) through this collection + label: Deposit new work (dataset) through this collection + also_belongs_to: This work (dataset) also belongs to + collections: + search_form: + placeholder: Search subcollections and works (datasets) in this collection + works_in_collection: Works (datasets) + collection_types: + create_service: + admin_set_description: An aggregation of works (datasets) that is intended to help with administrative control. Admin Sets provide a way of defining behaviors and policies around a set of works. + default_description: A User Collection can be created by any user to organize their works (datasets). + dashboard: + admin_sets: + works: Works (datasets) + all: + works: All Works (datasets) + breadcrumbs: + works_report: Works (datasets) Report + collections: + works: Works (datasets) + form_share_table: + depositors: + help: Depositors of this collection can view the collection and add works (datasets) to it, even if the visibility permissions of the collection otherwise would not permit them to view it. + managers: + help: Managers of this collection can add to and remove works (datasets) from the collection, modify collection metadata, and delete the collection. + help_with_works: For collections of type %{type_title}, when works (datasets) are created directly in this collection, the managers are given edit access to the new work (dataset). + viewers: + help_with_works: For collections of type %{type_title}, when works (datasets) are created directly in this collection, the viewers are given read access to the new work (datasets). + show: + item_count: Works (datasets) + work_action_menu: + delete_work: Delete work (dataset) + deleting_from_work: Deleting a work (dataset) from %{application_name} is permanent. Click OK to delete this work (dataset) from %{application_name}, or Cancel to cancel this operation + edit_work: Edit work (dataset) + transfer_ownership_of_work: Transfer ownership of work (dataset) + create_work: Create Work (dataset) + heading_actions: + create_work: Create work (dataset) + select_type_of_work: Select type of work (dataset) + managed: + works: Managed Works (datasets) + my: + action: + delete_work: Delete work (dataset) + edit_work: Edit work (dataset) + highlight: Highlight work (dataset) on profile + transfer: Transfer ownership of work (dataset) + unhighlight: Unhighlight work (dataset) + work_confirmation: Deleting a work (dataset) from %{application_name} is permanent. Click OK to delete this work (dataset) from %{application_name}, or Cancel to cancel this operation + facet_label: + works: 'Filter works (datasets):' + heading: + work: + visibility: Visibility of Work (dataset) + shared: Works (datasets) Shared with Me + works: Works (datasets) + your_works: Your Works (datasets) + no_transfer_requests: You haven't received any work (dataset) transfer requests + no_transfers: You haven't transferred any work (dataset) + proxy_help: Select a user who can deposit works (datasets) on your behalf. Both you and your proxy will be able to make changes to these works (datasets). You can revoke a proxy by clicking the Delete Proxy button. To revoke their ability to edit a work they previously submitted, remove them from the Sharing tab on each work (dataset). + repository_growth: + works: Works (datasets) + work_type_graph: + work_type: Work (dataset) Type + title: Work (dataset) Types + count: Count + stats: + works: Works (datasets) created + transfer_works_link: Select works (datasets) to transfer directory: suffix: "@example.org" footer: copyright_html: "<strong>Copyright © 2018 Samvera</strong> Licensed under the Apache License, Version 2.0" service_html: A service of <a href="http://samvera.org/" class="navbar-link" target="_blank">Samvera</a>. - institution_name: Institution - institution_name_full: The Institution Name + homepage: + featured_works: + no_works: No works (datasets) have been featured + tab_label: Featured Works (Datasets) + title: Featured Works (Datsets) + no_public: No public work (dataset) has been contributed. + institution_name: RUB + institution_name_full: Ruhr University Bochum + models: + hyrax/work: Work (Dataset) + my: + count: + works: + in_repo: "<strong>%{total_count} works (datasets)</strong> in the repository" + works_listing: Works (datasets) listing + you_manage: "<strong>%{total_count} works (datasets)</strong> you can manage in the repository" + you_own: "<strong>%{total_count} works (datasets)</strong> you own in the repository" product_name: RDMS product_twitter_handle: "@SamveraRepo" notifications: + proxy_deposit_request: + transfer_on_create: + message: "%{user_link} wants to transfer a work (dataset) to you. Review all %{transfer_link}" + validation: + open_transfer: Must close the open transfer on the work (dataset) before creating a new one + sender_is_not_receiver: Specify a different user to receive the work (dataset) workflow: approved_and_sent: message: "%{title} (%{link}) has been approved by %{user} and needs approval by %{next_approval_from}. %{comment}" @@ -225,4 +448,72 @@ en: approved: message: "Mediated deposit experiment (%{link}) was approved by %{user_role} %{user} and is awaiting your approval. %{comment}" subject: "Deposit approved by %{user_role}" + passive_consent_to_agreement: By saving this work (dataset) I agree to the + search: + form: + option: + my_works: + label_long: My Works (datasets) + label_short: My Works (datasets) + select_type: + description: General purpose worktype (dataset type) + name: Work (Dataset) + share_button: Share Your Work (Dataset) + stats: + work: + header: Work (Dataset) Analytics + transfers: + new: + confirm: Are you sure you want to transfer ownership of this work (dataset) to another user? Click Ok to transfer or Cancel to return to the transfer screen + upload: + change_access_message_html: "<p>You have changed the access level on work (dataset) <i>%{curation_concern}</i>, making it accessible to other users or groups to view or edit.</p><p>Would you like change all of the files within the work (dataset) to have the same access users, groups and visibility as well?</p>" + users: + index: + works_created: Works (Datasets) Created + workflow: + unauthorized: The work (dataset) is not currently available because it has not yet completed the approval process + unauthorized_parent: The file is not currently available because its parent work (dataset) has not yet completed the approval process + works: + create: + breadcrumb: Add New Work (Dataset) + form: + in_other_works: This Work (dataset) in Other Works (datasets) + in_this_work: Other Works (datasets) in this Work (dataset) + progress: + header: Save Work (dataset) + update: + header: Edit Work (dataset) + simple_form: + hints: + admin_set: + description: A brief overarching description that applies to all works (datasets) collected in this set. For example, "Theses and supplementary files created by the School of Earth Sciences graduate students." + collection_type: + allow_multiple_membership: Allow works (datasets) to belong to multiple collections of this type + assigns_visibility: Allow collections of this type to assign initial visibility settings to a new work (dataset) + assigns_workflow: Allow collections of this type to assign workflow to a new work (dataset) + require_membership: A work (dataset) must belong to at least one collection of this type + share_applies_to_new_works: When new works (datasets) are created directly in the collection, grant sharing users and groups permissions for the new work (dataset) according to their collection roles. + defaults: + based_near: A place name related to the work (dataset), such as its site of publication, or the city, state, or country the work (dataset) contents are about. Calls upon the <a href='http://www.geonames.org'>GeoNames web service</a>. + contributor: A person or group you want to recognize for playing a role in the creation of the work (dataset), but not the primary role. + creator: The person or group responsible for the work (dataset). Usually this is the author of the content. Personal names should be entered with the last name first, e.g. "Smith, John.". + date_created: The date on which the work (dataset) was created. + description: Free-text notes about the work (dataset). Examples include abstracts of a paper or citation information for a journal article. + identifier: A unique handle identifying the work (dataset). An example would be a DOI for a journal article, or an ISBN or OCLC number for a book. + keyword: Words or phrases you select to describe what the work (dataset) is about. These are used to search for content. + language: The language of the work's (dataset's) content. + license: Licensing and distribution information governing access to the work (dataset). Select from the provided drop-down list. + publisher: The person or group making the work (dataset) available. Generally this is the institution. + related_url: A link to a website or other specific content (audio, video, PDF document) related to the work (dataset). An example is the URL of a research project from which the work (dataset) was derived. + subject: Headings or index terms describing what the work (dataset) is about; these do need to conform to an existing vocabulary. + title: A name to aid in identifying a work (dataset). + labels: + collection_type: + share_applies_to_new_works: APPLY TO NEW WORKS (DATASETS) + placeholders: + defaults: + find_child_work: Search for a work (dataset)… + total_view: + one: This work (dataset) has 1 total view + other: This work (dataset) has %{count} total views diff --git a/hyrax/config/role_map.yml b/hyrax/config/role_map.yml index a13f3e36953763190c4bd9486cf99683e6cf7677..b5e16ae8c5d8d8aaf7a4d652f33df883c02bd353 100644 --- a/hyrax/config/role_map.yml +++ b/hyrax/config/role_map.yml @@ -20,4 +20,5 @@ test: - leland_himself@example.com production: - # Add roles for users here. + archivist: + - archivist1@example.com diff --git a/hyrax/config/routes.rb b/hyrax/config/routes.rb index c5e8c36cf1bfde31e776cb571ec3d16a2a8c3cc6..841a3b6123c8981405a8484a194c1ce8790e2777 100644 --- a/hyrax/config/routes.rb +++ b/hyrax/config/routes.rb @@ -1,4 +1,5 @@ Rails.application.routes.draw do + concern :range_searchable, BlacklightRangeLimit::Routes::RangeSearchable.new mount Bulkrax::Engine, at: '/' mount Riiif::Engine => 'images', as: :riiif if Hyrax.config.iiif_image_server? mount BrowseEverything::Engine => '/browse' @@ -9,6 +10,8 @@ Rails.application.routes.draw do resource :catalog, only: [:index], as: 'catalog', path: '/catalog', controller: 'catalog' do concerns :searchable + concerns :range_searchable + end devise_for :users, :controllers => { omniauth_callbacks: 'callbacks' } @@ -44,10 +47,17 @@ Rails.application.routes.draw do end Bulkrax::Engine.routes.draw do + concern :range_searchable, BlacklightRangeLimit::Routes::RangeSearchable.new post 'rerun_failed_entries', to: "rerun_importers#rerun_failed_entries" end Hyrax::Engine.routes.draw do + concern :range_searchable, BlacklightRangeLimit::Routes::RangeSearchable.new + # post 'concern/:type/:id/:status', to: 'tombstones#update' + # post 'concern/crc_datasets/:id/confirm_delete', to: 'crc_datasets#confirm_delete' + + resource :tombstone, path: "concern/hyrax/:type/:id/:status", only: %i(update) + scope :concern, module: :crc_datasets do resources :crc_datasets, only: [] do resources :complex_sessions diff --git a/hyrax/config/sidekiq.yml b/hyrax/config/sidekiq.yml index d784de383d2a16a34b562d93ed39ff9ba2ecbf8a..c0eb9f91fcb19e9d80e2a1a5b0154321e30fbdd9 100644 --- a/hyrax/config/sidekiq.yml +++ b/hyrax/config/sidekiq.yml @@ -1,5 +1,9 @@ :queues: - default + - work_import + - complex_subject_import + - complex_session_import + - complex_modality_import - import # added - export # added diff --git a/hyrax/config/workflows/three_step_mediated_deposit_workflow.json b/hyrax/config/workflows/three_step_mediated_deposit_workflow.json index b7c50cdec30f126653ec34e3339bc26eecf6db63..f9826b1ab3f24da548d76ac21f13df3b56759033 100644 --- a/hyrax/config/workflows/three_step_mediated_deposit_workflow.json +++ b/hyrax/config/workflows/three_step_mediated_deposit_workflow.json @@ -160,6 +160,29 @@ "Hyrax::Workflow::GrantEditToGroupManager" ] }, + { + "name": "archive_from_crc_manager", + "from_states": [ + { + "names": [ + "pending_review_from_crc_manager" + ], + "roles": [ + "approving_crc_manager" + ] + } + ], + "transition_to": "archived", + "methods": [ + "Hyrax::Workflow::GrantReadToDepositor", + "Hyrax::Workflow::RevokeEditFromDepositor", + "Hyrax::Workflow::GrantReadToGroupManager", + "Hyrax::Workflow::RevokeEditFromGroupManager", + "Hyrax::Workflow::GrantReadToCrcManager", + "Hyrax::Workflow::RevokeEditFromCrcManager", + "Hyrax::Workflow::DeactivateObject" + ] + }, { "name": "approval_from_crc_manager", "from_states": [ @@ -309,7 +332,8 @@ "Hyrax::Workflow::RevokeEditFromGroupManager", "Hyrax::Workflow::GrantReadToCrcManager", "Hyrax::Workflow::RevokeEditFromCrcManager", - "Hyrax::Workflow::ActivateObject" + "Hyrax::Workflow::ActivateObject", + "Hyrax::Workflow::RegisterDoi" ] }, { diff --git a/hyrax/db/migrate/20230103083615_create_file_set_fast_load_metadata.rb b/hyrax/db/migrate/20230103083615_create_file_set_fast_load_metadata.rb new file mode 100644 index 0000000000000000000000000000000000000000..bebac77b298fff2539e5cee95290517c7fc979f1 --- /dev/null +++ b/hyrax/db/migrate/20230103083615_create_file_set_fast_load_metadata.rb @@ -0,0 +1,10 @@ +class CreateFileSetFastLoadMetadata < ActiveRecord::Migration[5.2] + def change + create_table :file_set_fast_load_metadata do |t| + t.string :fedora_file_set_id + t.string :file_set_title + t.string :work_model_name + t.string :work_source_identifier + end + end +end diff --git a/hyrax/db/migrate/20230116093930_remove_identifier_from_subject_session_and_modality.rb b/hyrax/db/migrate/20230116093930_remove_identifier_from_subject_session_and_modality.rb new file mode 100644 index 0000000000000000000000000000000000000000..8ca06bab4845eb6ffa9faf669482635878cdd874 --- /dev/null +++ b/hyrax/db/migrate/20230116093930_remove_identifier_from_subject_session_and_modality.rb @@ -0,0 +1,7 @@ +class RemoveIdentifierFromSubjectSessionAndModality < ActiveRecord::Migration[5.2] + def change + remove_column :complex_subjects, :subject_identifier + remove_column :complex_sessions, :session_identifier + remove_column :complex_modalities, :modality_identifier + end +end diff --git a/hyrax/db/schema.rb b/hyrax/db/schema.rb index d434a1cb06fe2f4e5518f18e1c1f7892b1d00f98..1bb24b1df57bf945d57a3830d5649670af9f3168 100644 --- a/hyrax/db/schema.rb +++ b/hyrax/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_11_25_072427) do +ActiveRecord::Schema.define(version: 2023_01_16_093930) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -183,7 +183,6 @@ ActiveRecord::Schema.define(version: 2022_11_25_072427) do end create_table "complex_modalities", force: :cascade do |t| - t.string "modality_identifier" t.string "modality" t.string "source_identifier" t.string "parent_source_identifier" @@ -191,7 +190,6 @@ ActiveRecord::Schema.define(version: 2022_11_25_072427) do end create_table "complex_sessions", force: :cascade do |t| - t.string "session_identifier" t.string "session_title" t.string "session_date_recorded" t.string "source_identifier" @@ -199,7 +197,6 @@ ActiveRecord::Schema.define(version: 2022_11_25_072427) do end create_table "complex_subjects", force: :cascade do |t| - t.string "subject_identifier" t.string "subject_species" t.string "subject_type" t.string "subject_sex" @@ -258,6 +255,13 @@ ActiveRecord::Schema.define(version: 2022_11_25_072427) do t.index ["user_id"], name: "index_file_download_stats_on_user_id" end + create_table "file_set_fast_load_metadata", force: :cascade do |t| + t.string "fedora_file_set_id" + t.string "file_set_title" + t.string "work_model_name" + t.string "work_source_identifier" + end + create_table "file_view_stats", force: :cascade do |t| t.datetime "date" t.integer "views" diff --git a/hyrax/docker-entrypoint.sh b/hyrax/docker-entrypoint.sh index 2521c602908d3b00f24e1352151d826aa5429b56..a2f1e61d3492fd9a7878f9e836bdc81ff4894025 100644 --- a/hyrax/docker-entrypoint.sh +++ b/hyrax/docker-entrypoint.sh @@ -1,9 +1,9 @@ -#!/bin/bash +#!/bin/sh echo "Creating log folder" -mkdir -p $APP_WORKDIR/log +mkdir -p "${APP_WORKDIR}/log" -if [ "$RAILS_ENV" = "production" ]; then +if [ "${RAILS_ENV}" = "production" ]; then # Verify all the production gems are installed bundle check else @@ -17,29 +17,29 @@ bundle exec rake db:exists && bundle exec rake db:migrate || bundle exec rake db # Check solr and fedora are running n=0 -solr_running=false -fedora_running=false -while [[ $n -lt 15 ]] +solr_running=0 +fedora_running=0 +while [ ${n} -lt 15 ] do # check Solr is running - if [ "solr_running" = false ] ; then - SOLR=$(curl --silent --connect-timeout 45 "http://${SOLR_HOST:-solr}:${SOLR_PORT:-8983}/solr/" | grep "Apache SOLR") - if [ -n "$SOLR" ] ; then + if [ ${solr_running} -eq 0 ] ; then + solr_curl=$(curl --silent --connect-timeout 45 "http://${SOLR_HOST:-solr}:${SOLR_PORT:-8983}/solr/" | grep "Apache SOLR") + if [ -n "${solr_curl}" ] ; then echo "Solr is running" - solr_running=true + solr_running=1 fi fi # check Fedora is running - if [ "fedora_running" = false ] ; then - FEDORA=$(curl --silent --connect-timeout 45 "http://${FEDORA_HOST:-fcrepo}:${FEDORA_PORT:-8080}/fcrepo/" | grep "Fedora Commons Repository") - if [ -n "$FEDORA" ] ; then + if [ ${fedora_running} -eq 0 ] ; then + fedora_curl=$(curl --silent --connect-timeout 45 "http://${FEDORA_HOST:-fcrepo}:${FEDORA_PORT:-8080}/fcrepo/" | grep "Fedora Commons Repository") + if [ -n "${fedora_curl}" ] ; then echo "Fedora is running" - fedora_running=true + fedora_running=1 fi fi - if [ "solr_running" = true ] && [ "fedora_running" = true ] ; then + if [ ${solr_running} -eq 1 ] && [ ${fedora_running} -eq 1 ] ; then break else sleep 1 @@ -48,13 +48,13 @@ do done # Exit if Solr is not running -if [ "solr_running" = false ] ; then +if [ ${solr_running} -eq 0 ] ; then echo "ERROR: Solr is not running" exit 1 fi # Exit if Fedora is not running -if [ "fedora_running" = false ] ; then +if [ ${fedora_running} -eq 0 ] ; then echo "ERROR: Fedora is not running" exit 1 fi @@ -62,6 +62,6 @@ fi echo "Setting up hyrax... (this can take a few minutes)" bundle exec rake rdms:setup_hyrax["seed/setup.json"] -# echo "--------- Starting Hyrax in $RAILS_ENV mode ---------" +# echo "--------- Starting Hyrax in ${RAILS_ENV} mode ---------" rm -f /tmp/hyrax.pid bundle exec rails server -p 3000 -b '0.0.0.0' --pid /tmp/hyrax.pid diff --git a/hyrax/lib/tasks/create_relationships.rake b/hyrax/lib/tasks/create_relationships.rake index 4b655927029a1f7658ea3a401b5d0ebc6a4c528e..9af0b6fc92b2df66ad5f6b4d1525996f781bec7a 100644 --- a/hyrax/lib/tasks/create_relationships.rake +++ b/hyrax/lib/tasks/create_relationships.rake @@ -68,9 +68,24 @@ namespace :rdms do end def collection_parent_work_children(parent_record, child_work_ids) + template = Hyrax::PermissionTemplate.find_by!(source_id: parent_record.id) + user = User.find_by(email: 'admin@hyrax') + parent_record.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX + terminator_actor = Hyrax::Actors::Terminator.new + membership_actor = Hyrax::Actors::CollectionsMembershipActor.new(terminator_actor) + member_collection_hash = {member_of_collections_attributes: {'0': {id: parent_record.id}}} + + child_work_ids.each do |work_id| + work = CrcDataset.find(work_id) + env = Hyrax::Actors::Environment.new(work, Ability.new(user), member_collection_hash) - parent_record.add_member_objects(child_work_ids) + membership_actor.create(env) + + Hyrax::PermissionTemplateApplicator.apply(template).to(model: work) + + work.save + end end def work_parent_work_children(parent_record, child_record_ids) diff --git a/hyrax/lib/vocabularies/rdms.rb b/hyrax/lib/vocabularies/rdms.rb index 1101a8d8e766223904a69fd01ef7c05c2c79c879..5428bb892cf12205a466eb446c752d9266e48ecf 100644 --- a/hyrax/lib/vocabularies/rdms.rb +++ b/hyrax/lib/vocabularies/rdms.rb @@ -35,9 +35,14 @@ module RDF property 'parentWorkId' property 'crcWorkType' property 'experimentTitle' + property 'tombstoneStatus' + property 'tombstoneDate' + property 'isTombstone' #File Set property 'forComplexIdentifier' property'forComplexType' + # for nested metadata + property 'updatedSubresources' end end end diff --git a/hyrax/package.json b/hyrax/package.json index ef2cef932412ae0d7ca8f8443ecfac23316190d6..d190ec809282ada626f5026aade55d95970458d1 100644 --- a/hyrax/package.json +++ b/hyrax/package.json @@ -5,16 +5,15 @@ "dependencies": { "postcss": "^8.4.14", "postcss-scss": "^4.0.4", - "universalviewer": "^3.0.16" + "universalviewer": "^3.1.4" }, "scripts": { "preinstall": "rm -rf ./public/uv", "postinstall": "yarn run uv-install && yarn run uv-config", - "uv-install": "shx cp -r ./node_modules/universalviewer/dist ./public/uv", - "uv-config": "shx cp ./config/uv/uv.html ./public/uv/uv.html & shx cp ./config/uv/uv-config.json ./public/uv/" + "uv-install": "cp -r ./node_modules/universalviewer/dist ./public/uv", + "uv-config": "cp ./config/uv/uv.html ./public/uv/uv.html & cp ./config/uv/uv-config.json ./public/uv/" }, "devDependencies": { - "shx": "^0.3.2", "stylelint-config-standard-scss": "^4.0.0" } } diff --git a/hyrax/policy.xml b/hyrax/policy.xml new file mode 100644 index 0000000000000000000000000000000000000000..d203960f9cdb938bdf64219a30054effbcccf1d9 --- /dev/null +++ b/hyrax/policy.xml @@ -0,0 +1,13 @@ +<policymap> + <policy domain="delegate" rights="none" pattern="*" /> + <policy domain="module" rights="none" pattern="*" /> + <policy domain="module" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" /> + <policy domain="coder" rights="write" pattern="{MSVG,MVG,PDF,PS,PS2,PS3,XPS}" /> + <!-- <policy domain="resource" name="list-length" value="1"/> --> + <policy domain="module" rights="none" pattern="{PS,PDF,XPS}"/> + <policy domain="path" rights="none" pattern="@*"/> <!-- indirect reads not permitted --> + <policy domain="system" name="memory-map" value="anonymous"/> + <policy domain="cache" name="memory-map" value="anonymous"/> + <policy domain="system" name="shred" value="1"/> + <policy domain="system" name="max-memory-request" value="256MiB"/> +</policymap> diff --git a/hyrax/spec/actors/hyrax/actors/complex_attributes_spec.rb b/hyrax/spec/actors/hyrax/actors/complex_attributes_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..2441d1911c5ace173161d241a29b0702d819b6e7 --- /dev/null +++ b/hyrax/spec/actors/hyrax/actors/complex_attributes_spec.rb @@ -0,0 +1,46 @@ +require 'rails_helper' + +RSpec.describe Hyrax::Actors::ComplexAttributes do + let(:env) { double(curation_concern: double(updated_subresources: [], :updated_subresources= => []) ) } + + before do + class SuperClass + def apply_save_data_to_curation_concern(env) + end + end + + class TestClass < SuperClass + include Hyrax::Actors::ComplexAttributes + end + + class ExampleWork < ActiveFedora::Base + property :complex_person, predicate: ::RDF::URI.new('http://example.org#person'), class_name: "ComplexPerson" + accepts_nested_attributes_for :complex_person + end + end + + after do + Object.send(:remove_const, :ExampleWork) + Object.send(:remove_const, :TestClass) + Object.send(:remove_const, :SuperClass) + end + + let(:test) { TestClass.new } + + describe '#apply_save_data_to_curation_concern' do + before { test.apply_save_data_to_curation_concern(env) } + it { expect(env.curation_concern).to have_received(:updated_subresources=).with([]) } + end + + describe '#update_complex_metadata' do + let(:resource) { double(complex_person: ExampleWork.new(complex_person_attributes: [{ first_name: 'John' }]).complex_person) } + before { test.update_complex_metadata(env, resource) } + it { expect(env.curation_concern.updated_subresources).to eql([resource.complex_person]) } + end + + describe '#complex_attributes' do + subject { test.complex_attributes } + it { is_expected.to match_array(%w[complex_date complex_funding_reference complex_identifier + complex_person complex_relation]) } + end +end diff --git a/hyrax/spec/models/complex_modality_spec.rb b/hyrax/spec/models/complex_modality_spec.rb index 06d29c38086af1113530fa163ada2bc39493792e..125c11efaaaaf62c0427896737d883cbf56ffbf2 100644 --- a/hyrax/spec/models/complex_modality_spec.rb +++ b/hyrax/spec/models/complex_modality_spec.rb @@ -7,13 +7,13 @@ RSpec.describe ComplexSession do :with_coverage, :with_approval_number, :with_extra_information ) - complex_subject = build(:complex_subject, :subject_identifier, :subject_species, :subject_type, crc_dataset_id: crc_dataset.id) + complex_subject = build(:complex_subject, :subject_title, :subject_species, :subject_type, crc_dataset_id: crc_dataset.id) - complex_session = complex_subject.complex_sessions.build(session_identifier: 'Demo session identifier') + complex_session = complex_subject.complex_sessions.build(session_title: 'Demo session title') - complex_modality = complex_session.complex_modalities.build(modality_identifier: 'Demo modality identifier') + complex_modality = complex_session.complex_modalities.build(modality_title: 'Demo modality title') - expect(complex_modality.modality_identifier).to eq('Demo modality identifier') - expect(complex_modality.complex_session.session_identifier).to eq(complex_session.session_identifier) + expect(complex_modality.modality_title).to eq('Demo modality title') + expect(complex_modality.complex_session.session_title).to eq(complex_session.session_title) end end \ No newline at end of file diff --git a/hyrax/spec/models/complex_session_spec.rb b/hyrax/spec/models/complex_session_spec.rb index 6d7b5669b35b67c429800784fd2be19c8d26c64f..eb26ed033464ee5a1b62bfc7c23e680e99169105 100644 --- a/hyrax/spec/models/complex_session_spec.rb +++ b/hyrax/spec/models/complex_session_spec.rb @@ -13,11 +13,11 @@ RSpec.describe ComplexSession do :with_coverage, :with_approval_number, :with_extra_information ) - complex_subject = build(:complex_subject, :subject_identifier, :subject_species, :subject_type, crc_dataset_id: crc_dataset.id) + complex_subject = build(:complex_subject, :subject_title, :subject_species, :subject_type, crc_dataset_id: crc_dataset.id) - complex_session = complex_subject.complex_sessions.build(session_identifier: 'Demo session identifier') + complex_session = complex_subject.complex_sessions.build(session_title: 'Demo session title') - expect(complex_session.complex_subject.subject_identifier).to eq(complex_subject.subject_identifier) - expect(complex_session.session_identifier).to eq('Demo session identifier') + expect(complex_session.complex_subject.subject_title).to eq(complex_subject.subject_title) + expect(complex_session.session_title).to eq('Demo session title') end end \ No newline at end of file diff --git a/hyrax/spec/models/complex_subject_spec.rb b/hyrax/spec/models/complex_subject_spec.rb index 8cc5b5563f5a8adc33ef87778e785d3e5a817bee..5a7daa71d3dc4250e3653beab7375350efe70490 100644 --- a/hyrax/spec/models/complex_subject_spec.rb +++ b/hyrax/spec/models/complex_subject_spec.rb @@ -9,7 +9,7 @@ RSpec.describe ComplexSubject do crc_dataset = create(:crc_dataset) - complex_subject = build(:complex_subject, :subject_identifier, :subject_species, :subject_type, crc_dataset_id: crc_dataset.id) + complex_subject = build(:complex_subject, :subject_title, :subject_species, :subject_type, crc_dataset_id: crc_dataset.id) expect(complex_subject.crc_dataset.id).to eq(crc_dataset.id) end