Plugin Directory

Changeset 3268984


Ignore:
Timestamp:
04/08/2025 02:48:57 PM (12 months ago)
Author:
david.kane
Message:

Releasing v2.26.1

Location:
supapress/trunk
Files:
871 added
21 edited

Legend:

Unmodified
Added
Removed
  • supapress/trunk/admin/admin.php

    r3221654 r3268984  
    141141    register_setting( 'supapress-settings', 'no_book' );
    142142    register_setting( 'supapress-settings', 'service_url' );
     143    register_setting( 'supapress-settings', 'api_source' );
     144    register_setting( 'supapress-settings', 'typesense_catalog' );
     145    register_setting( 'supapress-settings', 'typesense_api_key' );
     146    register_setting( 'supapress-settings', 'typesense_host' );
    143147    register_setting( 'supapress-settings', 'widget_book_link_page' );
    144148    register_setting( 'supapress-settings', 'widget_book_link_pattern' );
     
    345349// look up ISBNs to check which ones to add to list
    346350function supapress_bulk_isbn_lookup_ajax() {
     351
     352    if( empty( $_POST['ISBNs']  ) ) {
     353        return '';
     354    }
     355
    347356    $ISBNs = esc_html( $_POST['ISBNs'] );
    348 
    349     /** @type object $results */
    350     $result = supapress_call_supafolio( 'search', array(
    351         'isbns'  => $ISBNs,
    352         'amount' => 100
    353     ), array(), false );
     357    $result = supapress_api_call('bulk_isbn_lookup', ['ISBNs' => $ISBNs]);
    354358
    355359    // loop through the ISBNs passed and set all to not found (-1), and if not an ISBN throw away
     
    403407function supapress_predictive() {
    404408    /** @type object $results */
    405     $results = supapress_call_supafolio( 'predictive', array(
    406         'keyword' => esc_html( $_REQUEST['term'] ),
    407         'amount'  => 10,
    408         'type'    => 'Products'
    409     ), array(), false );
     409    if( empty( $_REQUEST['term'] ) ) {
     410        return '';
     411    }
     412
     413    $results = supapress_api_call('predictive', ['term' => $_REQUEST['term']]);
    410414
    411415    header( 'Content-Type: application/json' );
     
    432436function supapress_collections() {
    433437    /** @type object $results */
    434     $collections = supapress_call_supafolio( 'searchfilter', array(
    435         'filters' => 'collection'
    436     ) );
     438
     439    $collections = supapress_api_call('collections');
    437440
    438441    header( 'Content-Type: application/json' );
  • supapress/trunk/admin/css/add-shortcode.min.css.map

    r1645837 r3268984  
    1 {"version":3,"sources":["add-shortcode.scss"],"names":[],"mappings":"AAAA,sEAEE,UAAY,CACb,AAED,kCACE,cAAe,AACf,iBAAmB,CAWpB,AAbD,0CAKI,kBAAoB,CACrB,AANH,yCASK,cAAe,AACf,gBAAiB,AACjB,UAAY,CACb,AAGJ,qCACE,eAAiB,CAClB,AAED,kCACE,uBAAyB,AACzB,6BAA+B,AAC/B,sBAAwB,AACxB,iBAAoB,CACrB,AAED,wCACE,0BAA4B,AAC5B,6BAA+B,AAC/B,kBAAqB,CACtB","file":"add-shortcode.min.css","sourcesContent":["#_supapress_attach_module_id,\n.supapress-module-widget-settings select {\n  width: 100%;\n}\n\n.supapress-insert-shortcode-panel {\n  max-width: 90%;\n  position: relative;\n\n  .notice {\n    margin-bottom: 10px;\n  }\n\n  select {\n     display: block;\n     max-width: 470px;\n     width: 100%;\n   }\n}\n\n.select2-drop.supapress-select2-drop {\n  z-index: 1000000;\n}\n\n.supapress-insert-shortcode-modal {\n  height: 220px !important;\n  margin-left: -250px !important;\n  width: 500px !important;\n  top: 30% !important;\n}\n\n.supapress-insert-shortcode-modal-title {\n  background: #fff !important;\n  border-bottom: none !important;\n  height: 0 !important;\n}"]}
     1{"version":3,"sources":["add-shortcode.scss"],"names":[],"mappings":"AAAA,sEAEE,UAAW,CACZ,AAED,kCACE,cAAc,AACd,iBAAkB,CAWnB,AAbD,0CAKI,kBAAmB,CACpB,AANH,yCASK,cAAc,AACd,gBAAgB,AAChB,UAAW,CACZ,AAGJ,qCACE,eAAgB,CACjB,AAED,kCACE,uBAAwB,AACxB,6BAA8B,AAC9B,sBAAuB,AACvB,iBAAmB,CACpB,AAED,wCACE,0BAA2B,AAC3B,6BAA8B,AAC9B,kBAAoB,CACrB","file":"add-shortcode.min.css","sourcesContent":["#_supapress_attach_module_id,\n.supapress-module-widget-settings select {\n  width: 100%;\n}\n\n.supapress-insert-shortcode-panel {\n  max-width: 90%;\n  position: relative;\n\n  .notice {\n    margin-bottom: 10px;\n  }\n\n  select {\n     display: block;\n     max-width: 470px;\n     width: 100%;\n   }\n}\n\n.select2-drop.supapress-select2-drop {\n  z-index: 1000000;\n}\n\n.supapress-insert-shortcode-modal {\n  height: 220px !important;\n  margin-left: -250px !important;\n  width: 500px !important;\n  top: 30% !important;\n}\n\n.supapress-insert-shortcode-modal-title {\n  background: #fff !important;\n  border-bottom: none !important;\n  height: 0 !important;\n}"]}
  • supapress/trunk/admin/css/admin-overrides.min.css.map

    r1576353 r3268984  
    1 {"version":3,"sources":["admin-overrides.scss"],"names":[],"mappings":"AAAA,6CACI,iCAAuC,CAC1C","file":"admin-overrides.min.css","sourcesContent":["a.toplevel_page_supapress.wp-menu-open::after {\n    border-right-color: #FFFFFF !important;\n}"]}
     1{"version":3,"sources":["admin-overrides.scss"],"names":[],"mappings":"AAAA,6CACI,iCAAsC,CACzC","file":"admin-overrides.min.css","sourcesContent":["a.toplevel_page_supapress.wp-menu-open::after {\n    border-right-color: #FFFFFF !important;\n}"]}
  • supapress/trunk/admin/css/styles.min.css.map

    r3221654 r3268984  
    1 {"version":3,"sources":["styles.scss","_base.scss","_variables.scss","_settings.scss","_list.scss","_navtabs.scss","_asmselect.scss","_switches.scss","_add-edit.scss","_elements.scss","_restrictions.scss"],"names":[],"mappings":"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","file":"styles.min.css","sourcesContent":["/*!\n * Plugin Name: Supafolio\n * Plugin URI: https://www.supadu.com\n * Description: Quickly and easily connect your book metadata (ONIX) to your WordPress site.\n * Version: 2.19.5\n * Author: Supadü\n * Author URI: https://www.supadu.com\n * Text Domain: supapress\n * Domain Path: /languages\n * License: GPL2\n*/\n\n@import \"variables\";\n@import \"base\";\n@import \"settings\";\n@import \"list\";\n@import \"add-edit\";\n@import \"elements\";\n@import \"restrictions\";","@import url(https://fonts.googleapis.com/css?family=Lato:400,300,700);\n \n#wpwrap,\n.wp-toolbar {\n  background: #FFFFFF;\n}\n\n#wpcontent {\n  background: #FFFFFF;\n  padding-left: 70px;\n  position: relative;\n}\n\n#screen-meta,\n#screen-meta-links {\n  position: relative;\n  z-index: 2;\n}\n\n#wpfooter {\n  display: none;\n}\n\n.supapress-wrap {\n  font-family: 'Lato', sans-serif;\n  font-weight: 300;\n  left: 0;\n  margin: 0 70px 0 0;\n  padding-bottom: 60px;\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1;\n}\n\n.supapress-header {\n  background: $header;\n  margin: 0 -70px 52px -70px;\n  max-height: 120px;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n\n  .supapress-header-bg {\n    margin: auto;\n  }\n\n  .supapress-header-logo {\n    fill: #FFFFFF;\n    height: 70px;\n    left: 50%;\n    margin: -32px 0 0 -150px;\n    position: absolute;\n    top: 50%;\n    width: 300px;\n\n    * {\n      fill: #FFFFFF;\n    }\n  }\n}\n\n#message {\n  background: #FFFFFF;\n  border-left: 4px solid #FFFFFF;\n  box-shadow: none;\n  font-weight: 700;\n  margin: 0 0 52px;\n  padding: 1px 12px;\n\n  &.deleted,\n  &.error {\n    border-color: #DD3D36;\n  }\n\n  &.created,\n  &.updated,\n  &.success {\n    border-color: #7AD03A;\n  }\n\n  &.warning {\n    border-color: #FFBA00;\n  }\n\n  p {\n    font-size: 14px;\n    margin: 0.5em 0;\n    padding: 2px;\n  }\n}\n\n@media screen and (max-width: 782px) {\n  .supapress-header {\n    margin-left: -10px;\n  }\n}\n\n@media screen and (max-width: 600px) {\n  .supapress-wrap {\n    top: 46px;\n  }\n}\n\n.hide {\n  display: none;\n}\n\n.inline-block {\n  display: inline-block;\n}\n\n.green-heading {\n  color: #222;\n  font-size: 24px;\n  margin: 0;\n\n  &.small {\n    font-size: 18px;\n  }\n}\n\n%button {\n  -webkit-transition: background 0.2s ease-in;\n  -moz-transition: background 0.2s ease-in;\n  transition: background 0.2s ease-in;\n  background: $blue;\n  border: none;\n  border-radius: 0;\n  box-shadow: none;\n  color: #FFFFFF;\n  cursor: pointer;\n  font-size: 16px;\n  font-weight: 300;\n  height: auto;\n  padding: 10px 15px;\n\n  &:hover {\n    background: $darkBlue;\n    color: #FFFFFF;\n  }\n}\n\n%autocomplete {\n  background: #FFFFFF;\n  border: 1px solid #999;\n  border-radius: 0;\n  box-shadow: none;\n  color: #222;\n  margin-top: -2px;\n  max-height: 200px;\n  overflow: auto;\n\n  li {\n    font-size: 18px;\n    font-weight: 300;\n    line-height: 24px;\n    outline: none;\n    padding: 6px;\n\n    &.ui-state-focus {\n      background: $blue;\n      color: #FFFFFF;\n    }\n  }\n}\n\n%supapress-inputs {\n  -webkit-transition: border-color 0.2s ease-in;\n  -moz-transition: border-color 0.2s ease-in;\n  transition: border-color 0.2s ease-in;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background: #FFF;\n  border: 1px solid #CCC;\n  border-radius: 0;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;\n  color: #404040;\n  font-size: 18px;\n  line-height: 24px;\n  margin: 0;\n  outline: none;\n  padding: 8px 12px;\n  width: 280px;\n\n  &:focus {\n    border: 1px solid #999;\n  }\n\n  &::-ms-clear {\n    display: none;\n  }\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.select2-container {\n  width: 280px !important;\n\n  .select2-search__field {\n    background: #FFF;\n    color: $blue;\n    box-shadow: none;\n    padding: 4px 6px;\n\n    &:focus {\n      box-shadow: none;\n    }\n  }\n\n  .select2-selection--single {\n    border-radius: 0;\n    cursor: pointer;\n    height: 40px;\n    outline: none;\n    position: relative;\n    background: #FFF;\n    border: 1px solid #CCC;\n    margin: 0;\n    width: 280px !important;\n\n    .select2-selection__rendered {\n      color: $blue;\n      padding: 8px 40px 8px 12px;\n      font-size: 18px;\n      line-height: 24px;\n      width: 85%;\n    }\n\n    .select2-selection__arrow {\n      border: 6px solid;\n      border-color: $blue transparent transparent;\n      display: block;\n      height: 0;\n      position: absolute;\n      right: 12px;\n      top: 18px;\n      width: 0;\n\n      b {\n        display: none;\n      }\n    }\n  }\n\n  .select2-search--dropdown {\n    padding: 4px 6px 4px 4px;\n  }\n\n  .select2-dropdown {\n    border: 1px solid #CCC;\n    border-top: none;\n    color: #404040;\n    font-size: 17px;\n    line-height: 24px;\n    font-weight: 300;\n    background: #FFF;\n\n    &.select2-dropdown--above {\n      border-top: 1px solid #CCC;\n      border-bottom: none;\n    }\n\n    .select2-results__option {\n      background: #FFF;\n      padding: 6px 12px;\n      margin: 0;\n\n      &[aria-selected] {\n        background: #FFF;\n      }\n\n      &.select2-results__option--highlighted,\n      &:hover {\n        background: $blue;\n      }\n\n      &[aria-disabled] {\n        background: #FFF;\n      }\n    }\n  }\n}\n\n.save-button-wrapper {\n  margin-top: 25px;\n\n  .save-button {\n    @extend %button;\n\n    background: $blue;\n\n    &:hover {\n      background: $darkBlue;\n      color: #FFFFFF;\n    }\n  }\n\n  .next-button {\n    display: inline-block;\n  }\n}\n\n.add-new-button {\n  background: $blue;\n\n  &:hover {\n    background: $darkBlue;\n    color: #FFFFFF;\n  }\n}\n\n.upload-button {\n  @extend %button;\n  margin-left: 20px;\n}\n\n#supapress-clear-cache-button {\n  @extend %button;\n}\n\n#supapress-add-bulk-isbns-button {\n  @extend %button;\n  position: relative;\n  top: -11px;\n  margin-left:20px;\n}\n\n#isbn_lookup_bulk {\n  height:200px\n}\n\n.supapress-error,\n.supapress-error * {\n  color: #DD3D36 !important;\n}\n\n.wp-admin {\n  .supapress-field-wrapper {\n    margin-bottom: 25px;\n  }\n\n  .supapress-tooltip-wrapper {\n    overflow: hidden;\n    position: relative;\n\n    span {\n      float: left;\n    }\n\n    label span.supapress-tooltip-icon,\n    span.select2\n    {\n      float: none;\n      display: inline-block;\n    }\n\n    .supapress-tooltip-icon {\n      cursor: pointer;\n      display: block;\n      height: 40px;\n      text-align: center;\n      width: 40px;\n\n      svg {\n        height: 20px;\n        margin-top: 10px;\n        width: 20px;\n\n        * {\n          fill: #637170;\n        }\n      }\n    }\n  }\n\n  .supapress-label,\n  .supapress-paragraph {\n    color: #222;\n    display: inline-block;\n    font-size: 18px;\n    line-height: 40px;\n    margin: 0;\n    vertical-align: top;\n    width: 330px;\n  }\n\n  .supapress-paragraph {\n    width: auto;\n\n    a, a:visited {\n      color: $primary;\n\n      &:hover {\n        color: $secondary;\n      }\n    }\n  }\n\n  .supapress-input {\n    @extend %supapress-inputs;\n  }\n\n  .supapress-input {\n    &.ui-autocomplete-loading {\n      background: #FFF url('../img/predictive-loading.gif') no-repeat center right 12px;\n    }\n\n    &:focus {\n      box-shadow: none;\n      outline: none;\n    }\n  }\n\n  .supapress-autocomplete {\n    @extend %autocomplete;\n\n    max-width: 500px;\n\n    li {\n      white-space: normal;\n    }\n  }\n\n  .supapress-ui-tooltip, .supapress-tooltip-arrow:after {\n    background: #23282D;\n  }\n\n  .supapress-ui-tooltip {\n    color: #FFFFFF;\n    max-width: 300px;\n    padding: 10px;\n    position: absolute;\n    text-align: center;\n    z-index: 99999;\n  }\n\n  .supapress-tooltip-arrow {\n    width: 70px;\n    height: 16px;\n    overflow: hidden;\n    position: absolute;\n    left: 50%;\n    margin-left: -33px;\n    bottom: -16px;\n\n    &.top {\n      top: -16px;\n      bottom: auto;\n\n      &:after {\n        bottom: -20px;\n        top: auto;\n      }\n    }\n\n    &:after {\n      content: \"\";\n      position: absolute;\n      left: 20px;\n      top: -20px;\n      width: 25px;\n      height: 25px;\n      box-shadow: 6px 5px 9px -9px black;\n      -webkit-transform: rotate(45deg);\n      -ms-transform: rotate(45deg);\n      transform: rotate(45deg);\n    }\n  }\n}\n\n.supapress-accordion-header {\n  -webkit-transition: all 0.4s ease-in;\n  -moz-transition: all 0.4s ease-in;\n  transition: all 0.4s ease-in;\n  border: 1px solid #CCC;\n  box-sizing: border-box;\n  cursor: pointer;\n  font-size: 18px;\n  line-height: normal;\n  margin: 10px 0;\n  padding: 5px;\n  width: 30%;\n\n  &.open {\n    background: #E8E8E8;\n    width: 60%;\n  }\n\n  &:hover {\n    background: #E8E8E8;\n  }\n\n  svg {\n    fill: $blue;\n    float: left;\n    height: 10px;\n    width: 10px;\n  }\n\n  span.svg-right-arrow {\n    -webkit-transition: transform 0.2s ease-in;\n    -moz-transition: transform 0.2s ease-in;\n    transition: transform 0.2s ease-in;\n    display: inline-block;\n    height: 10px;\n    margin: 7px 2px 0 0;\n    transform-origin: 50% 50% 0px;\n    vertical-align: top;\n    width: 10px;\n\n    &.open {\n      transform: rotate(90deg);\n    }\n  }\n}\n\n.supapress-accordion-content {\n  .supapress-accordion-content-inner {\n    padding: 15px 0 2px;\n\n    .supapress-label {\n      float: left;\n      width: 30% !important;\n    }\n\n    .supapress-field-wrapper {\n      box-sizing: border-box;\n      overflow: hidden;\n      padding-left: 15px;\n      width: 60%;\n    }\n\n    .select2-container {\n      width: 70% !important;\n\n      .selection,\n      .select2-selection--single {\n        width: 100% !important;\n      }\n    }\n  }\n}\n\n.supapress-shortcode {\n  font-size: 90%;\n  box-shadow: none;\n  color: #404040;\n  border: 1px solid #ddd;\n  font-weight: 300;\n  width:40%;\n}\n","$primary: #E43223;\n$secondary: #F1592A;\n$tertiary: #FF7354;\n\n$header: #BF2C22;\n\n$blue: #008CBA;\n$darkBlue: #007295;\n\n$widget-icon-width: 160px;\n$number-of-widgets: 3;",".wp-admin .settings {\n  input[type=\"text\"],\n  .select2-container,\n  .widget_link_preview {\n    width: 40% !important;\n  }\n\n  .general {\n    .supapress-label {\n      width: 25% !important;\n      @media only screen and (max-width: 1230px) {\n        width: 100% !important;\n      }\n    }\n  }\n\n  .select2-container {\n    .selection,\n    .select2-selection--single {\n      width: 100% !important;\n    }\n  }\n\n  .select2-container {\n    .selection,\n    .select2-selection--single {\n      width: 100% !important;\n    }\n  }\n\n  .supapress-cache-lifetime {\n    .select2-container {\n      .selection,\n      .select2-selection--single {\n        width: 280px !important;\n      }\n    }\n  }\n\n  .supapress-domain-slug {\n    background: rgba(0, 0, 0, 0.07) none repeat scroll 0 0;\n    font-size: 14px;\n    margin: 0 10px 0 1px;\n    padding: 3px 5px 2px;\n    float:left;\n  }\n\n  .supapress-label {\n    width: 20% !important;\n  }\n\n  .widget_link_preview {\n    background: #FFFFFF;\n    border: 1px solid $blue;\n    box-sizing: border-box;\n    color: #404040;\n    padding: 0 12px;\n    text-indent: 0 !important;\n    width: 60% !important;\n    min-height: 42px;\n\n    .placeholder {\n      color: $blue;\n    }\n  }\n\n  .supapress-accordion-header {\n    padding: 9px;\n\n    &.open {\n      width: 80%;\n    }\n  }\n\n  .supapress-accordion-content-inner {\n    padding: 2px 0;\n\n    .supapress-field-wrapper {\n      box-sizing: border-box;\n      overflow: hidden;\n      padding-left: 15px;\n      width: 80%;\n    }\n\n    .supapress-label {\n      float: left;\n      width: 40% !important;\n    }\n\n    .widget_link_pattern {\n      width: 100% !important;\n    }\n\n    input[type=\"text\"]:not(.widget_link_pattern),\n    .select2-container,\n    .widget_link_preview,\n    .widget_input_60 {\n      width: 60% !important;\n    }\n    \n    .image-preview {\n      margin: 5px auto;\n      max-height: 40px;\n      max-width: 120px;\n    }\n    \n    input[type=\"text\"].supapress-input.retailer-image-upload {\n      width: 350px !important;\n      margin-left: 30px;\n    }\n    \n    input[type=\"text\"].supapress-input.retailer-image-upload,\n    .upload_image_button.upload-button {\n      vertical-align: top;\n    }\n  }\n\n  .supapress-javascript-code {\n    background: #2d2d2d none repeat scroll 0 0;\n    margin: 0.5em 0;\n    overflow: auto;\n    padding: 1em;\n    border-radius: 4px;\n    color: #ccc;\n    display: block;\n    width: 60%;\n\n    .keyword {\n      color: #cc99cd;\n    }\n\n    .operator {\n      color: #67cdcc;\n    }\n\n    .function {\n      color: #f08d49;\n    }\n\n    .punctuation {\n      color: #ccc;\n    }\n\n    .string {\n      color: #7ec699;\n    }\n  }\n\n  .supapress-link-pattern-wrapper {\n    overflow: hidden;\n    input: {\n      width: 100% !important;\n    }\n  }\n\n  .supapress-links-wrapper {\n    width: 60%;\n    line-height: 36px;\n    overflow: hidden;\n  }\n  \n  .retailer-link-formats-wrapper .select2-selection--multiple {\n    @extend %supapress-inputs;\n    width: 100% !important;\n    outline: none !important;\n    padding-bottom: 2px !important;\n  }\n}\n\n.supafolio_page_supapress-settings {\n  .supapress-autocomplete {\n    max-width: initial;\n  }\n}\n\n@media only screen and (max-width : 1230px) {\n  .wp-admin .settings {\n    .supapress-accordion-header.open {\n      width: 100%;\n    }\n\n    .supapress-accordion-content-inner {\n      .supapress-field-wrapper {\n        padding: 0;\n        width: 100%;\n      }\n\n      input[type=\"text\"],\n      .select2-container,\n      .widget_link_preview,\n      .supapress-label {\n        width: 100% !important;\n      }\n    }\n\n    input[type=\"text\"],\n    .select2-container,\n    .widget_link_preview,\n    .supapress-label {\n      width: 100% !important;\n    }\n  }\n\n  .supapress-links-wrapper {\n    width: 100% !important;\n  }\n}\n\n@media only screen and (max-width : 1025px) {\n  .wp-admin .settings {\n    .supapress-javascript-code {\n      width: 100%;\n    }\n  }\n}","/* List page */\n.fixed .column-title {\n  max-width: 32%;\n}\n\n.fixed .column-type {\n  width: 10%;\n}\n\ninput.shortcode-in-list-table {\n  width: 100%;\n  font-size: 90%;\n}\n\n.supapress-wrap {\n  .list-page-title {\n    margin: 0;\n  }\n\n  #search-submit,\n  #widget-type-selector-submit {\n    @extend %button;\n\n    float: left;\n    height: 42px;\n    line-height: 42px;\n    padding: 0 15px;\n  }\n\n  .search-term-wrapper {\n    margin: 10px 0 35px;\n\n    .subtitle {\n      color: $primary;\n      font-weight: 700;\n      padding: 0;\n    }\n  }\n\n  #supapress-widget-search-input {\n    float: left;\n    height: 42px;\n    margin: 0;\n  }\n\n  .add-new-wrapper {\n    padding-top: 30px;\n\n    .add-new-button {\n      margin: 0;\n    }\n  }\n\n  .tablenav-pages {\n    height: auto;\n    margin: 0;\n  }\n\n  .displaying-num {\n    color: #637170;\n    font-size: 18px;\n    font-weight: 300;\n  }\n\n  .pagination-links {\n    color: #637170;\n    font-size: 18px;\n    font-weight: 300;\n\n    a {\n      @extend %button;\n\n      font-size: 30px;\n      font-weight: 300;\n      height: 30px;\n      line-height: 25px;\n      margin: 0;\n      padding: 0 10px;\n      text-align: center;\n      vertical-align: top;\n      width: auto;\n    }\n\n    span.paging-input {\n      line-height: 30px;\n\n      input {\n        @extend %supapress-inputs;\n\n        font-size: 14px;\n        font-weight: 300;\n        height: 30px;\n        line-height: 25px;\n        margin: 0;\n        padding: 0 10px;\n        text-align: center;\n        vertical-align: top;\n        width: auto;\n      }\n    }\n\n    span.tablenav-pages-navspan {\n      @extend %button;\n\n      background: #CCC;\n      cursor: default;\n      font-size: 30px;\n      font-weight: 300;\n      height: 30px;\n      line-height: 25px;\n      margin: 0;\n      padding: 0 10px;\n      text-align: center;\n      vertical-align: top;\n      width: auto;\n\n      &:hover {\n        background: #CCC;\n      }\n    }\n  }\n\n  .tablenav {\n    overflow: hidden;\n\n    &.top {\n      margin: 0 0 10px;\n    }\n\n    &.bottom {\n      margin: 10px 0 0;\n    }\n\n    #doaction,\n    #doaction2 {\n      margin: 0;\n    }\n\n    .select2-container {\n      width: 200px !important;\n      margin-right: 2px;\n    }\n\n    .select2-selection--single {\n        height: 30px;\n        width: 200px !important;\n    }\n\n    .select2-selection__rendered {\n      padding: 0 40px 0 14px;\n      font-size: 14px;\n      line-height: 30px;\n    }\n\n    .select2-selection__arrow {\n      top: 12px;\n    }\n\n    .actions.bulkactions,\n    .actions.widgettype {\n      padding: 0;\n      margin-right: 10px;\n    }\n\n    .button.action {\n      @extend %button;\n\n      font-size: 14px;\n      font-weight: 300;\n      height: 30px;\n      margin: 0;\n      padding: 0;\n      width: 70px;\n    }\n  }\n\n  .wp-list-table {\n    border: none;\n    border-spacing: 1px 1px;\n\n    thead, tfoot {\n      color: #404040;\n\n      tr {\n        border: none;\n      }\n\n      a, th, td {\n        border: none;\n        box-shadow: none;\n        color: #404040;\n      }\n\n      th, td {\n        background: #F1F1F1;\n        font-weight: 700;\n      }\n    }\n\n    tbody {\n      background: #FFF;\n      color: #404040;\n\n      tr {\n        background: #FFF;\n        color: #404040;\n\n        &:nth-child(even) {\n          background: #F5F5F5;\n        }\n\n        .row-title {\n          font-weight: 400;\n        }\n      }\n\n      a, td, input, span {\n        box-shadow: none;\n        color: #404040;\n      }\n\n      a:hover {\n        text-decoration: underline;\n      }\n\n      abbr[title] {\n        text-decoration: none;\n      }\n    }\n  }\n}\n\n.select2-container {\n  .list-page-select2 {\n    font-size: 13px;\n  }\n}",".wp-admin {\n  h2.nav-tab-wrapper {\n    border-bottom-color: #CCC;\n    margin-bottom: 25px;\n    margin-left: -10px;\n    min-height: 40px;\n    overflow: hidden;\n    padding: 15px 0 0 10px;\n\n    .nav-tab {\n      -webkit-transition: all 0.2s ease-in;\n      -moz-transition: all 0.2s ease-in;\n      transition: all 0.2s ease-in;\n      background: #FFF;\n      border: 1px solid #FFF;\n      box-shadow: none;\n      color: $blue;\n      display: block;\n      float: left;\n      font-size: 18px;\n      font-weight: 300;\n      line-height: 18px;\n      margin: -4px 0px -1px;\n      padding: 10px 15px 15px;\n      position: relative;\n      text-align: center;\n\n      &:hover {\n        background: #E5E5E5;\n        border: 1px solid #E5E5E5;\n      }\n\n      &.nav-tab-active {\n        border: 1px solid #CCC;\n        border-bottom: none;\n        box-shadow: none;\n        color: $blue;\n        cursor: default;\n\n        &:hover {\n          background: #FFF;\n        }\n\n        &:after {\n          background: $blue;\n          bottom: 0;\n          content: \"\";\n          display: block;\n          height: 5px;\n          left: -1px;\n          position: absolute;\n          right: -1px;\n        }\n      }\n    }\n  }\n}",".supapress-isbn-lookup-asm,\n.supapress-search-restriction-asm\n{\n  display: none !important;\n}\n\n.asmHighlight {\n  font-weight: 700;\n}\n\n.asmContainer {\n  margin-top: 25px;\n\n  .asmListItem {\n    background: #FFF;\n    border: 1px solid #CCC;\n    box-sizing: border-box;\n    color: #222;\n    font-weight: 300;\n    font-size: 14px;\n    margin: 0 0 10px;\n    padding: 8px 12px;\n    width: 60%;\n\n    &.book-not-found,\n    &.book-not-found a {\n      background: #DD3D36;\n      color: #FFFFFF;\n    }\n  }\n\n  .asmListItemLabel {\n    padding-left: 20px;\n  }\n\n  .asmListItemRemove {\n    background: $blue;\n    border: 1px solid $blue;\n    color: #FFFFFF;\n    display: block;\n    font-weight: 300;\n    height: 20px;\n    line-height: 16px;\n    float: left;\n    padding: 0;\n    right: 10px;\n    text-align: center;\n    text-decoration: none;\n    top: 10px;\n    width: 20px;\n\n    &:hover {\n      background: $primary;\n      border: 1px solid $primary;\n      color: #FFFFFF;\n    }\n  }\n\n  .three-squares {\n    cursor: move;\n    display: block;\n    background: #555;\n    height: 5px;\n    left: 14px;\n    pointer-events: none;\n    position: absolute;\n    top: 18px;\n    width: 5px;\n\n    &::before, &::after {\n      background: #555;\n      content: '';\n      display: block;\n      height: 5px;\n      left: 0;\n      position: absolute;\n      width: 5px;\n    }\n\n    &::before {\n      top: -7px;\n    }\n\n    &::after {\n      top: 7px;\n    }\n  }\n\n  .book-not-found {\n    border: none;\n\n    .asmListItemRemove {\n      border: 1px solid #FFFFFF;\n\n      &:hover {\n        background: #FFFFFF;\n        color: #DD3D36;\n      }\n    }\n\n    .three-squares,\n    .three-squares:before,\n    .three-squares:after {\n      background: #FFFFFF;\n    }\n  }\n}",".onoffswitch {\n  display: inline-block;\n  position: relative;\n  margin-top: 5px;\n  width: 90px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n\n  .onoffswitch-checkbox {\n    display: none;\n  }\n\n  .onoffswitch-label {\n    display: block;\n    overflow: hidden;\n    cursor: pointer;\n  }\n\n  .onoffswitch-inner {\n    display: block;\n    width: 200%;\n    margin-left: -100%;\n    -moz-transition: margin 0.3s ease-in 0s;\n    -webkit-transition: margin 0.3s ease-in 0s;\n    -o-transition: margin 0.3s ease-in 0s;\n    transition: margin 0.3s ease-in 0s;\n\n    &:before,\n    &:after {\n      display: block;\n      float: left;\n      width: 50%;\n      height: 30px;\n      padding: 0;\n      line-height: 30px;\n      font-size: 14px;\n      color: white;\n      -moz-box-sizing: border-box;\n      -webkit-box-sizing: border-box;\n      box-sizing: border-box;\n    }\n\n    &:before {\n      content: \"Show\";\n      padding-left: 15px;\n      background-color: $blue;\n      color: #FFFFFF;\n    }\n\n    &:after {\n      content: \"Hide\";\n      padding-right: 18px;\n      background-color: #AAA;\n      color: #222;\n      text-align: right;\n    }\n  }\n\n  .onoffswitch-inner.both-active:after {\n    background-color: $blue;\n    color: #FFFFFF;\n  }\n\n  .onoffswitch-inner[data-label-before]:before {\n    content: attr(data-label-before);\n  }\n\n  .onoffswitch-inner[data-label-after]:after {\n    content: attr(data-label-after);\n  }\n\n  .onoffswitch-switch {\n    display: block;\n    width: 18px;\n    margin: 6px;\n    background: #FFFFFF;\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    right: 59px;\n    -moz-transition: all 0.3s ease-in 0s;\n    -webkit-transition: all 0.3s ease-in 0s;\n    -o-transition: all 0.3s ease-in 0s;\n    transition: all 0.3s ease-in 0s;\n  }\n\n  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {\n    margin-left: 0;\n  }\n\n  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {\n    right: 0;\n  }\n}","@import \"navtabs\";\n@import \"asmselect\";\n@import \"switches\";\n\n.title-wrapper {\n  color: #999;\n  margin-bottom: 60px;\n  max-width: 100%;\n  width: 315px;\n}\n\n.list-title {\n  background: none;\n  border: none;\n  box-shadow: none;\n  color: #404040;\n  font-size: 24px;\n  line-height: 1.4em;\n  outline: none;\n  width: 100%;\n}\n\n#widget-title {\n  width: 50%;\n}\n\n.widget-type-wrapper,\n.widget-layout-wrapper {\n  overflow: hidden;\n  margin: 20px 0 0 0;\n\n  input {\n    -webkit-appearance: none;\n    -moz-appearance: none;\n    appearance: none;\n    display: none;\n    margin: 0;\n    padding: 0;\n  }\n}\n\n.widget-layout-wrapper {\n  border-bottom: 1px solid #CCC;\n  margin-bottom: 35px;\n  margin-left: -10px;\n  margin-top: 15px;\n  padding-left: 10px;\n  width: 40%;\n}\n\n.widget-type-wrapper input:checked + .widget-type-label,\n.widget-layout-wrapper input:checked + .widget-layout-label {\n  cursor: default;\n\n  .widget-layout-text {\n    border: 1px solid #CCC;\n    border-bottom: none;\n  }\n\n  .svg-icon * {\n    fill: #222;\n  }\n\n  &:hover {\n    .widget-layout-text {\n      background: #FFF;\n    }\n  }\n}\n\n.widget-layout-wrapper-inner {\n  float: left;\n  margin: 0;\n}\n\n.widget-type-label,\n.widget-layout-label {\n  cursor: pointer;\n  color: $blue;\n  font-family: 'Lato', sans-serif;\n  font-weight: 300;\n  font-size: 18px;\n  text-align: center;\n  display: inline-block;\n  float: left;\n  padding: 0;\n  -webkit-transition: border 0.2s ease-in;\n  -moz-transition: border 0.2s ease-in;\n  transition: border 0.2s ease-in;\n  background: #FFFFFF;\n  border: none;\n\n  &:hover {\n    .widget-layout-text {\n      border: 1px solid #E5E5E5;\n      border-bottom: none;\n      background: #E5E5E5;\n    }\n  }\n\n  &.widget-type-label {\n    margin: 0 4px 4px 0;\n  }\n}\n\n.widget-type-label .label-content .svg-icon,\n.widget-layout-label .label-content .svg-icon {\n  position: absolute;\n  fill: #FFFFFF;\n  left: 50%;\n  margin: -90px 0 0 -45px;\n  top: 50%;\n  width: 90px;\n\n  * {\n    -webkit-transition: fill 0.2s ease-in;\n    -moz-transition: fill 0.2s ease-in;\n    transition: fill 0.2s ease-in;\n    fill: #999;\n  }\n}\n\n.widget-type-label .label-content,\n.widget-layout-label .label-content {\n  background: #FFF no-repeat center 20px;\n  width: 150px;\n  height: 50px;\n  display: block;\n  padding-top: 95px;\n  position: relative;\n  -webkit-transition: color 0.2s ease-in;\n  -moz-transition: color 0.2s ease-in;\n  transition: color 0.2s ease-in;\n}\n\n.widget-type-label:last-child,\n.widget-layout-label:last-child {\n  margin-right: 0;\n}\n\n.widget-type-label img,\n.widget-layout-label img {\n  display: block;\n  margin: auto;\n  padding-top: 22px;\n}\n\n.widget-layout-label {\n  .label-content {\n    height: 100px;\n    padding: 0;\n    width: 100px;\n\n    .svg-icon {\n      height: 150px;\n      margin: -76px 0 0 -35px;\n      width: 70px;\n    }\n  }\n\n  .widget-layout-label {\n    -webkit-transition: color 0.2s ease-in;\n    -moz-transition: color 0.2s ease-in;\n    transition: color 0.2s ease-in;\n  }\n\n  .widget-layout-text {\n    -webkit-transition: all 0.2s ease-in;\n    -moz-transition: all 0.2s ease-in;\n    transition: all 0.2s ease-in;\n    border: 1px solid #FFF;\n    border-bottom: none;\n    color: $blue;\n    display: block;\n    padding: 10px 15px;\n  }\n}\n\n#step1 {\n  .widget-type-field-wrapper {\n    border-top: 1px solid #CCC;\n    margin-top: 40px;\n    padding-top: 30px;\n    width: 50%;\n  }\n\n  .widget-type-wrapper {\n    margin: 0;\n    padding-left: 10px;\n  }\n\n  .widget-type-label {\n    margin: 0 calc((100% - (#{$widget-icon-width} * #{$number-of-widgets})) / (#{$number-of-widgets} - 1)) 0 0;\n\n    &:hover {\n      .widget-type-text {\n        border: 1px solid #E5E5E5;\n        background: #E5E5E5;\n      }\n    }\n\n    &.details {\n      margin: 0;\n    }\n\n    .label-content {\n      width: $widget-icon-width;\n    }\n    \n    .widget-type-text {\n      -webkit-transition: all 0.2s ease-in;\n      -moz-transition: all 0.2s ease-in;\n      transition: all 0.2s ease-in;\n      border: 1px solid #FFF;\n      color: $blue;\n      display: block;\n      padding: 10px 15px;\n    }\n  }\n\n  .widget-type-wrapper input:checked + .widget-type-label {\n    &:hover {\n      .widget-type-text {\n        border: 1px solid #CCC;\n        background: #FFF;\n      }\n    }\n\n    .widget-type-text {\n      border: 1px solid #CCC;\n      position: relative;\n    }\n\n    .svg-icon * {\n      fill: #222;\n    }\n  }\n}\n\n.widget-layout-wrapper input:checked + .widget-layout-label {\n  cursor: default;\n}\n\n.edit-collection-button,\n.add-new-button {\n  @extend %button;\n\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  margin-left: 20px;\n  text-decoration: none;\n  vertical-align: middle;\n\n  &:hover, &:active, &:visited, &:focus {\n    box-shadow: none;\n    color: #FFFFFF;\n  }\n}\n\n#step2 {\n  position: relative;\n\n  .widget-type-wrapper {\n    -webkit-transition: all 0.5s;\n    -moz-transition: all 0.5s;\n    transition: all 0.5s;\n    background: #FFFFFF;\n    border: 1px solid #FFFFFF;\n    max-height: 50px;\n    margin: 0;\n    padding: 15px;\n    position: absolute;\n    right: -15px;\n    top: -15px;\n    width: 200px;\n    z-index: 99;\n\n    input:checked + .widget-type-label {\n      cursor: pointer;\n\n      .label-content {\n        border: 1px solid $primary;\n      }\n\n      .widget-type-text {\n        color: $primary;\n      }\n    }\n\n    &.open {\n      border-color: $blue;\n      max-height: 1000px;\n\n      input:checked + .widget-type-label {\n        cursor: default;\n      }\n    }\n\n    .widget-type-label {\n      border: none;\n      clear: right;\n      display: block;\n      float: right;\n      margin: 0 0 15px;\n      padding: 0;\n\n      &:last-child {\n        margin: 0;\n      }\n\n      &:hover {\n        .label-content {\n          border: 1px solid $blue;\n        }\n      }\n    }\n\n    .svg-icon * {\n      fill: $blue;\n    }\n\n    input:checked + .widget-type-label {\n      .svg-icon * {\n        fill: $primary;\n      }\n    }\n\n    .label-content {\n      height: 50px;\n      padding: 0;\n      width: 50px;\n      border: 1px solid #FFF;\n    }\n\n    .widget-type-text {\n      color: $blue;\n      display: block;\n      font-size: 14px;\n      line-height: 50px;\n      margin: 0 70px 0 -150px;\n      text-align: right;\n    }\n\n    .svg-icon {\n      height: 34px;\n      margin: -17px 0 0 -45px;\n    }\n  }\n}\n\n.lookup-source-input {\n  margin-top: 25px;\n}\n\n.sub-content-wrapper .supapress-label {\n  box-sizing: border-box;\n  padding-left: 50px;\n}\n\n.lazy-load,\n.show-arrows {\n  position: relative;\n\n  input, label, img {\n    display: inline-block;\n    vertical-align: middle;\n  }\n\n  .image-preview {\n    bottom: 0;\n    cursor: pointer;\n    margin: auto;\n    max-height: 40px;\n    max-width: 40px;\n    position: absolute;\n    top: 0;\n  }\n\n  .placeholder-upload,\n  .arrow-upload {\n    margin-left: 60px;\n  }\n\n  .placeholder-upload,\n  .arrow-upload,\n  .upload-button {\n    visibility: hidden;\n  }\n}",".elements.nav-tab-content {\n  overflow: hidden;\n\n  .config {\n    box-sizing: border-box;\n    float: left;\n    padding-right: 20px;\n    width: 65%;\n\n    .element-config {\n      .supapress-field-wrapper {\n        margin-bottom: 10px;\n        position: relative;\n      }\n\n      .supapress-label {\n        padding: 0;\n        width: 304px;\n      }\n\n      .asmContainer {\n        margin-top: 38px;\n      }\n\n      .asmHighlight {\n        position: absolute;\n        right: 40%;\n        top: 50px;\n      }\n    }\n  }\n\n  .selector {\n    border-left: 1px solid rgb(153, 153, 153);\n    box-sizing: border-box;\n    float: right;\n    max-height: 500px;\n    max-width: 395px;\n    overflow: auto;\n    padding: 0 20px;\n    width: 35%;\n\n    .onoffswitch {\n      float: right;\n    }\n\n    .supapress-field-wrapper {\n      margin: 0;\n    }\n\n    .supapress-label {\n      width: 205px;\n    }\n  }\n}",".restrictions.nav-tab-content {\n  overflow: hidden;\n\n  .supapress-field-wrapper {\n    width: 60%;\n    margin-bottom: 25px;\n    position: relative;\n  }\n\n  .supapress-label {\n    padding: 0;\n    width: 304px;\n  }\n\n  .asmContainer {\n    margin-top: 38px;\n  }\n\n  .asmHighlight {\n    position: absolute;\n    right: 40%;\n    top: 50px;\n  }\n}"]}
     1{"version":3,"sources":["styles.scss","_base.scss","_variables.scss","_settings.scss","_list.scss","_navtabs.scss","_asmselect.scss","_switches.scss","_add-edit.scss","_elements.scss","_restrictions.scss"],"names":[],"mappings":"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","file":"styles.min.css","sourcesContent":["/*!\n * Plugin Name: Supafolio\n * Plugin URI: https://www.supadu.com\n * Description: Quickly and easily connect your book metadata (ONIX) to your WordPress site.\n * Version: 2.19.5\n * Author: Supadü\n * Author URI: https://www.supadu.com\n * Text Domain: supapress\n * Domain Path: /languages\n * License: GPL2\n*/\n\n@import \"variables\";\n@import \"base\";\n@import \"settings\";\n@import \"list\";\n@import \"add-edit\";\n@import \"elements\";\n@import \"restrictions\";","@import url(https://fonts.googleapis.com/css?family=Lato:400,300,700);\n \n#wpwrap,\n.wp-toolbar {\n  background: #FFFFFF;\n}\n\n#wpcontent {\n  background: #FFFFFF;\n  padding-left: 70px;\n  position: relative;\n}\n\n#screen-meta,\n#screen-meta-links {\n  position: relative;\n  z-index: 2;\n}\n\n#wpfooter {\n  display: none;\n}\n\n.supapress-wrap {\n  font-family: 'Lato', sans-serif;\n  font-weight: 300;\n  left: 0;\n  margin: 0 70px 0 0;\n  padding-bottom: 60px;\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 1;\n}\n\n.supapress-header {\n  background: $header;\n  margin: 0 -70px 52px -70px;\n  max-height: 120px;\n  overflow: hidden;\n  position: relative;\n  text-align: center;\n\n  .supapress-header-bg {\n    margin: auto;\n  }\n\n  .supapress-header-logo {\n    fill: #FFFFFF;\n    height: 70px;\n    left: 50%;\n    margin: -32px 0 0 -150px;\n    position: absolute;\n    top: 50%;\n    width: 300px;\n\n    * {\n      fill: #FFFFFF;\n    }\n  }\n}\n\n#message {\n  background: #FFFFFF;\n  border-left: 4px solid #FFFFFF;\n  box-shadow: none;\n  font-weight: 700;\n  margin: 0 0 52px;\n  padding: 1px 12px;\n\n  &.deleted,\n  &.error {\n    border-color: #DD3D36;\n  }\n\n  &.created,\n  &.updated,\n  &.success {\n    border-color: #7AD03A;\n  }\n\n  &.warning {\n    border-color: #FFBA00;\n  }\n\n  p {\n    font-size: 14px;\n    margin: 0.5em 0;\n    padding: 2px;\n  }\n}\n\n@media screen and (max-width: 782px) {\n  .supapress-header {\n    margin-left: -10px;\n  }\n}\n\n@media screen and (max-width: 600px) {\n  .supapress-wrap {\n    top: 46px;\n  }\n}\n\n.hide {\n  display: none;\n}\n\n.inline-block {\n  display: inline-block;\n}\n\n.green-heading {\n  color: #222;\n  font-size: 24px;\n  margin: 0;\n\n  &.small {\n    font-size: 18px;\n  }\n}\n\n%button {\n  -webkit-transition: background 0.2s ease-in;\n  -moz-transition: background 0.2s ease-in;\n  transition: background 0.2s ease-in;\n  background: $blue;\n  border: none;\n  border-radius: 0;\n  box-shadow: none;\n  color: #FFFFFF;\n  cursor: pointer;\n  font-size: 16px;\n  font-weight: 300;\n  height: auto;\n  padding: 10px 15px;\n\n  &:hover {\n    background: $darkBlue;\n    color: #FFFFFF;\n  }\n}\n\n%autocomplete {\n  background: #FFFFFF;\n  border: 1px solid #999;\n  border-radius: 0;\n  box-shadow: none;\n  color: #222;\n  margin-top: -2px;\n  max-height: 200px;\n  overflow: auto;\n\n  li {\n    font-size: 18px;\n    font-weight: 300;\n    line-height: 24px;\n    outline: none;\n    padding: 6px;\n\n    &.ui-state-focus {\n      background: $blue;\n      color: #FFFFFF;\n    }\n  }\n}\n\n%supapress-inputs {\n  -webkit-transition: border-color 0.2s ease-in;\n  -moz-transition: border-color 0.2s ease-in;\n  transition: border-color 0.2s ease-in;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  background: #FFF;\n  border: 1px solid #CCC;\n  border-radius: 0;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;\n  color: #404040;\n  font-size: 18px;\n  line-height: 24px;\n  margin: 0;\n  outline: none;\n  padding: 8px 12px;\n  width: 280px;\n\n  &:focus {\n    border: 1px solid #999;\n  }\n\n  &::-ms-clear {\n    display: none;\n  }\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n  display: none;\n}\n\n.select2-container {\n  width: 280px !important;\n\n  .select2-search__field {\n    background: #FFF;\n    color: $blue;\n    box-shadow: none;\n    padding: 4px 6px;\n\n    &:focus {\n      box-shadow: none;\n    }\n  }\n\n  .select2-selection--single {\n    border-radius: 0;\n    cursor: pointer;\n    height: 40px;\n    outline: none;\n    position: relative;\n    background: #FFF;\n    border: 1px solid #CCC;\n    margin: 0;\n    width: 280px !important;\n\n    .select2-selection__rendered {\n      color: $blue;\n      padding: 8px 40px 8px 12px;\n      font-size: 18px;\n      line-height: 24px;\n      width: 85%;\n    }\n\n    .select2-selection__arrow {\n      border: 6px solid;\n      border-color: $blue transparent transparent;\n      display: block;\n      height: 0;\n      position: absolute;\n      right: 12px;\n      top: 18px;\n      width: 0;\n\n      b {\n        display: none;\n      }\n    }\n  }\n\n  .select2-search--dropdown {\n    padding: 4px 6px 4px 4px;\n  }\n\n  .select2-dropdown {\n    border: 1px solid #CCC;\n    border-top: none;\n    color: #404040;\n    font-size: 17px;\n    line-height: 24px;\n    font-weight: 300;\n    background: #FFF;\n\n    &.select2-dropdown--above {\n      border-top: 1px solid #CCC;\n      border-bottom: none;\n    }\n\n    .select2-results__option {\n      background: #FFF;\n      padding: 6px 12px;\n      margin: 0;\n\n      &[aria-selected] {\n        background: #FFF;\n      }\n\n      &.select2-results__option--highlighted,\n      &:hover {\n        background: $blue;\n      }\n\n      &[aria-disabled] {\n        background: #FFF;\n      }\n    }\n  }\n}\n\n.save-button-wrapper {\n  margin-top: 25px;\n\n  .save-button {\n    @extend %button;\n\n    background: $blue;\n\n    &:hover {\n      background: $darkBlue;\n      color: #FFFFFF;\n    }\n  }\n\n  .next-button {\n    display: inline-block;\n  }\n}\n\n.add-new-button {\n  background: $blue;\n\n  &:hover {\n    background: $darkBlue;\n    color: #FFFFFF;\n  }\n}\n\n.upload-button {\n  @extend %button;\n  margin-left: 20px;\n}\n\n#supapress-clear-cache-button {\n  @extend %button;\n}\n\n#supapress-add-bulk-isbns-button {\n  @extend %button;\n  position: relative;\n  top: -11px;\n  margin-left:20px;\n}\n\n#isbn_lookup_bulk {\n  height:200px\n}\n\n.supapress-error,\n.supapress-error * {\n  color: #DD3D36 !important;\n}\n\n.wp-admin {\n  .supapress-field-wrapper {\n    margin-bottom: 25px;\n  }\n\n  .supapress-tooltip-wrapper {\n    overflow: hidden;\n    position: relative;\n\n    span {\n      float: left;\n    }\n\n    label span.supapress-tooltip-icon,\n    span.select2\n    {\n      float: none;\n      display: inline-block;\n    }\n\n    .supapress-tooltip-icon {\n      cursor: pointer;\n      display: block;\n      height: 40px;\n      text-align: center;\n      width: 40px;\n\n      svg {\n        height: 20px;\n        margin-top: 10px;\n        width: 20px;\n\n        * {\n          fill: #637170;\n        }\n      }\n    }\n  }\n\n  .supapress-label,\n  .supapress-paragraph {\n    color: #222;\n    display: inline-block;\n    font-size: 18px;\n    line-height: 40px;\n    margin: 0;\n    vertical-align: top;\n    width: 330px;\n  }\n\n  .supapress-paragraph {\n    width: auto;\n\n    a, a:visited {\n      color: $primary;\n\n      &:hover {\n        color: $secondary;\n      }\n    }\n  }\n\n  .supapress-input {\n    @extend %supapress-inputs;\n  }\n\n  .supapress-input {\n    &.ui-autocomplete-loading {\n      background: #FFF url('../img/predictive-loading.gif') no-repeat center right 12px;\n    }\n\n    &:focus {\n      box-shadow: none;\n      outline: none;\n    }\n  }\n\n  .supapress-autocomplete {\n    @extend %autocomplete;\n\n    max-width: 500px;\n\n    li {\n      white-space: normal;\n    }\n  }\n\n  .supapress-ui-tooltip, .supapress-tooltip-arrow:after {\n    background: #23282D;\n  }\n\n  .supapress-ui-tooltip {\n    color: #FFFFFF;\n    max-width: 300px;\n    padding: 10px;\n    position: absolute;\n    text-align: center;\n    z-index: 99999;\n  }\n\n  .supapress-tooltip-arrow {\n    width: 70px;\n    height: 16px;\n    overflow: hidden;\n    position: absolute;\n    left: 50%;\n    margin-left: -33px;\n    bottom: -16px;\n\n    &.top {\n      top: -16px;\n      bottom: auto;\n\n      &:after {\n        bottom: -20px;\n        top: auto;\n      }\n    }\n\n    &:after {\n      content: \"\";\n      position: absolute;\n      left: 20px;\n      top: -20px;\n      width: 25px;\n      height: 25px;\n      box-shadow: 6px 5px 9px -9px black;\n      -webkit-transform: rotate(45deg);\n      -ms-transform: rotate(45deg);\n      transform: rotate(45deg);\n    }\n  }\n}\n\n.supapress-accordion-header {\n  -webkit-transition: all 0.4s ease-in;\n  -moz-transition: all 0.4s ease-in;\n  transition: all 0.4s ease-in;\n  border: 1px solid #CCC;\n  box-sizing: border-box;\n  cursor: pointer;\n  font-size: 18px;\n  line-height: normal;\n  margin: 10px 0;\n  padding: 5px;\n  width: 30%;\n\n  &.open {\n    background: #E8E8E8;\n    width: 60%;\n  }\n\n  &:hover {\n    background: #E8E8E8;\n  }\n\n  svg {\n    fill: $blue;\n    float: left;\n    height: 10px;\n    width: 10px;\n  }\n\n  span.svg-right-arrow {\n    -webkit-transition: transform 0.2s ease-in;\n    -moz-transition: transform 0.2s ease-in;\n    transition: transform 0.2s ease-in;\n    display: inline-block;\n    height: 10px;\n    margin: 7px 2px 0 0;\n    transform-origin: 50% 50% 0px;\n    vertical-align: top;\n    width: 10px;\n\n    &.open {\n      transform: rotate(90deg);\n    }\n  }\n}\n\n.supapress-accordion-content {\n  .supapress-accordion-content-inner {\n    padding: 15px 0 2px;\n\n    .supapress-label {\n      float: left;\n      width: 30% !important;\n    }\n\n    .supapress-field-wrapper {\n      box-sizing: border-box;\n      overflow: hidden;\n      padding-left: 15px;\n      width: 60%;\n    }\n\n    .select2-container {\n      width: 70% !important;\n\n      .selection,\n      .select2-selection--single {\n        width: 100% !important;\n      }\n    }\n  }\n}\n\n.supapress-shortcode {\n  font-size: 90%;\n  box-shadow: none;\n  color: #404040;\n  border: 1px solid #ddd;\n  font-weight: 300;\n  width:40%;\n}\n","$primary: #E43223;\n$secondary: #F1592A;\n$tertiary: #FF7354;\n\n$header: #BF2C22;\n\n$blue: #008CBA;\n$darkBlue: #007295;\n\n$widget-icon-width: 160px;\n$number-of-widgets: 3;",".wp-admin .settings {\n  input[type=\"text\"],\n  .select2-container,\n  .widget_link_preview {\n    width: 40% !important;\n  }\n\n  .general {\n    .supapress-label {\n      width: 25% !important;\n      @media only screen and (max-width: 1230px) {\n        width: 100% !important;\n      }\n    }\n  }\n\n  .select2-container {\n    .selection,\n    .select2-selection--single {\n      width: 100% !important;\n    }\n  }\n\n  .select2-container {\n    .selection,\n    .select2-selection--single {\n      width: 100% !important;\n    }\n  }\n\n  .supapress-cache-lifetime {\n    .select2-container {\n      .selection,\n      .select2-selection--single {\n        width: 280px !important;\n      }\n    }\n  }\n\n  .supapress-domain-slug {\n    background: rgba(0, 0, 0, 0.07) none repeat scroll 0 0;\n    font-size: 14px;\n    margin: 0 10px 0 1px;\n    padding: 3px 5px 2px;\n    float:left;\n  }\n\n  .supapress-label {\n    width: 20% !important;\n  }\n\n  .widget_link_preview {\n    background: #FFFFFF;\n    border: 1px solid $blue;\n    box-sizing: border-box;\n    color: #404040;\n    padding: 0 12px;\n    text-indent: 0 !important;\n    width: 60% !important;\n    min-height: 42px;\n\n    .placeholder {\n      color: $blue;\n    }\n  }\n\n  .supapress-accordion-header {\n    padding: 9px;\n\n    &.open {\n      width: 80%;\n    }\n  }\n\n  .supapress-accordion-content-inner {\n    padding: 2px 0;\n\n    .supapress-field-wrapper {\n      box-sizing: border-box;\n      overflow: hidden;\n      padding-left: 15px;\n      width: 80%;\n    }\n\n    .supapress-label {\n      float: left;\n      width: 40% !important;\n    }\n\n    .widget_link_pattern {\n      width: 100% !important;\n    }\n\n    input[type=\"text\"]:not(.widget_link_pattern),\n    .select2-container,\n    .widget_link_preview,\n    .widget_input_60 {\n      width: 60% !important;\n    }\n    \n    .image-preview {\n      margin: 5px auto;\n      max-height: 40px;\n      max-width: 120px;\n    }\n    \n    input[type=\"text\"].supapress-input.retailer-image-upload {\n      width: 350px !important;\n      margin-left: 30px;\n    }\n    \n    input[type=\"text\"].supapress-input.retailer-image-upload,\n    .upload_image_button.upload-button {\n      vertical-align: top;\n    }\n  }\n\n  .supapress-javascript-code {\n    background: #2d2d2d none repeat scroll 0 0;\n    margin: 0.5em 0;\n    overflow: auto;\n    padding: 1em;\n    border-radius: 4px;\n    color: #ccc;\n    display: block;\n    width: 60%;\n\n    .keyword {\n      color: #cc99cd;\n    }\n\n    .operator {\n      color: #67cdcc;\n    }\n\n    .function {\n      color: #f08d49;\n    }\n\n    .punctuation {\n      color: #ccc;\n    }\n\n    .string {\n      color: #7ec699;\n    }\n  }\n\n  .supapress-link-pattern-wrapper {\n    overflow: hidden;\n    input: {\n      width: 100% !important;\n    }\n  }\n\n  .supapress-links-wrapper {\n    width: 60%;\n    line-height: 36px;\n    overflow: hidden;\n  }\n  \n  .retailer-link-formats-wrapper .select2-selection--multiple {\n    @extend %supapress-inputs;\n    width: 100% !important;\n    outline: none !important;\n    padding-bottom: 2px !important;\n  }\n}\n\n.supafolio_page_supapress-settings {\n  .supapress-autocomplete {\n    max-width: initial;\n  }\n}\n\n@media only screen and (max-width : 1230px) {\n  .wp-admin .settings {\n    .supapress-accordion-header.open {\n      width: 100%;\n    }\n\n    .supapress-accordion-content-inner {\n      .supapress-field-wrapper {\n        padding: 0;\n        width: 100%;\n      }\n\n      input[type=\"text\"],\n      .select2-container,\n      .widget_link_preview,\n      .supapress-label {\n        width: 100% !important;\n      }\n    }\n\n    input[type=\"text\"],\n    .select2-container,\n    .widget_link_preview,\n    .supapress-label {\n      width: 100% !important;\n    }\n  }\n\n  .supapress-links-wrapper {\n    width: 100% !important;\n  }\n}\n\n@media only screen and (max-width : 1025px) {\n  .wp-admin .settings {\n    .supapress-javascript-code {\n      width: 100%;\n    }\n  }\n}","/* List page */\n.fixed .column-title {\n  max-width: 32%;\n}\n\n.fixed .column-type {\n  width: 10%;\n}\n\ninput.shortcode-in-list-table {\n  width: 100%;\n  font-size: 90%;\n}\n\n.supapress-wrap {\n  .list-page-title {\n    margin: 0;\n  }\n\n  #search-submit,\n  #widget-type-selector-submit {\n    @extend %button;\n\n    float: left;\n    height: 42px;\n    line-height: 42px;\n    padding: 0 15px;\n  }\n\n  .search-term-wrapper {\n    margin: 10px 0 35px;\n\n    .subtitle {\n      color: $primary;\n      font-weight: 700;\n      padding: 0;\n    }\n  }\n\n  #supapress-widget-search-input {\n    float: left;\n    height: 42px;\n    margin: 0;\n  }\n\n  .add-new-wrapper {\n    padding-top: 30px;\n\n    .add-new-button {\n      margin: 0;\n    }\n  }\n\n  .tablenav-pages {\n    height: auto;\n    margin: 0;\n  }\n\n  .displaying-num {\n    color: #637170;\n    font-size: 18px;\n    font-weight: 300;\n  }\n\n  .pagination-links {\n    color: #637170;\n    font-size: 18px;\n    font-weight: 300;\n\n    a {\n      @extend %button;\n\n      font-size: 30px;\n      font-weight: 300;\n      height: 30px;\n      line-height: 25px;\n      margin: 0;\n      padding: 0 10px;\n      text-align: center;\n      vertical-align: top;\n      width: auto;\n    }\n\n    span.paging-input {\n      line-height: 30px;\n\n      input {\n        @extend %supapress-inputs;\n\n        font-size: 14px;\n        font-weight: 300;\n        height: 30px;\n        line-height: 25px;\n        margin: 0;\n        padding: 0 10px;\n        text-align: center;\n        vertical-align: top;\n        width: auto;\n      }\n    }\n\n    span.tablenav-pages-navspan {\n      @extend %button;\n\n      background: #CCC;\n      cursor: default;\n      font-size: 30px;\n      font-weight: 300;\n      height: 30px;\n      line-height: 25px;\n      margin: 0;\n      padding: 0 10px;\n      text-align: center;\n      vertical-align: top;\n      width: auto;\n\n      &:hover {\n        background: #CCC;\n      }\n    }\n  }\n\n  .tablenav {\n    overflow: hidden;\n\n    &.top {\n      margin: 0 0 10px;\n    }\n\n    &.bottom {\n      margin: 10px 0 0;\n    }\n\n    #doaction,\n    #doaction2 {\n      margin: 0;\n    }\n\n    .select2-container {\n      width: 200px !important;\n      margin-right: 2px;\n    }\n\n    .select2-selection--single {\n        height: 30px;\n        width: 200px !important;\n    }\n\n    .select2-selection__rendered {\n      padding: 0 40px 0 14px;\n      font-size: 14px;\n      line-height: 30px;\n    }\n\n    .select2-selection__arrow {\n      top: 12px;\n    }\n\n    .actions.bulkactions,\n    .actions.widgettype {\n      padding: 0;\n      margin-right: 10px;\n    }\n\n    .button.action {\n      @extend %button;\n\n      font-size: 14px;\n      font-weight: 300;\n      height: 30px;\n      margin: 0;\n      padding: 0;\n      width: 70px;\n    }\n  }\n\n  .wp-list-table {\n    border: none;\n    border-spacing: 1px 1px;\n\n    thead, tfoot {\n      color: #404040;\n\n      tr {\n        border: none;\n      }\n\n      a, th, td {\n        border: none;\n        box-shadow: none;\n        color: #404040;\n      }\n\n      th, td {\n        background: #F1F1F1;\n        font-weight: 700;\n      }\n    }\n\n    tbody {\n      background: #FFF;\n      color: #404040;\n\n      tr {\n        background: #FFF;\n        color: #404040;\n\n        &:nth-child(even) {\n          background: #F5F5F5;\n        }\n\n        .row-title {\n          font-weight: 400;\n        }\n      }\n\n      a, td, input, span {\n        box-shadow: none;\n        color: #404040;\n      }\n\n      a:hover {\n        text-decoration: underline;\n      }\n\n      abbr[title] {\n        text-decoration: none;\n      }\n    }\n  }\n}\n\n.select2-container {\n  .list-page-select2 {\n    font-size: 13px;\n  }\n}",".wp-admin {\n  h2.nav-tab-wrapper {\n    border-bottom-color: #CCC;\n    margin-bottom: 25px;\n    margin-left: -10px;\n    min-height: 40px;\n    overflow: hidden;\n    padding: 15px 0 0 10px;\n\n    .nav-tab {\n      -webkit-transition: all 0.2s ease-in;\n      -moz-transition: all 0.2s ease-in;\n      transition: all 0.2s ease-in;\n      background: #FFF;\n      border: 1px solid #FFF;\n      box-shadow: none;\n      color: $blue;\n      display: block;\n      float: left;\n      font-size: 18px;\n      font-weight: 300;\n      line-height: 18px;\n      margin: -4px 0px -1px;\n      padding: 10px 15px 15px;\n      position: relative;\n      text-align: center;\n\n      &:hover {\n        background: #E5E5E5;\n        border: 1px solid #E5E5E5;\n      }\n\n      &.nav-tab-active {\n        border: 1px solid #CCC;\n        border-bottom: none;\n        box-shadow: none;\n        color: $blue;\n        cursor: default;\n\n        &:hover {\n          background: #FFF;\n        }\n\n        &:after {\n          background: $blue;\n          bottom: 0;\n          content: \"\";\n          display: block;\n          height: 5px;\n          left: -1px;\n          position: absolute;\n          right: -1px;\n        }\n      }\n    }\n  }\n}",".supapress-isbn-lookup-asm,\n.supapress-search-restriction-asm\n{\n  display: none !important;\n}\n\n.asmHighlight {\n  font-weight: 700;\n}\n\n.asmContainer {\n  margin-top: 25px;\n\n  .asmListItem {\n    background: #FFF;\n    border: 1px solid #CCC;\n    box-sizing: border-box;\n    color: #222;\n    font-weight: 300;\n    font-size: 14px;\n    margin: 0 0 10px;\n    padding: 8px 12px;\n    width: 60%;\n\n    &.book-not-found,\n    &.book-not-found a {\n      background: #DD3D36;\n      color: #FFFFFF;\n    }\n  }\n\n  .asmListItemLabel {\n    padding-left: 20px;\n  }\n\n  .asmListItemRemove {\n    background: $blue;\n    border: 1px solid $blue;\n    color: #FFFFFF;\n    display: block;\n    font-weight: 300;\n    height: 20px;\n    line-height: 16px;\n    float: left;\n    padding: 0;\n    right: 10px;\n    text-align: center;\n    text-decoration: none;\n    top: 10px;\n    width: 20px;\n\n    &:hover {\n      background: $primary;\n      border: 1px solid $primary;\n      color: #FFFFFF;\n    }\n  }\n\n  .three-squares {\n    cursor: move;\n    display: block;\n    background: #555;\n    height: 5px;\n    left: 14px;\n    pointer-events: none;\n    position: absolute;\n    top: 18px;\n    width: 5px;\n\n    &::before, &::after {\n      background: #555;\n      content: '';\n      display: block;\n      height: 5px;\n      left: 0;\n      position: absolute;\n      width: 5px;\n    }\n\n    &::before {\n      top: -7px;\n    }\n\n    &::after {\n      top: 7px;\n    }\n  }\n\n  .book-not-found {\n    border: none;\n\n    .asmListItemRemove {\n      border: 1px solid #FFFFFF;\n\n      &:hover {\n        background: #FFFFFF;\n        color: #DD3D36;\n      }\n    }\n\n    .three-squares,\n    .three-squares:before,\n    .three-squares:after {\n      background: #FFFFFF;\n    }\n  }\n}",".onoffswitch {\n  display: inline-block;\n  position: relative;\n  margin-top: 5px;\n  width: 90px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n\n  .onoffswitch-checkbox {\n    display: none;\n  }\n\n  .onoffswitch-label {\n    display: block;\n    overflow: hidden;\n    cursor: pointer;\n  }\n\n  .onoffswitch-inner {\n    display: block;\n    width: 200%;\n    margin-left: -100%;\n    -moz-transition: margin 0.3s ease-in 0s;\n    -webkit-transition: margin 0.3s ease-in 0s;\n    -o-transition: margin 0.3s ease-in 0s;\n    transition: margin 0.3s ease-in 0s;\n\n    &:before,\n    &:after {\n      display: block;\n      float: left;\n      width: 50%;\n      height: 30px;\n      padding: 0;\n      line-height: 30px;\n      font-size: 14px;\n      color: white;\n      -moz-box-sizing: border-box;\n      -webkit-box-sizing: border-box;\n      box-sizing: border-box;\n    }\n\n    &:before {\n      content: \"Show\";\n      padding-left: 15px;\n      background-color: $blue;\n      color: #FFFFFF;\n    }\n\n    &:after {\n      content: \"Hide\";\n      padding-right: 18px;\n      background-color: #AAA;\n      color: #222;\n      text-align: right;\n    }\n  }\n\n  .onoffswitch-inner.both-active:after {\n    background-color: $blue;\n    color: #FFFFFF;\n  }\n\n  .onoffswitch-inner[data-label-before]:before {\n    content: attr(data-label-before);\n  }\n\n  .onoffswitch-inner[data-label-after]:after {\n    content: attr(data-label-after);\n  }\n\n  .onoffswitch-switch {\n    display: block;\n    width: 18px;\n    margin: 6px;\n    background: #FFFFFF;\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    right: 59px;\n    -moz-transition: all 0.3s ease-in 0s;\n    -webkit-transition: all 0.3s ease-in 0s;\n    -o-transition: all 0.3s ease-in 0s;\n    transition: all 0.3s ease-in 0s;\n  }\n\n  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {\n    margin-left: 0;\n  }\n\n  .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {\n    right: 0;\n  }\n}","@import \"navtabs\";\n@import \"asmselect\";\n@import \"switches\";\n\n.title-wrapper {\n  color: #999;\n  margin-bottom: 60px;\n  max-width: 100%;\n  width: 315px;\n}\n\n.list-title {\n  background: none;\n  border: none;\n  box-shadow: none;\n  color: #404040;\n  font-size: 24px;\n  line-height: 1.4em;\n  outline: none;\n  width: 100%;\n}\n\n#widget-title {\n  width: 50%;\n}\n\n.widget-type-wrapper,\n.widget-layout-wrapper {\n  overflow: hidden;\n  margin: 20px 0 0 0;\n\n  input {\n    -webkit-appearance: none;\n    -moz-appearance: none;\n    appearance: none;\n    display: none;\n    margin: 0;\n    padding: 0;\n  }\n}\n\n.widget-layout-wrapper {\n  border-bottom: 1px solid #CCC;\n  margin-bottom: 35px;\n  margin-left: -10px;\n  margin-top: 15px;\n  padding-left: 10px;\n  width: 40%;\n}\n\n.widget-type-wrapper input:checked + .widget-type-label,\n.widget-layout-wrapper input:checked + .widget-layout-label {\n  cursor: default;\n\n  .widget-layout-text {\n    border: 1px solid #CCC;\n    border-bottom: none;\n  }\n\n  .svg-icon * {\n    fill: #222;\n  }\n\n  &:hover {\n    .widget-layout-text {\n      background: #FFF;\n    }\n  }\n}\n\n.widget-layout-wrapper-inner {\n  float: left;\n  margin: 0;\n}\n\n.widget-type-label,\n.widget-layout-label {\n  cursor: pointer;\n  color: $blue;\n  font-family: 'Lato', sans-serif;\n  font-weight: 300;\n  font-size: 18px;\n  text-align: center;\n  display: inline-block;\n  float: left;\n  padding: 0;\n  -webkit-transition: border 0.2s ease-in;\n  -moz-transition: border 0.2s ease-in;\n  transition: border 0.2s ease-in;\n  background: #FFFFFF;\n  border: none;\n\n  &:hover {\n    .widget-layout-text {\n      border: 1px solid #E5E5E5;\n      border-bottom: none;\n      background: #E5E5E5;\n    }\n  }\n\n  &.widget-type-label {\n    margin: 0 4px 4px 0;\n  }\n}\n\n.widget-type-label .label-content .svg-icon,\n.widget-layout-label .label-content .svg-icon {\n  position: absolute;\n  fill: #FFFFFF;\n  left: 50%;\n  margin: -90px 0 0 -45px;\n  top: 50%;\n  width: 90px;\n\n  * {\n    -webkit-transition: fill 0.2s ease-in;\n    -moz-transition: fill 0.2s ease-in;\n    transition: fill 0.2s ease-in;\n    fill: #999;\n  }\n}\n\n.widget-type-label .label-content,\n.widget-layout-label .label-content {\n  background: #FFF no-repeat center 20px;\n  width: 150px;\n  height: 50px;\n  display: block;\n  padding-top: 95px;\n  position: relative;\n  -webkit-transition: color 0.2s ease-in;\n  -moz-transition: color 0.2s ease-in;\n  transition: color 0.2s ease-in;\n}\n\n.widget-type-label:last-child,\n.widget-layout-label:last-child {\n  margin-right: 0;\n}\n\n.widget-type-label img,\n.widget-layout-label img {\n  display: block;\n  margin: auto;\n  padding-top: 22px;\n}\n\n.widget-layout-label {\n  .label-content {\n    height: 100px;\n    padding: 0;\n    width: 100px;\n\n    .svg-icon {\n      height: 150px;\n      margin: -76px 0 0 -35px;\n      width: 70px;\n    }\n  }\n\n  .widget-layout-label {\n    -webkit-transition: color 0.2s ease-in;\n    -moz-transition: color 0.2s ease-in;\n    transition: color 0.2s ease-in;\n  }\n\n  .widget-layout-text {\n    -webkit-transition: all 0.2s ease-in;\n    -moz-transition: all 0.2s ease-in;\n    transition: all 0.2s ease-in;\n    border: 1px solid #FFF;\n    border-bottom: none;\n    color: $blue;\n    display: block;\n    padding: 10px 15px;\n  }\n}\n\n#step1 {\n  .widget-type-field-wrapper {\n    border-top: 1px solid #CCC;\n    margin-top: 40px;\n    padding-top: 30px;\n    width: 50%;\n  }\n\n  .widget-type-wrapper {\n    margin: 0;\n    padding-left: 10px;\n  }\n\n  .widget-type-label {\n    margin: 0 calc((100% - (#{$widget-icon-width} * #{$number-of-widgets})) / (#{$number-of-widgets} - 1)) 0 0;\n\n    &:hover {\n      .widget-type-text {\n        border: 1px solid #E5E5E5;\n        background: #E5E5E5;\n      }\n    }\n\n    &.details {\n      margin: 0;\n    }\n\n    .label-content {\n      width: $widget-icon-width;\n    }\n    \n    .widget-type-text {\n      -webkit-transition: all 0.2s ease-in;\n      -moz-transition: all 0.2s ease-in;\n      transition: all 0.2s ease-in;\n      border: 1px solid #FFF;\n      color: $blue;\n      display: block;\n      padding: 10px 15px;\n    }\n  }\n\n  .widget-type-wrapper input:checked + .widget-type-label {\n    &:hover {\n      .widget-type-text {\n        border: 1px solid #CCC;\n        background: #FFF;\n      }\n    }\n\n    .widget-type-text {\n      border: 1px solid #CCC;\n      position: relative;\n    }\n\n    .svg-icon * {\n      fill: #222;\n    }\n  }\n}\n\n.widget-layout-wrapper input:checked + .widget-layout-label {\n  cursor: default;\n}\n\n.edit-collection-button,\n.add-new-button {\n  @extend %button;\n\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n  margin-left: 20px;\n  text-decoration: none;\n  vertical-align: middle;\n\n  &:hover, &:active, &:visited, &:focus {\n    box-shadow: none;\n    color: #FFFFFF;\n  }\n}\n\n#step2 {\n  position: relative;\n\n  .widget-type-wrapper {\n    -webkit-transition: all 0.5s;\n    -moz-transition: all 0.5s;\n    transition: all 0.5s;\n    background: #FFFFFF;\n    border: 1px solid #FFFFFF;\n    max-height: 50px;\n    margin: 0;\n    padding: 15px;\n    position: absolute;\n    right: -15px;\n    top: -15px;\n    width: 200px;\n    z-index: 99;\n\n    input:checked + .widget-type-label {\n      cursor: pointer;\n\n      .label-content {\n        border: 1px solid $primary;\n      }\n\n      .widget-type-text {\n        color: $primary;\n      }\n    }\n\n    &.open {\n      border-color: $blue;\n      max-height: 1000px;\n\n      input:checked + .widget-type-label {\n        cursor: default;\n      }\n    }\n\n    .widget-type-label {\n      border: none;\n      clear: right;\n      display: block;\n      float: right;\n      margin: 0 0 15px;\n      padding: 0;\n\n      &:last-child {\n        margin: 0;\n      }\n\n      &:hover {\n        .label-content {\n          border: 1px solid $blue;\n        }\n      }\n    }\n\n    .svg-icon * {\n      fill: $blue;\n    }\n\n    input:checked + .widget-type-label {\n      .svg-icon * {\n        fill: $primary;\n      }\n    }\n\n    .label-content {\n      height: 50px;\n      padding: 0;\n      width: 50px;\n      border: 1px solid #FFF;\n    }\n\n    .widget-type-text {\n      color: $blue;\n      display: block;\n      font-size: 14px;\n      line-height: 50px;\n      margin: 0 70px 0 -150px;\n      text-align: right;\n    }\n\n    .svg-icon {\n      height: 34px;\n      margin: -17px 0 0 -45px;\n    }\n  }\n}\n\n.lookup-source-input {\n  margin-top: 25px;\n}\n\n.sub-content-wrapper .supapress-label {\n  box-sizing: border-box;\n  padding-left: 50px;\n}\n\n.lazy-load,\n.show-arrows {\n  position: relative;\n\n  input, label, img {\n    display: inline-block;\n    vertical-align: middle;\n  }\n\n  .image-preview {\n    bottom: 0;\n    cursor: pointer;\n    margin: auto;\n    max-height: 40px;\n    max-width: 40px;\n    position: absolute;\n    top: 0;\n  }\n\n  .placeholder-upload,\n  .arrow-upload {\n    margin-left: 60px;\n  }\n\n  .placeholder-upload,\n  .arrow-upload,\n  .upload-button {\n    visibility: hidden;\n  }\n}",".elements.nav-tab-content {\n  overflow: hidden;\n\n  .config {\n    box-sizing: border-box;\n    float: left;\n    padding-right: 20px;\n    width: 65%;\n\n    .element-config {\n      .supapress-field-wrapper {\n        margin-bottom: 10px;\n        position: relative;\n      }\n\n      .supapress-label {\n        padding: 0;\n        width: 304px;\n      }\n\n      .asmContainer {\n        margin-top: 38px;\n      }\n\n      .asmHighlight {\n        position: absolute;\n        right: 40%;\n        top: 50px;\n      }\n    }\n  }\n\n  .selector {\n    border-left: 1px solid rgb(153, 153, 153);\n    box-sizing: border-box;\n    float: right;\n    max-height: 500px;\n    max-width: 395px;\n    overflow: auto;\n    padding: 0 20px;\n    width: 35%;\n\n    .onoffswitch {\n      float: right;\n    }\n\n    .supapress-field-wrapper {\n      margin: 0;\n    }\n\n    .supapress-label {\n      width: 205px;\n    }\n  }\n}",".restrictions.nav-tab-content {\n  overflow: hidden;\n\n  .supapress-field-wrapper {\n    width: 60%;\n    margin-bottom: 25px;\n    position: relative;\n  }\n\n  .supapress-label {\n    padding: 0;\n    width: 304px;\n  }\n\n  .asmContainer {\n    margin-top: 38px;\n  }\n\n  .asmHighlight {\n    position: absolute;\n    right: 40%;\n    top: 50px;\n  }\n}"]}
  • supapress/trunk/admin/js/scripts.min.js

    r2940680 r3268984  
    1 !function(e){var a=jQuery.noConflict(),t=a(".supapress-wrap"),s=t.find("#supapress-add-edit-form"),n=t.find("#step1"),r=t.find("#step2"),i=t.find("#message"),l=t.find(".supapress-accordion-header"),o=t.find(".elements.nav-tab-content .selector"),p=t.find("#step1_next_btn"),d=t.find(".widget-title-wrapper"),u=t.find(".widget-type-wrapper"),c=d.find("#widget-title"),h=t.find('input[name="widget_layout"]'),v=t.find(".sub-content-toggle"),f=t.find(".nav-tab"),m=t.find(".nav-tab-content"),g=t.find(".layout-content"),b=t.find("#lookup_source"),w=t.find("#isbn_lookup_bulk"),k=t.find(".lookup-source-input"),C=t.find(".save-button-wrapper"),_=!0,y=!0,x="",T=function(){u.prependTo(r),d.prependTo(r).find("p").hide(),u.find("input").on("change",function(){var t=e(this),s=u.find('label[for="'+t.attr("id")+'"]');s.prependTo(s.parent()),t.prependTo(t.parent()),S(u.find("input:checked").val()),$(m,a(".nav-tab-active").attr("data-tab")),$(g,a(".widget-layout-wrapper").find("input:checked").attr("data-sub-tab"))}),u.find("input").on("click",function(){u.hasClass("open")?u.removeClass("open"):u.addClass("open")}),u.find("input:checked").trigger("change"),S(u.find("input:checked").val()),$(m,a(".nav-tab-active").attr("data-tab")),$(g,a(".widget-layout-wrapper").find("input:checked").attr("data-sub-tab"))},$=function(s,n){s.each(function(){var a=e(this);a.hasClass(n)&&!a.hasClass("sub-content-wrapper")?("elements"===n?o.find(".supapress-field-wrapper").each(function(){var a=e(this);a.hasClass("all-tabs")||a.hasClass(u.find("input:checked").val())?a.show():a.hide().find("input:checked").attr("checked",!1)}):"arrangement"===n&&a.find(".widget-layout-wrapper-inner").each(function(){var a=e(this);a.hasClass(u.find("input:checked").val())?a.show():a.hide()}),a.show()):a.hide()}),e(".widget-type-specific").each(function(){var a=e(this);a.hasClass(u.find("input:checked").val())?(a.show(),a.hasClass("custom_layout_file")&&a.find("select").removeAttr("disabled")):(a.hide(),a.hasClass("custom_layout_file")&&a.find("select").attr("disabled","disabled"))}),"isbn_lookup"!==u.find("input:checked").val()&&(t.find(".carousel.layout-content").hide(),"carousel"===a(".widget-layout-wrapper").find("input:checked").val()&&t.find("#widget_layout1").trigger("click")),_=!1,y=!1,v.trigger("change"),y=!0},S=function(e){"product_details"===e?(t.find(".custom_layout_file.product_details").length?(t.find('.nav-tab[data-tab="content"]').removeClass("nav-tab-active").hide(),t.find('.nav-tab[data-tab="arrangement"]').removeClass("nav-tab-active").show(),h.filter('[value="custom"]').prop("checked",!0)):(t.find('.nav-tab[data-tab="content"], .nav-tab[data-tab="arrangement"]').removeClass("nav-tab-active").hide(),h.filter('[value="grid"]').prop("checked",!0)),t.find('.nav-tab[data-tab="elements"]').addClass("nav-tab-active").show(),t.find('.nav-tab[data-tab="restrictions"]').hide()):"search_results"===e?(t.find(".nav-tab").removeClass("nav-tab-active").show(),t.find('.nav-tab[data-tab="content"], .nav-tab[data-tab="seo"]').hide(),t.find('.nav-tab[data-tab="restrictions"]').show(),t.find('.nav-tab[data-tab="elements"]').addClass("nav-tab-active")):(t.find(".nav-tab").removeClass("nav-tab-active").show(),t.find('.nav-tab[data-tab="seo"], .nav-tab[data-tab="restrictions"]').hide(),t.find('.nav-tab[data-tab="content"]').addClass("nav-tab-active"))},P=function(e){var a,t,s=decodeURIComponent(window.location.search.substring(1)),n=s.split("&");for(t=0;t<n.length;t++)if(a=n[t].split("="),a[0]===e)return void 0===a[1]?"":a[1]};f.on("click",function(){var a=e(this);C.hasClass("hide");f.removeClass("nav-tab-active"),a.addClass("nav-tab-active"),$(m,a.attr("data-tab"))}),h.on("change",function(){$(g,e(this).attr("data-sub-tab"))}),$(g,e('input[name="widget_layout"]:checked').attr("data-sub-tab")),b.on("change",function(){k.each(function(){var a=e(this);a.hasClass(b.val())?a.show():a.hide()})}),b.trigger("change"),p.on("click",function(){""===e.trim(c.val())?(i.addClass("warning").removeClass("hide"),i.find("p").text("Please enter a name for your widget")):(n.hide(),r.show(),i.addClass("hide"),T())}),v.on("change",function(){var a=e(this),t=e("div."+a.attr("data-sub-content"));a.prop("checked")&&(t.hasClass(e('input[name="widget_layout"]:checked').attr("data-sub-tab"))||t.hasClass("tab-level"))?"none"===t.css("display")&&_?t.fadeIn():t.show():"none"!==t.css("display")&&y?t.fadeOut():t.hide(),_=!0}),l.on("click",function(){var a=e(this),t=a.parents(".supapress-accordion-wrapper"),s=t.find(".svg-right-arrow"),n=t.find(".supapress-accordion-content");"none"===n.css("display")?(n.slideDown(),s.addClass("open"),a.addClass("open")):(n.slideUp(),s.removeClass("open"),a.removeClass("open"))}),s.on("submit",function(){return""===e.trim(c.val())?(i.addClass("warning").removeClass("hide"),i.find("p").text("Please enter a name for your widget"),!1):0===t.find(".elements.nav-tab-content .selector input:checked").length?(i.addClass("warning").removeClass("hide"),i.find("p").text("Please choose at least one element to display in your widget."),t.find('.nav-tab[data-tab="elements"]').trigger("click"),window.scrollTo(0,0),!1):"product_details"===u.find("input:checked").val()||e('input[name="widget_layout"]:checked').parents(".widget-layout-wrapper-inner").hasClass(u.find("input:checked").val())?"isbn_lookup"===u.find("input:checked").val()&&"bulk"===b.val()&&""!==w.val()?(i.addClass("warning").removeClass("hide"),i.find("p").text('Please use the "Add ISBN(s)" button to add your entered ISBN(s) to the list.'),t.find('.nav-tab[data-tab="content"]').trigger("click"),window.scrollTo(0,0),!1):"custom"!==e('input[name="widget_layout"]:checked').val()||e("#custom_layout_file_"+e('input[name="widget_type"]:checked').val()).val()?void 0:(i.addClass("warning").removeClass("hide"),i.find("p").text("Please select a template for your custom layout"),t.find('.nav-tab[data-tab="arrangement"]').trigger("click"),window.scrollTo(0,0),!1):(i.addClass("warning").removeClass("hide"),i.find("p").text("Please choose how to display your widget (e.g. Grid or List)"),t.find('.nav-tab[data-tab="arrangement"]').trigger("click"),window.scrollTo(0,0),!1)}),t.hasClass("edit")&&T(),x=P("type"),x&&(u.find('input[value="'+x+'"]').click(),n.hide(),r.show(),i.addClass("hide"),T())}(jQuery),function(e){var a=jQuery.noConflict(),t=a("#isbn_list"),s=a("#price"),n=a("#retailer_links"),r=a("#message"),i=a("#filters"),l=a("#sort_by"),o=a("#per_page"),p=a("#show_per_page"),d=a("#per_page_input"),u=a("#per_page_input_btn"),c=a("#per_page_default"),h=e(".supapress-isbn-lookup-asm"),v=a("#isbn_lookup"),f=a("#isbn_lookup_label"),m=a("#lookup_collection"),g=a(".edit-collection-button"),b=a(".arrow-upload, .placeholder-upload"),w=a(".show-arrows .image-preview, .lazy-load .image-preview"),k=a("#supapress-clear-cache-button"),C=a("#supapress-add-bulk-isbns-button"),_=a("#isbn_lookup_bulk"),y=v.attr("data-ajax-url"),x=a("#supapress-add-edit-form"),T=a(".supapress-search-restriction-list"),$=t.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-isbn-lookup-asm",sortable:!0,highlightOutsideContainer:!0,removeLabel:"x",svgUrl:t.attr("data-svg-url")});f.insertBefore(h),v.insertBefore(h),s.html(e("option",s).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),s.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-price-locale-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")}),n.html(e("option",n).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),n.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-retailer-link-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")}),C.on("click",function(){e.ajax({url:"admin-ajax.php?action=supapress_bulk_isbn_lookup",type:"POST",data:{ISBNs:_.val().replace(/\n/g,",").replace(/ /g,"").replace(/,+/g,",")},dataType:"json",success:function(a){for(var s in a.ISBNs){var n=a.ISBNs[s],r=n.title+" ("+s+")",i=s+"|||"+n.title,l=t.find('option[data-isbn="'+s+'"]:selected'),o=e("<option>").text(r).val(i).attr({selected:!0,"data-isbn":s});n.found===-1&&o.addClass("book-not-found"),1===l.length&&l.remove(),t.append(o)}t.change(),_.val("")}})}),u.on("click",function(){var a=e("#per_page_input").val();return a>100||a<1?alert("Number should be between 1 and 100"):e("#per_page option:selected[value='"+a+"']").length?alert(a+" has already been set"):a&&(c.append(e("<option></option>").text(a).attr("value",a)),o.append(e("<option></option>").text(a).attr("selected",!0).attr("value",a)).change()),d.val(""),!1}),d.keypress(function(e){if(13==e.which)return u.click(),!1}),o.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"hide",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")}),e("body").on("change","#per_page",function(){var a=o.children("option:selected"),t=c.children("option");if(a.length===t.length)return!1;var s=c.select2("val");a.sort(function(e,a){return e=e.value,a=a.value,e-a}),c.empty().append(e("<option>").text("No default set").val("")),a.each(function(){var a=e("<option>").text(e(this).val()).val(e(this).val());s===e(this).val()&&a.attr("selected",!0),c.append(a)}),c.select2("val")||(c.select2("val",""),s&&alert("You have removed the set default value"))}),o.html(e("option",o).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1}));var S=e(".supapress-price-locale-asm");S.prependTo(S.parents(".supapress-field-wrapper")),S.siblings("label").prependTo(S.parents(".supapress-field-wrapper"));var P=e(".supapress-retailer-link-asm");P.prependTo(P.parents(".supapress-field-wrapper")),P.siblings("label").prependTo(P.parents(".supapress-field-wrapper")),i.html(e("option",i).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),i.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-filters-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")});var I=e(".supapress-filters-asm");I.prependTo(I.parents(".supapress-field-wrapper")),I.siblings("label").prependTo(I.parents(".supapress-field-wrapper")),l.html(e("option",l).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),l.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-sort-by-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")});var R=e(".supapress-sort-by-asm");R.prependTo(R.parents(".supapress-field-wrapper")),R.siblings("label").prependTo(R.parents(".supapress-field-wrapper")),k.on("click",function(){if(!k.hasClass("disabled")){var a=function(){k.removeClass("disabled"),k.css("opacity",1).text("Clear Cache")};k.addClass("disabled").css("opacity",.2).text("Clearing..."),e.ajax({url:"admin-ajax.php?action=supapress_cache_clear",type:"GET",dataType:"json",success:function(t){if(0===t.filesRemoved)e(this).updateMessage("There were no cached files to remove.","warning");else{var s=1===t.filesRemoved?" has":"s have";e(this).updateMessage(t.filesRemoved+" cached file"+s+" been removed.","success")}a()},error:function(e){console&&"error"in console&&console.error(e),a()}})}}),v.autocomplete({source:function(a,t){e.ajax({url:y+"?action=supapress_predictive",type:"POST",data:{term:v.val()},success:function(a){null!==a.predictive&&a.predictive instanceof Array&&t(e.map(a.predictive,function(e){if("undefined"!=typeof e.id)return{label:e.name+" ("+e.id+")",value:e.id+"|||"+e.name}})),v.removeClass("ui-autocomplete-loading")}})},minLength:2,open:function(){e(this).data("uiAutocomplete").menu.element.addClass("supapress-autocomplete")},autoFocus:!0,focus:function(e){e.preventDefault()},select:function(e,a){if(v.val(a.item.value),"undefined"==typeof e.keyCode||13!==e.keyCode){var t=jQuery.Event("keydown");t.which=t.keyCode=13,v.trigger(t)}e.preventDefault()}}),v.on("keydown",function(a){if(13===a.keyCode){var s,n=v.val().split("|||");if(n.length>1){var r=n[0],i=n[1];/^9\d{12}$/.test(r)&&0===t.find('option[data-isbn="'+r+'"]:selected').length&&(s=e("<option>").text(i+" ("+r+")").val(v.val()).attr({selected:!0,"data-isbn":r}),t.append(s).change()),v.val("").removeClass("ui-autocomplete-loading")}else/^9\d{12}$/.test(v.val())&&0===t.find('option[data-isbn="'+v.val()+'"]:selected').length?e.ajax({url:y+"?action=supapress_isbn_lookup",type:"POST",data:{isbn:v.val()},success:function(a){var s,n=e("<option>");"string"==typeof a?(s="ISBN not found",n.addClass("book-not-found")):s=a.search[0].title,n.text(s+" ("+v.val()+")").val(v.val()+"|||"+s).attr({selected:!0,"data-isbn":v.val()}),t.append(n).change(),v.val("").removeClass("ui-autocomplete-loading")}}):v.val("").removeClass("ui-autocomplete-loading");return a.preventDefault(),!1}}),e.each($.find(".book-not-found"),function(a,s){var n=e(s),r=n.attr("data-isbn");e.ajax({url:y+"?action=supapress_isbn_lookup",type:"POST",data:{isbn:r},success:function(a){if("string"!=typeof a){var s=a.search[0].title,i=e("<option>");i.text(s+" ("+r+")").val(r+"|||"+s).attr({selected:!0,"data-isbn":r}),n.remove(),t.append(i).change()}}})}),m.length>0&&e.ajax({url:y+"?action=supapress_collections",type:"POST",data:{},success:function(a){if("undefined"!=typeof a.filters.collection.values&&null!==a.filters.collection.values){var t;e.each(a.filters.collection.values,function(a,s){t=e("<option>"),t.text(s.name).val(s.seo_name).attr({"data-seo":s.seo_name}),m.append(t),m.attr("data-value")===s.seo_name&&m.val(s.seo_name)})}"undefined"!=typeof a.catalogId&&null!==a.catalogId&&(m.attr("data-catalog-id",a.catalogId),m.on("change",function(){g.attr("href","https://folio.supadu.com/catalog/"+m.attr("data-catalog-id")+"/collection/"+m.find(":selected").attr("data-seo")+"/book")}),m.trigger("change"))}}),e(".upload_image_button").click(function(){var a=e('input[data-button="'+e(this).attr("id")+'"]').attr("id"),t=window.send_to_editor;return tb_show("","media-upload.php?type=image&TB_iframe=true"),window.send_to_editor=function(s){var n=e("img",s).attr("src");e("#"+a).val(n).trigger("change"),tb_remove(),window.send_to_editor=t},!1}),window.send_to_editor=function(a){var t=e("img",a).attr("src");e("#upload_image").val(t),tb_remove()},b.on("change paste keyup",function(){var a=e(this),t=a.siblings(".image-preview"),s=""===e.trim(a.val())?t.attr("data-default-src"):a.val();t.attr("src",s)}),b.trigger("change"),w.on("click",function(){e(this).siblings(".arrow-upload, .placeholder-upload, .upload-button").css("visibility","visible")}),e("input").placeholder(),e("input.numbers-only").on("keyup",function(){var e=parseInt(this.value.replace(/[^0-9]/g,""));this.value=isNaN(e)?"":e}),e("select[data-value]").each(function(){var a=e(this),t=0===a.find('option[value="'+a.attr("data-value")+'"]').length?"-1":a.attr("data-value");a.val(t)}),e(".widget_link_page").on("change",function(){var a=e(this),t=a.parents(".book-url"),s=t.find(".supapress-domain-slug");a.val()<0?s.addClass("hide"):s.removeClass("hide");var n=t.find(".widget_link_pattern");n.trigger("change")}),e(".supapress-tooltip-wrapper").tooltip({tooltipClass:"supapress-ui-tooltip",content:function(a){a(e(this).prop("title").replace("<br />","<br />"))},position:{my:"center bottom-5",at:"center top",collision:"none",using:function(a,t){e(this).css(a),e("<div>").addClass("supapress-tooltip-arrow").addClass(t.vertical).addClass(t.horizontal).appendTo(this)}}}),e.fn.reorderSelect2Dropdown=function(){var a=e(this);a.hasClass("supapress-reorder-dropdown")&&(a.html(e("option",e(this)).sort(function(a,t){var s=e(a).is(":first-child")?"":e(a).text(),n=e(t).is(":first-child")?"":e(t).text();return s>n?1:s<n?-1:0})),a.find(":first-child").attr("selected",!0))},T.each(function(){e(this).asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-search-restriction-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:e(this).attr("data-svg-url")})}),e(".supapress-search-restriction-asm").each(function(){var a=e(this);a.prependTo(a.parents(".supapress-field-wrapper")),a.siblings("label").prependTo(a.parents(".supapress-field-wrapper"))}),e("#bulk-action-selector-top, #bulk-action-selector-bottom").select2({minimumResultsForSearch:10,dropdownCssClass:"list-page-select2"}),e("#widget-type-selector-top, #widget-type-selector-bottom").select2({minimumResultsForSearch:10,dropdownCssClass:"list-page-select2"}),e.fn.updateMessage=function(e,a){r.removeClass("success warning updated created deleted error hide"),r.html("<p>"+e+"</p>").addClass(a)},x.on("submit",function(){return!p.is(":checked")||""!==c.val()||(e(this).updateMessage("Please choose a default value for 'search per page'","warning"),e(window).scrollTop(0),!1)}),svg4everybody()}(jQuery),function(e){window.supapress=window.supapress||{},supapress.$wrap=null,supapress.$message=null,supapress.$form=null,supapress.$urlPattern=null,supapress.bookUrlOptions=[{value:"isbn13",label:"ISBN-13",example:"9998887770001"},{value:"isbn10",label:"ISBN-10",example:"8765432101"},{value:"title",label:"Title",example:"my-book"},{value:"subtitle",label:"Subtitle",example:"my-book-subtitle"},{value:"format",label:"Format",example:"my-format"},{value:"text-title",label:"Full Book Title",example:"My Book"},{value:"author",label:"Author",example:"my-author"},{value:"imprint",label:"Imprint",example:"my-imprint"},{value:"publisher",label:"Publisher",example:"my-publisher"},{value:"description",label:"Description",example:"my description"}],supapress.trackingPatternOptions=[{value:"isbn13",label:"ISBN-13",example:"9998887770001"},{value:"isbn10",label:"ISBN-10",example:"8765432101"},{value:"title",label:"Title",example:"my-book"},{value:"subtitle",label:"Subtitle",example:"my-book-subtitle"},{value:"format",label:"Format",example:"my-format"},{value:"text-title",label:"Full Book Title",example:"My Book"},{value:"author",label:"Author",example:"my-author"},{value:"imprint",label:"Imprint",example:"my-imprint"},{value:"publisher",label:"Publisher",example:"my-publisher"},{value:"description",label:"Description",example:"my description"},{value:"price_usd",label:"Price (full) - USD",example:"0.00"},{value:"discount_usd",label:"Price (discount) - USD",example:"0.00"},{value:"price_gbp",label:"Price (full) - GBP",example:"0.00"},{value:"discount_gbp",label:"Price (discount) - GBP",example:"0.00"},{value:"price_cad",label:"Price (full) - CAD",example:"0.00"},{value:"discount_cad",label:"Price (discount) - CAD",example:"0.00"}],supapress.resultCountTextOptions=[{value:"total",label:"Total Results",example:"100"},{value:"pagestart",label:"Page Start",example:"1"},{value:"pageend",label:"Page End",example:"10"}],supapress.searchTermTextOptions=[{value:"term",label:"Search Term",example:"Lord of the Rings"}],e.fn.insertAtCaret=function(a){var t=e(this),s=t.prop("selectionStart"),n=t.prop("selectionEnd"),r=t.val(),i=r.substring(0,s),l=r.substring(n,r.length);t.val(i+a+l),t[0].selectionStart=t[0].selectionEnd=s+a.length,t.focus()},e.fn.addAutoComplete=function(a){var t=e(this);t.autocomplete({source:a,minLength:0,open:function(){e(this).data("uiAutocomplete").menu.element.addClass("supapress-autocomplete")},focus:function(e){e.preventDefault()},select:function(e,a){return t.insertAtCaret(a.item.value+"%"),!1},_renderItem:function(a,t){return e("<li>").append(t.label).appendTo(a)}}),t.on("keydown",function(e){if(13===e.which)return!1}),t.on("keyup",function(e){e.shiftKey&&53===e.which&&t.autocomplete("search","")}),t.on("change paste keyup",function(){var s,n,r=t.val(),i=t.parents(".book-url"),l=t.parents(".retailer-link");!i.length&&!l.length||t.hasClass("no-preview")||(s=i.find(".widget_link_page").val()>0,e.each(a,function(e,a){n=new RegExp("%"+a.value+"%","g"),r=r.replace(n,a.example)}),t.parents(".book-url").find(".widget_link_preview").html('<span class="placeholder">'+(s?e(".supapress-domain-slug").html():"")+r+"</span>"),t.parents(".retailer-link").find(".widget_link_preview").html('<span class="placeholder">'+r+"</span>"))}),t.on("blur",function(){var a=e(this);""===e.trim(a.val())&&a.data("default")&&a.val(a.data("default")),/\/$/.test(a.val())&&a.data("trim-trailing-slash")&&a.val(a.val().replace(/\/{2,}$/,"/")),a.trigger("change")}),t.trigger("blur")},e.fn.supapressAdminInit=function(){supapress.$wrap=this,supapress.$message=supapress.$wrap.find("#message"),supapress.$form=supapress.$wrap.find("#supapress-settings-form"),supapress.$urlPattern=supapress.$wrap.find(".widget_link_pattern"),supapress.$resultCountText=e("#supapress-result-count-text"),supapress.$searchTermText=e("#supapress-search-term-text"),supapress.$seoCanonical=e("#supapress-product-details-seo-canonical"),supapress.$retailerUpload=e(".retailer-image-upload"),supapress.$retailers=e(".retailer-links .retailers"),supapress.$retailerLinkFormats=e(".retailer-links .retailer_link_formats"),supapress.$addNewRetailer=e(".retailer-links .add-new-wrapper .add-new-button"),supapress.$addNewRetailerLoader=e(".retailer-links .add-new-wrapper .loading-icon");var a=function(){var a=e(this),t=a.hasClass("tracking-pattern")?"trackingPatternOptions":"bookUrlOptions";a.addAutoComplete(supapress[t])};e.each(supapress.$urlPattern,a),supapress.$resultCountText.addAutoComplete(supapress.resultCountTextOptions),supapress.$searchTermText.addAutoComplete(supapress.searchTermTextOptions),supapress.$retailerUpload.on("change paste keyup",function(){var a=e(this),t=a.siblings(".image-preview"),s=""===e.trim(a.val())?t.attr("data-default-src"):a.val();t.attr("src",s)}),supapress.$addNewRetailer.on("click",function(){supapress.$addNewRetailer.addClass("hide"),supapress.$addNewRetailerLoader.removeClass("hide"),e.ajax({url:"admin-ajax.php?action=supapress_new_retailer_link",type:"POST",data:{count:supapress.$retailerLinkFormats.length},success:function(t){supapress.$retailers.append(t),supapress.$addNewRetailer.removeClass("hide"),supapress.$addNewRetailerLoader.addClass("hide");var s=supapress.$retailers.find(".retailer-link:last-child"),n=s.find(".supapress-accordion-header"),r=s.find(".widget_link_pattern"),i=s.find(".supapress-dropdown");e.each(r,a),n.on("click",function(){var a=e(this),t=a.parents(".supapress-accordion-wrapper"),s=t.find(".svg-right-arrow"),n=t.find(".supapress-accordion-content");"none"===n.css("display")?(n.slideDown(),s.addClass("open"),a.addClass("open")):(n.slideUp(),s.removeClass("open"),a.removeClass("open"))}),e.each(i,function(){$select2=e(this).select2({width:"100%"}),$select2.data("select2").$dropdown?$select2.data("select2").$dropdown.addClass("supapress-select2-drop"):$select2.data("select2").dropdown&&$select2.data("select2").dropdown.addClass("supapress-select2-drop")}),s.find(".upload_image_button").on("click",function(){var a=s.find('input[data-button="'+e(this).attr("id")+'"]'),t=window.send_to_editor;return tb_show("","media-upload.php?type=image&TB_iframe=true"),a.on("change paste keyup",function(){var a=e(this),t=a.siblings(".image-preview"),s=""===e.trim(a.val())?t.attr("data-default-src"):a.val();t.attr("src",s)}),window.send_to_editor=function(s){var n=e("img",s).attr("src");a.val(n).trigger("change"),tb_remove(),window.send_to_editor=t},!1})}})}),supapress.$form.on("submit",function(){var a=!1;supapress.$wrap.find(".book-url .widget_link_pattern").each(function(){var t=e(this),s=t.val(),n=t.parents(".supapress-accordion-content-inner").find(".widget_link_page"),r=new RegExp("^http(s*)://"),i="",l=parseInt(n.val());if(l>0?/%isbn13%/.test(s)===!1?i='Book page URLs must contain an ISBN-13 so we can find your book. Please make sure "%isbn13%" is found in your url patterns.':r.test(s)!==!1?i="Book page URLs should not contain the full URL.":/^\//.test(s)===!1&&(i="Book page URLs must start with a slash"):l===-2&&r.test(s)===!1&&(i="External links should contain the full URL."),i)return supapress.$message.addClass("warning").removeClass("hide"),supapress.$message.find("p").text(i),supapress.$wrap.find('.nav-tab[data-tab="links"]').trigger("click"),a=!0,!1}),supapress.$wrap.find(".retailers .retailer-link ").each(function(){var t=e(this),s=t.find(".widget_retailer_name").val(),n=(t.find(".widget_link_pattern").val(),"");if(""===s.trim()?n="All retailer links require a name.":""===s.trim()&&(n="All retailer links require a link."),n)return supapress.$message.addClass("warning").removeClass("hide"),supapress.$message.find("p").text(n),supapress.$wrap.find('.nav-tab[data-tab="retailer-links"]').trigger("click"),a=!0,!1});var t=supapress.$seoCanonical.val(),s=new RegExp("^http(s*)://"),n="";if(/%isbn13%/.test(t)===!1?n='Canonical URL must contain an ISBN-13 so we can find your book. Please make sure "%isbn13%" is found in your url patterns.':s.test(t)!==!1?n="Canonical URL should not contain the full URL.":/^\//.test(t)===!1&&(n="Canonical URL must start with a slash"),n&&(supapress.$message.addClass("warning").removeClass("hide"),supapress.$message.find("p").text(n),supapress.$wrap.find('.nav-tab[data-tab="seo"]').trigger("click"),a=!0),a===!0)return window.scrollTo(0,0),!1})},e(function(){e("div.supapress-wrap.settings").supapressAdminInit()})}(jQuery);
     1!function(e){var a=jQuery.noConflict(),t=a(".supapress-wrap"),s=t.find("#supapress-add-edit-form"),n=t.find("#step1"),r=t.find("#step2"),i=t.find("#message"),l=t.find(".supapress-accordion-header"),o=t.find(".elements.nav-tab-content .selector"),p=t.find("#step1_next_btn"),d=t.find(".widget-title-wrapper"),u=t.find(".widget-type-wrapper"),c=d.find("#widget-title"),h=t.find('input[name="widget_layout"]'),v=t.find(".sub-content-toggle"),f=t.find(".nav-tab"),m=t.find(".nav-tab-content"),g=t.find(".layout-content"),b=t.find("#lookup_source"),w=t.find("#isbn_lookup_bulk"),k=t.find(".lookup-source-input"),C=t.find(".save-button-wrapper"),_=!0,y=!0,x="",T=function(){u.prependTo(r),d.prependTo(r).find("p").hide(),u.find("input").on("change",function(){var t=e(this),s=u.find('label[for="'+t.attr("id")+'"]');s.prependTo(s.parent()),t.prependTo(t.parent()),S(u.find("input:checked").val()),$(m,a(".nav-tab-active").attr("data-tab")),$(g,a(".widget-layout-wrapper").find("input:checked").attr("data-sub-tab"))}),u.find("input").on("click",function(){u.hasClass("open")?u.removeClass("open"):u.addClass("open")}),u.find("input:checked").trigger("change"),S(u.find("input:checked").val()),$(m,a(".nav-tab-active").attr("data-tab")),$(g,a(".widget-layout-wrapper").find("input:checked").attr("data-sub-tab"))},$=function(s,n){s.each(function(){var a=e(this);a.hasClass(n)&&!a.hasClass("sub-content-wrapper")?("elements"===n?o.find(".supapress-field-wrapper").each(function(){var a=e(this);a.hasClass("all-tabs")||a.hasClass(u.find("input:checked").val())?a.show():a.hide().find("input:checked").attr("checked",!1)}):"arrangement"===n&&a.find(".widget-layout-wrapper-inner").each(function(){var a=e(this);a.hasClass(u.find("input:checked").val())?a.show():a.hide()}),a.show()):a.hide()}),e(".widget-type-specific").each(function(){var a=e(this);a.hasClass(u.find("input:checked").val())?(a.show(),a.hasClass("custom_layout_file")&&a.find("select").removeAttr("disabled")):(a.hide(),a.hasClass("custom_layout_file")&&a.find("select").attr("disabled","disabled"))}),"isbn_lookup"!==u.find("input:checked").val()&&(t.find(".carousel.layout-content").hide(),"carousel"===a(".widget-layout-wrapper").find("input:checked").val()&&t.find("#widget_layout1").trigger("click")),_=!1,y=!1,v.trigger("change"),y=!0},S=function(e){"product_details"===e?(t.find(".custom_layout_file.product_details").length?(t.find('.nav-tab[data-tab="content"]').removeClass("nav-tab-active").hide(),t.find('.nav-tab[data-tab="arrangement"]').removeClass("nav-tab-active").show(),h.filter('[value="custom"]').prop("checked",!0)):(t.find('.nav-tab[data-tab="content"], .nav-tab[data-tab="arrangement"]').removeClass("nav-tab-active").hide(),h.filter('[value="grid"]').prop("checked",!0)),t.find('.nav-tab[data-tab="elements"]').addClass("nav-tab-active").show(),t.find('.nav-tab[data-tab="restrictions"]').hide()):"search_results"===e?(t.find(".nav-tab").removeClass("nav-tab-active").show(),t.find('.nav-tab[data-tab="content"], .nav-tab[data-tab="seo"]').hide(),t.find('.nav-tab[data-tab="restrictions"]').show(),t.find('.nav-tab[data-tab="elements"]').addClass("nav-tab-active")):(t.find(".nav-tab").removeClass("nav-tab-active").show(),t.find('.nav-tab[data-tab="seo"], .nav-tab[data-tab="restrictions"]').hide(),t.find('.nav-tab[data-tab="content"]').addClass("nav-tab-active"))},P=function(e){var a,t,s=decodeURIComponent(window.location.search.substring(1)),n=s.split("&");for(t=0;t<n.length;t++)if(a=n[t].split("="),a[0]===e)return void 0===a[1]?"":a[1]};f.on("click",function(){var a=e(this);C.hasClass("hide");f.removeClass("nav-tab-active"),a.addClass("nav-tab-active"),$(m,a.attr("data-tab"))}),h.on("change",function(){$(g,e(this).attr("data-sub-tab"))}),$(g,e('input[name="widget_layout"]:checked').attr("data-sub-tab")),b.on("change",function(){k.each(function(){var a=e(this);a.hasClass(b.val())?a.show():a.hide()})}),b.trigger("change"),p.on("click",function(){""===e.trim(c.val())?(i.addClass("warning").removeClass("hide"),i.find("p").text("Please enter a name for your widget")):(n.hide(),r.show(),i.addClass("hide"),T())}),v.on("change",function(){var a=e(this),t=e("div."+a.attr("data-sub-content"));a.prop("checked")&&(t.hasClass(e('input[name="widget_layout"]:checked').attr("data-sub-tab"))||t.hasClass("tab-level"))?"none"===t.css("display")&&_?t.fadeIn():t.show():"none"!==t.css("display")&&y?t.fadeOut():t.hide(),_=!0}),l.on("click",function(){var a=e(this),t=a.parents(".supapress-accordion-wrapper"),s=t.find(".svg-right-arrow"),n=t.find(".supapress-accordion-content");"none"===n.css("display")?(n.slideDown(),s.addClass("open"),a.addClass("open")):(n.slideUp(),s.removeClass("open"),a.removeClass("open"))}),s.on("submit",function(){return""===e.trim(c.val())?(i.addClass("warning").removeClass("hide"),i.find("p").text("Please enter a name for your widget"),!1):0===t.find(".elements.nav-tab-content .selector input:checked").length?(i.addClass("warning").removeClass("hide"),i.find("p").text("Please choose at least one element to display in your widget."),t.find('.nav-tab[data-tab="elements"]').trigger("click"),window.scrollTo(0,0),!1):"product_details"===u.find("input:checked").val()||e('input[name="widget_layout"]:checked').parents(".widget-layout-wrapper-inner").hasClass(u.find("input:checked").val())?"isbn_lookup"===u.find("input:checked").val()&&"bulk"===b.val()&&""!==w.val()?(i.addClass("warning").removeClass("hide"),i.find("p").text('Please use the "Add ISBN(s)" button to add your entered ISBN(s) to the list.'),t.find('.nav-tab[data-tab="content"]').trigger("click"),window.scrollTo(0,0),!1):"custom"!==e('input[name="widget_layout"]:checked').val()||e("#custom_layout_file_"+e('input[name="widget_type"]:checked').val()).val()?void 0:(i.addClass("warning").removeClass("hide"),i.find("p").text("Please select a template for your custom layout"),t.find('.nav-tab[data-tab="arrangement"]').trigger("click"),window.scrollTo(0,0),!1):(i.addClass("warning").removeClass("hide"),i.find("p").text("Please choose how to display your widget (e.g. Grid or List)"),t.find('.nav-tab[data-tab="arrangement"]').trigger("click"),window.scrollTo(0,0),!1)}),t.hasClass("edit")&&T(),x=P("type"),x&&(u.find('input[value="'+x+'"]').click(),n.hide(),r.show(),i.addClass("hide"),T())}(jQuery),function(e){var a=jQuery.noConflict(),t=a("#isbn_list"),s=a("#price"),n=a("#retailer_links"),r=a("#message"),i=a("#filters"),l=a("#sort_by"),o=a("#per_page"),p=a("#show_per_page"),d=a("#per_page_input"),u=a("#per_page_input_btn"),c=a("#per_page_default"),h=e(".supapress-isbn-lookup-asm"),v=a("#isbn_lookup"),f=a("#isbn_lookup_label"),m=a("#lookup_collection"),g=a(".edit-collection-button"),b=a(".arrow-upload, .placeholder-upload"),w=a(".show-arrows .image-preview, .lazy-load .image-preview"),k=a("#supapress-clear-cache-button"),C=a("#supapress-add-bulk-isbns-button"),_=a("#isbn_lookup_bulk"),y=v.attr("data-ajax-url"),x=a("#supapress-add-edit-form"),T=a(".supapress-search-restriction-list"),$=t.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-isbn-lookup-asm",sortable:!0,highlightOutsideContainer:!0,removeLabel:"x",svgUrl:t.attr("data-svg-url")});f.insertBefore(h),v.insertBefore(h),s.html(e("option",s).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),s.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-price-locale-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")}),n.html(e("option",n).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),n.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-retailer-link-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")}),C.on("click",function(){e.ajax({url:"admin-ajax.php?action=supapress_bulk_isbn_lookup",type:"POST",data:{ISBNs:_.val().replace(/\n/g,",").replace(/ /g,"").replace(/,+/g,",")},dataType:"json",success:function(a){for(var s in a.ISBNs){var n=a.ISBNs[s],r=n.title+" ("+s+")",i=s+"|||"+n.title,l=t.find('option[data-isbn="'+s+'"]:selected'),o=e("<option>").text(r).val(i).attr({selected:!0,"data-isbn":s});n.found===-1&&o.addClass("book-not-found"),1===l.length&&l.remove(),t.append(o)}t.change(),_.val("")}})}),u.on("click",function(){var a=e("#per_page_input").val();return a>100||a<1?alert("Number should be between 1 and 100"):e("#per_page option:selected[value='"+a+"']").length?alert(a+" has already been set"):a&&(c.append(e("<option></option>").text(a).attr("value",a)),o.append(e("<option></option>").text(a).attr("selected",!0).attr("value",a)).change()),d.val(""),!1}),d.keypress(function(e){if(13==e.which)return u.click(),!1}),o.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"hide",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")}),e("body").on("change","#per_page",function(){var a=o.children("option:selected"),t=c.children("option");if(a.length===t.length)return!1;var s=c.select2("val");a.sort(function(e,a){return e=e.value,a=a.value,e-a}),c.empty().append(e("<option>").text("No default set").val("")),a.each(function(){var a=e("<option>").text(e(this).val()).val(e(this).val());s===e(this).val()&&a.attr("selected",!0),c.append(a)}),c.select2("val")||(c.select2("val",""),s&&alert("You have removed the set default value"))}),o.html(e("option",o).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1}));var S=e(".supapress-price-locale-asm");S.prependTo(S.parents(".supapress-field-wrapper")),S.siblings("label").prependTo(S.parents(".supapress-field-wrapper"));var P=e(".supapress-retailer-link-asm");P.prependTo(P.parents(".supapress-field-wrapper")),P.siblings("label").prependTo(P.parents(".supapress-field-wrapper")),i.html(e("option",i).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),i.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-filters-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")});var I=e(".supapress-filters-asm");I.prependTo(I.parents(".supapress-field-wrapper")),I.siblings("label").prependTo(I.parents(".supapress-field-wrapper")),l.html(e("option",l).sort(function(a,t){var s=e(a).attr("rel"),n=e(t).attr("rel");return s==n?0:s<n?-1:1})),l.asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-sort-by-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:t.attr("data-svg-url")});var R=e(".supapress-sort-by-asm");R.prependTo(R.parents(".supapress-field-wrapper")),R.siblings("label").prependTo(R.parents(".supapress-field-wrapper")),k.on("click",function(){if(!k.hasClass("disabled")){var a=function(){k.removeClass("disabled"),k.css("opacity",1).text("Clear Cache")};k.addClass("disabled").css("opacity",.2).text("Clearing..."),e.ajax({url:"admin-ajax.php?action=supapress_cache_clear",type:"GET",dataType:"json",success:function(t){if(0===t.filesRemoved)e(this).updateMessage("There were no cached files to remove.","warning");else{var s=1===t.filesRemoved?" has":"s have";e(this).updateMessage(t.filesRemoved+" cached file"+s+" been removed.","success")}a()},error:function(e){console&&"error"in console&&console.error(e),a()}})}}),v.autocomplete({source:function(a,t){e.ajax({url:y+"?action=supapress_predictive",type:"POST",data:{term:v.val()},success:function(a){null!==a.predictive&&a.predictive instanceof Array&&t(e.map(a.predictive,function(e){if("undefined"!=typeof e.id){var a=e.name;return e.title&&(a=e.title),{label:a+" ("+e.id+")",value:e.id+"|||"+a}}})),v.removeClass("ui-autocomplete-loading")}})},minLength:2,open:function(){e(this).data("uiAutocomplete").menu.element.addClass("supapress-autocomplete")},autoFocus:!0,focus:function(e){e.preventDefault()},select:function(e,a){if(v.val(a.item.value),"undefined"==typeof e.keyCode||13!==e.keyCode){var t=jQuery.Event("keydown");t.which=t.keyCode=13,v.trigger(t)}e.preventDefault()}}),v.on("keydown",function(a){if(13===a.keyCode){var s,n=v.val().split("|||");if(n.length>1){var r=n[0],i=n[1];/^9\d{12}$/.test(r)&&0===t.find('option[data-isbn="'+r+'"]:selected').length&&(s=e("<option>").text(i+" ("+r+")").val(v.val()).attr({selected:!0,"data-isbn":r}),t.append(s).change()),v.val("").removeClass("ui-autocomplete-loading")}else/^9\d{12}$/.test(v.val())&&0===t.find('option[data-isbn="'+v.val()+'"]:selected').length?e.ajax({url:y+"?action=supapress_isbn_lookup",type:"POST",data:{isbn:v.val()},success:function(a){var s,n=e("<option>");"string"==typeof a?(s="ISBN not found",n.addClass("book-not-found")):s=a.search[0].title,n.text(s+" ("+v.val()+")").val(v.val()+"|||"+s).attr({selected:!0,"data-isbn":v.val()}),t.append(n).change(),v.val("").removeClass("ui-autocomplete-loading")}}):v.val("").removeClass("ui-autocomplete-loading");return a.preventDefault(),!1}}),e.each($.find(".book-not-found"),function(a,s){var n=e(s),r=n.attr("data-isbn");e.ajax({url:y+"?action=supapress_isbn_lookup",type:"POST",data:{isbn:r},success:function(a){if("string"!=typeof a){var s=a.search[0].title,i=e("<option>");i.text(s+" ("+r+")").val(r+"|||"+s).attr({selected:!0,"data-isbn":r}),n.remove(),t.append(i).change()}}})}),m.length>0&&e.ajax({url:y+"?action=supapress_collections",type:"POST",data:{},success:function(a){if("undefined"!=typeof a.filters.collection.values&&null!==a.filters.collection.values){var t;e.each(a.filters.collection.values,function(a,s){t=e("<option>"),t.text(s.name).val(s.seo_name).attr({"data-seo":s.seo_name}),m.append(t),m.attr("data-value")===s.seo_name&&m.val(s.seo_name)})}"undefined"!=typeof a.catalogId&&null!==a.catalogId&&(m.attr("data-catalog-id",a.catalogId),m.on("change",function(){g.attr("href","https://folio.supadu.com/catalog/"+m.attr("data-catalog-id")+"/collection/"+m.find(":selected").attr("data-seo")+"/book")})),m.trigger("change")}}),e(".upload_image_button").click(function(){var a=e('input[data-button="'+e(this).attr("id")+'"]').attr("id"),t=window.send_to_editor;return tb_show("","media-upload.php?type=image&TB_iframe=true"),window.send_to_editor=function(s){var n=e("img",s).attr("src");e("#"+a).val(n).trigger("change"),tb_remove(),window.send_to_editor=t},!1}),window.send_to_editor=function(a){var t=e("img",a).attr("src");e("#upload_image").val(t),tb_remove()},b.on("change paste keyup",function(){var a=e(this),t=a.siblings(".image-preview"),s=""===e.trim(a.val())?t.attr("data-default-src"):a.val();t.attr("src",s)}),b.trigger("change"),w.on("click",function(){e(this).siblings(".arrow-upload, .placeholder-upload, .upload-button").css("visibility","visible")}),e("input").placeholder(),e("input.numbers-only").on("keyup",function(){var e=parseInt(this.value.replace(/[^0-9]/g,""));this.value=isNaN(e)?"":e}),e("select[data-value]").each(function(){var a=e(this),t=0===a.find('option[value="'+a.attr("data-value")+'"]').length?"-1":a.attr("data-value");a.val(t)}),e(".widget_link_page").on("change",function(){var a=e(this),t=a.parents(".book-url"),s=t.find(".supapress-domain-slug");a.val()<0?s.addClass("hide"):s.removeClass("hide");var n=t.find(".widget_link_pattern");n.trigger("change")}),e(".supapress-tooltip-wrapper").tooltip({tooltipClass:"supapress-ui-tooltip",content:function(a){a(e(this).prop("title").replace("<br />","<br />"))},position:{my:"center bottom-5",at:"center top",collision:"none",using:function(a,t){e(this).css(a),e("<div>").addClass("supapress-tooltip-arrow").addClass(t.vertical).addClass(t.horizontal).appendTo(this)}}}),e.fn.reorderSelect2Dropdown=function(){var a=e(this);a.hasClass("supapress-reorder-dropdown")&&(a.html(e("option",e(this)).sort(function(a,t){var s=e(a).is(":first-child")?"":e(a).text(),n=e(t).is(":first-child")?"":e(t).text();return s>n?1:s<n?-1:0})),a.find(":first-child").attr("selected",!0))},T.each(function(){e(this).asmSelect({addItemTarget:"bottom",animate:!1,hideWhenAdded:!0,highlight:!0,listType:"ul",selectClass:"supapress-dropdown supapress-search-restriction-asm supapress-reorder-dropdown",sortable:!0,highlightOutsideContainer:!1,removeLabel:"x",svgUrl:e(this).attr("data-svg-url")})}),e(".supapress-search-restriction-asm").each(function(){var a=e(this);a.prependTo(a.parents(".supapress-field-wrapper")),a.siblings("label").prependTo(a.parents(".supapress-field-wrapper"))}),e("#bulk-action-selector-top, #bulk-action-selector-bottom").select2({minimumResultsForSearch:10,dropdownCssClass:"list-page-select2"}),e("#widget-type-selector-top, #widget-type-selector-bottom").select2({minimumResultsForSearch:10,dropdownCssClass:"list-page-select2"}),e.fn.updateMessage=function(e,a){r.removeClass("success warning updated created deleted error hide"),r.html("<p>"+e+"</p>").addClass(a)},x.on("submit",function(){return!p.is(":checked")||""!==c.val()||(e(this).updateMessage("Please choose a default value for 'search per page'","warning"),e(window).scrollTop(0),!1)}),svg4everybody()}(jQuery),function(e){window.supapress=window.supapress||{},supapress.$wrap=null,supapress.$message=null,supapress.$form=null,supapress.$urlPattern=null,supapress.bookUrlOptions=[{value:"isbn13",label:"ISBN-13",example:"9998887770001"},{value:"isbn10",label:"ISBN-10",example:"8765432101"},{value:"title",label:"Title",example:"my-book"},{value:"subtitle",label:"Subtitle",example:"my-book-subtitle"},{value:"format",label:"Format",example:"my-format"},{value:"text-title",label:"Full Book Title",example:"My Book"},{value:"author",label:"Author",example:"my-author"},{value:"imprint",label:"Imprint",example:"my-imprint"},{value:"publisher",label:"Publisher",example:"my-publisher"},{value:"description",label:"Description",example:"my description"}],supapress.trackingPatternOptions=[{value:"isbn13",label:"ISBN-13",example:"9998887770001"},{value:"isbn10",label:"ISBN-10",example:"8765432101"},{value:"title",label:"Title",example:"my-book"},{value:"subtitle",label:"Subtitle",example:"my-book-subtitle"},{value:"format",label:"Format",example:"my-format"},{value:"text-title",label:"Full Book Title",example:"My Book"},{value:"author",label:"Author",example:"my-author"},{value:"imprint",label:"Imprint",example:"my-imprint"},{value:"publisher",label:"Publisher",example:"my-publisher"},{value:"description",label:"Description",example:"my description"},{value:"price_usd",label:"Price (full) - USD",example:"0.00"},{value:"discount_usd",label:"Price (discount) - USD",example:"0.00"},{value:"price_gbp",label:"Price (full) - GBP",example:"0.00"},{value:"discount_gbp",label:"Price (discount) - GBP",example:"0.00"},{value:"price_cad",label:"Price (full) - CAD",example:"0.00"},{value:"discount_cad",label:"Price (discount) - CAD",example:"0.00"}],supapress.resultCountTextOptions=[{value:"total",label:"Total Results",example:"100"},{value:"pagestart",label:"Page Start",example:"1"},{value:"pageend",label:"Page End",example:"10"}],supapress.searchTermTextOptions=[{value:"term",label:"Search Term",example:"Lord of the Rings"}],e.fn.insertAtCaret=function(a){var t=e(this),s=t.prop("selectionStart"),n=t.prop("selectionEnd"),r=t.val(),i=r.substring(0,s),l=r.substring(n,r.length);t.val(i+a+l),t[0].selectionStart=t[0].selectionEnd=s+a.length,t.focus()},e.fn.addAutoComplete=function(a){var t=e(this);t.autocomplete({source:a,minLength:0,open:function(){e(this).data("uiAutocomplete").menu.element.addClass("supapress-autocomplete")},focus:function(e){e.preventDefault()},select:function(e,a){return t.insertAtCaret(a.item.value+"%"),!1},_renderItem:function(a,t){return e("<li>").append(t.label).appendTo(a)}}),t.on("keydown",function(e){if(13===e.which)return!1}),t.on("keyup",function(e){e.shiftKey&&53===e.which&&t.autocomplete("search","")}),t.on("change paste keyup",function(){var s,n,r=t.val(),i=t.parents(".book-url"),l=t.parents(".retailer-link");!i.length&&!l.length||t.hasClass("no-preview")||(s=i.find(".widget_link_page").val()>0,e.each(a,function(e,a){n=new RegExp("%"+a.value+"%","g"),r=r.replace(n,a.example)}),t.parents(".book-url").find(".widget_link_preview").html('<span class="placeholder">'+(s?e(".supapress-domain-slug").html():"")+r+"</span>"),t.parents(".retailer-link").find(".widget_link_preview").html('<span class="placeholder">'+r+"</span>"))}),t.on("blur",function(){var a=e(this);""===e.trim(a.val())&&a.data("default")&&a.val(a.data("default")),/\/$/.test(a.val())&&a.data("trim-trailing-slash")&&a.val(a.val().replace(/\/{2,}$/,"/")),a.trigger("change")}),t.trigger("blur")},e.fn.supapressAdminInit=function(){supapress.$wrap=this,supapress.$message=supapress.$wrap.find("#message"),supapress.$form=supapress.$wrap.find("#supapress-settings-form"),supapress.$urlPattern=supapress.$wrap.find(".widget_link_pattern"),supapress.$resultCountText=e("#supapress-result-count-text"),supapress.$searchTermText=e("#supapress-search-term-text"),supapress.$seoCanonical=e("#supapress-product-details-seo-canonical"),supapress.$retailerUpload=e(".retailer-image-upload"),supapress.$retailers=e(".retailer-links .retailers"),supapress.$retailerLinkFormats=e(".retailer-links .retailer_link_formats"),supapress.$addNewRetailer=e(".retailer-links .add-new-wrapper .add-new-button"),supapress.$addNewRetailerLoader=e(".retailer-links .add-new-wrapper .loading-icon");var a=function(){var a=e(this),t=a.hasClass("tracking-pattern")?"trackingPatternOptions":"bookUrlOptions";a.addAutoComplete(supapress[t])};e.each(supapress.$urlPattern,a),supapress.$resultCountText.addAutoComplete(supapress.resultCountTextOptions),supapress.$searchTermText.addAutoComplete(supapress.searchTermTextOptions),supapress.$retailerUpload.on("change paste keyup",function(){var a=e(this),t=a.siblings(".image-preview"),s=""===e.trim(a.val())?t.attr("data-default-src"):a.val();t.attr("src",s)}),supapress.$addNewRetailer.on("click",function(){supapress.$addNewRetailer.addClass("hide"),supapress.$addNewRetailerLoader.removeClass("hide"),e.ajax({url:"admin-ajax.php?action=supapress_new_retailer_link",type:"POST",data:{count:supapress.$retailerLinkFormats.length},success:function(t){supapress.$retailers.append(t),supapress.$addNewRetailer.removeClass("hide"),supapress.$addNewRetailerLoader.addClass("hide");var s=supapress.$retailers.find(".retailer-link:last-child"),n=s.find(".supapress-accordion-header"),r=s.find(".widget_link_pattern"),i=s.find(".supapress-dropdown");e.each(r,a),n.on("click",function(){var a=e(this),t=a.parents(".supapress-accordion-wrapper"),s=t.find(".svg-right-arrow"),n=t.find(".supapress-accordion-content");"none"===n.css("display")?(n.slideDown(),s.addClass("open"),a.addClass("open")):(n.slideUp(),s.removeClass("open"),a.removeClass("open"))}),e.each(i,function(){$select2=e(this).select2({width:"100%"}),$select2.data("select2").$dropdown?$select2.data("select2").$dropdown.addClass("supapress-select2-drop"):$select2.data("select2").dropdown&&$select2.data("select2").dropdown.addClass("supapress-select2-drop")}),s.find(".upload_image_button").on("click",function(){var a=s.find('input[data-button="'+e(this).attr("id")+'"]'),t=window.send_to_editor;return tb_show("","media-upload.php?type=image&TB_iframe=true"),a.on("change paste keyup",function(){var a=e(this),t=a.siblings(".image-preview"),s=""===e.trim(a.val())?t.attr("data-default-src"):a.val();t.attr("src",s)}),window.send_to_editor=function(s){var n=e("img",s).attr("src");a.val(n).trigger("change"),tb_remove(),window.send_to_editor=t},!1})}})}),supapress.$form.on("submit",function(){var a=!1;supapress.$wrap.find(".book-url .widget_link_pattern").each(function(){var t=e(this),s=t.val(),n=t.parents(".supapress-accordion-content-inner").find(".widget_link_page"),r=new RegExp("^http(s*)://"),i="",l=parseInt(n.val());if(l>0?/%isbn13%/.test(s)===!1?i='Book page URLs must contain an ISBN-13 so we can find your book. Please make sure "%isbn13%" is found in your url patterns.':r.test(s)!==!1?i="Book page URLs should not contain the full URL.":/^\//.test(s)===!1&&(i="Book page URLs must start with a slash"):l===-2&&r.test(s)===!1&&(i="External links should contain the full URL."),i)return supapress.$message.addClass("warning").removeClass("hide"),supapress.$message.find("p").text(i),supapress.$wrap.find('.nav-tab[data-tab="links"]').trigger("click"),a=!0,!1}),supapress.$wrap.find(".retailers .retailer-link ").each(function(){var t=e(this),s=t.find(".widget_retailer_name").val(),n=(t.find(".widget_link_pattern").val(),"");if(""===s.trim()?n="All retailer links require a name.":""===s.trim()&&(n="All retailer links require a link."),n)return supapress.$message.addClass("warning").removeClass("hide"),supapress.$message.find("p").text(n),supapress.$wrap.find('.nav-tab[data-tab="retailer-links"]').trigger("click"),a=!0,!1});var t=supapress.$seoCanonical.val(),s=new RegExp("^http(s*)://"),n="";if(/%isbn13%/.test(t)===!1?n='Canonical URL must contain an ISBN-13 so we can find your book. Please make sure "%isbn13%" is found in your url patterns.':s.test(t)!==!1?n="Canonical URL should not contain the full URL.":/^\//.test(t)===!1&&(n="Canonical URL must start with a slash"),n&&(supapress.$message.addClass("warning").removeClass("hide"),supapress.$message.find("p").text(n),supapress.$wrap.find('.nav-tab[data-tab="seo"]').trigger("click"),a=!0),a===!0)return window.scrollTo(0,0),!1})},e(function(){e("div.supapress-wrap.settings").supapressAdminInit()})}(jQuery);
    22//# sourceMappingURL=scripts.min.js.map
  • supapress/trunk/admin/js/scripts.min.js.map

    r2940680 r3268984  
    1 {"version":3,"sources":["scripts.min.js"],"names":["$","$supapressJQuery","jQuery","noConflict","$wrap","$form","find","$step1","$step2","$message","$element","$selector","$step1NextButton","$widgetTitleWrapper","$widgetTypeWrapper","$widgetTitle","$widgetLayout","$subContentSwitch","$navTab","$navTabContent","$layoutContent","$isbnLookupSource","$isbnLookupBulk","$isbnLookupSourceInputs","$saveButtonWrapper","fadeIn","fadeOut","typeParameter","step2positioning","prependTo","hide","on","$this","this","$label","attr","parent","setTabs","val","setNavContent","hasClass","removeClass","addClass","trigger","$container","selector","each","$elem","show","removeAttr","type","length","filter","prop","getUrlParameter","sParam","sParameterName","i","sPageURL","decodeURIComponent","window","location","search","substring","sURLVariables","split","undefined","$navTabClicked","trim","text","$content","css","$elementParent","parents","$elementArrow","$elementConfig","slideDown","slideUp","scrollTo","click","$isbnList","$price","$retailerLinks","$filters","$sortBy","$perPage","$showPerPage","$perPageInput","$perPageInputButton","$perPageDefault","$asmIsbnLookup","$isbnLookup","$isbnLookupLabel","$lookupCollection","$editCollectionButton","$arrowUpload","$arrowPreview","$clearCacheButton","$addBulkISBNsButton","$addBulkISBNs","isbnLookupAjaxUrl","$supapressAddEditForm","$searchFilterLists","$isbnContainer","asmSelect","addItemTarget","animate","hideWhenAdded","highlight","listType","selectClass","sortable","highlightOutsideContainer","removeLabel","svgUrl","insertBefore","html","sort","a","b","arel","brel","ajax","url","data","ISBNs","replace","dataType","success","isbn13","book","label","title","key","$existingOption","$option","selected","data-isbn","found","remove","append","change","number","alert","keypress","e","which","$perPageSelectedOptions","children","$perPageDefaultSelectedOptions","currentPerPageDefaultValue","select2","value","empty","newOption","$priceLocale","siblings","$retailerLink","$filtersAsm","$sortByAsm","resetButton","filesRemoved","updateMessage","tense","error","console","autocomplete","source","request","response","term","predictive","Array","map","item","id","name","minLength","open","menu","element","autoFocus","focus","event","preventDefault","select","ui","keyCode","Event","details","isbn","test","index","$newOption","filters","collection","values","seo_name","data-seo","catalogId","formfieldId","originalFunction","send_to_editor","tb_show","imgurl","tb_remove","$preview","src","placeholder","parseInt","isNaN","$parents","$slug","$urlPattern","tooltip","tooltipClass","content","callback","position","my","at","collision","using","feedback","vertical","horizontal","appendTo","fn","reorderSelect2Dropdown","is","bt","minimumResultsForSearch","dropdownCssClass","message","level","scrollTop","svg4everybody","supapress","bookUrlOptions","example","trackingPatternOptions","resultCountTextOptions","searchTermTextOptions","insertAtCaret","newText","start","end","before","after","selectionStart","selectionEnd","addAutoComplete","options","_renderItem","ul","shiftKey","relativeLink","regex","$bookUrl","obj","RegExp","supapressAdminInit","$resultCountText","$searchTermText","$seoCanonical","$retailerUpload","$retailers","$retailerLinkFormats","$addNewRetailer","$addNewRetailerLoader","supapressAddAutoComplete","count","$dropdowns","$select2","width","$dropdown","dropdown","$formfield","pattern","page","domainProtocolRegExp","errorMessage","pageVal","$retailerName"],"mappings":"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","file":"scripts.min.js","sourcesContent":["(function($) {\n    var $supapressJQuery = jQuery.noConflict(),\n        $wrap = $supapressJQuery('.supapress-wrap'),\n        $form = $wrap.find('#supapress-add-edit-form'),\n        $step1 = $wrap.find('#step1'),\n        $step2 = $wrap.find('#step2'),\n        $message = $wrap.find('#message'),\n        $element = $wrap.find('.supapress-accordion-header'),\n        $selector = $wrap.find('.elements.nav-tab-content .selector'),\n        $step1NextButton = $wrap.find(\"#step1_next_btn\"),\n        $widgetTitleWrapper = $wrap.find(\".widget-title-wrapper\"),\n        $widgetTypeWrapper = $wrap.find('.widget-type-wrapper'),\n        $widgetTitle = $widgetTitleWrapper.find(\"#widget-title\"),\n        $widgetLayout = $wrap.find('input[name=\"widget_layout\"]'),\n        $subContentSwitch = $wrap.find('.sub-content-toggle'),\n        $navTab = $wrap.find(\".nav-tab\"),\n        $navTabContent = $wrap.find(\".nav-tab-content\"),\n        $layoutContent = $wrap.find(\".layout-content\"),\n        $isbnLookupSource = $wrap.find(\"#lookup_source\"),\n        $isbnLookupBulk = $wrap.find(\"#isbn_lookup_bulk\"),\n        $isbnLookupSourceInputs = $wrap.find(\".lookup-source-input\"),\n        $saveButtonWrapper = $wrap.find('.save-button-wrapper'),\n        fadeIn = true,\n        fadeOut = true,\n        typeParameter = '',\n        step2positioning = function() {\n            $widgetTypeWrapper.prependTo($step2);\n            $widgetTitleWrapper.prependTo($step2).find('p').hide();\n\n            $widgetTypeWrapper.find('input').on('change', function() {\n                var $this = $(this),\n                    $label = $widgetTypeWrapper.find('label[for=\"' + $this.attr('id') + '\"]');\n\n                $label.prependTo($label.parent());\n                $this.prependTo($this.parent());\n\n                // Set tabs\n                setTabs($widgetTypeWrapper.find('input:checked').val());\n\n                // Change tab content\n                setNavContent($navTabContent, $supapressJQuery('.nav-tab-active').attr('data-tab'));\n\n                // Change layout content\n                setNavContent($layoutContent, $supapressJQuery('.widget-layout-wrapper').find('input:checked').attr('data-sub-tab'));\n            });\n\n            $widgetTypeWrapper.find('input').on('click', function() {\n                if($widgetTypeWrapper.hasClass('open')) {\n                    $widgetTypeWrapper.removeClass('open');\n                } else {\n                    $widgetTypeWrapper.addClass('open');\n                }\n            });\n\n            $widgetTypeWrapper.find('input:checked').trigger('change');\n\n            // Set tabs\n            setTabs($widgetTypeWrapper.find('input:checked').val());\n\n            // Change tab content\n            setNavContent($navTabContent, $supapressJQuery('.nav-tab-active').attr('data-tab'));\n\n            // Change layout content\n            setNavContent($layoutContent, $supapressJQuery('.widget-layout-wrapper').find('input:checked').attr('data-sub-tab'));\n        },\n        setNavContent = function($container, selector) {\n            // Loop content wrappers and show the one matching the click tabs data value\n            $container.each(function() {\n                var $this = $(this);\n\n                // If the tab value is found show content\n                if($this.hasClass(selector) && !$this.hasClass('sub-content-wrapper')) {\n                    if(selector === 'elements') {\n                        $selector.find('.supapress-field-wrapper').each(function() {\n                            var $elem = $(this);\n\n                            if(!$elem.hasClass('all-tabs') && !$elem.hasClass($widgetTypeWrapper.find('input:checked').val())) {\n                                $elem.hide().find('input:checked').attr('checked', false);\n                            } else {\n                                $elem.show();\n                            }\n                        });\n                    } else if(selector === 'arrangement') {\n                        $this.find('.widget-layout-wrapper-inner').each(function() {\n                            var $elem = $(this);\n\n                            if($elem.hasClass($widgetTypeWrapper.find('input:checked').val())) {\n                                $elem.show();\n                            } else {\n                                $elem.hide();\n                            }\n                        });\n                    }\n\n                    $this.show();\n                } else {\n                    $this.hide();\n                }\n            });\n\n            // Hide elements not specific to widget type\n            $('.widget-type-specific').each(function() {\n                var $elem = $(this);\n\n                if($elem.hasClass($widgetTypeWrapper.find('input:checked').val())) {\n                    $elem.show();\n\n                    if($elem.hasClass('custom_layout_file')) {\n                        $elem.find('select').removeAttr('disabled');\n                    }\n                } else {\n                    $elem.hide();\n\n                    if($elem.hasClass('custom_layout_file')) {\n                        $elem.find('select').attr('disabled', 'disabled');\n                    }\n                }\n            });\n            \n            // Temporary hack to hide all carousel elements when the widget is not isbn_lookup\n            if($widgetTypeWrapper.find('input:checked').val() !== 'isbn_lookup') {\n                $wrap.find('.carousel.layout-content').hide();\n\n                if($supapressJQuery('.widget-layout-wrapper').find('input:checked').val() === 'carousel') {\n                    $wrap.find('#widget_layout1').trigger('click');\n                }\n            }\n\n            // Turn fade in off as trigger comes from tab change\n            fadeIn = false;\n            // Turn fade out off when switching between module types\n            fadeOut = false;\n\n            // Trigger change to set on page load\n            $subContentSwitch.trigger('change');\n\n            // Turn fade out back on so it works when you click on/off element switches\n            fadeOut = true;\n        },\n        setTabs = function(type) {\n            if(type === 'product_details') {\n                // show arrangement if there are custom templates\n                if(!$wrap.find('.custom_layout_file.product_details').length) {\n                    $wrap.find('.nav-tab[data-tab=\"content\"], .nav-tab[data-tab=\"arrangement\"]').removeClass('nav-tab-active').hide();\n                    $widgetLayout.filter('[value=\"grid\"]').prop('checked', true);\n                } else {\n                    $wrap.find('.nav-tab[data-tab=\"content\"]').removeClass('nav-tab-active').hide();\n                    $wrap.find('.nav-tab[data-tab=\"arrangement\"]').removeClass('nav-tab-active').show();\n                    $widgetLayout.filter('[value=\"custom\"]').prop('checked', true);\n                }\n                $wrap.find('.nav-tab[data-tab=\"elements\"]').addClass('nav-tab-active').show();\n                $wrap.find('.nav-tab[data-tab=\"restrictions\"]').hide();\n            } else if(type === 'search_results') {\n                $wrap.find('.nav-tab').removeClass('nav-tab-active').show();\n                $wrap.find('.nav-tab[data-tab=\"content\"], .nav-tab[data-tab=\"seo\"]').hide();\n                $wrap.find('.nav-tab[data-tab=\"restrictions\"]').show();\n                $wrap.find('.nav-tab[data-tab=\"elements\"]').addClass('nav-tab-active');\n            } else {\n                $wrap.find('.nav-tab').removeClass('nav-tab-active').show();\n                $wrap.find('.nav-tab[data-tab=\"seo\"], .nav-tab[data-tab=\"restrictions\"]').hide();\n                $wrap.find('.nav-tab[data-tab=\"content\"]').addClass('nav-tab-active');\n            }\n        },\n        getUrlParameter = function getUrlParameter(sParam) {\n            var sPageURL = decodeURIComponent(window.location.search.substring(1)),\n                sURLVariables = sPageURL.split('&'),\n                sParameterName,\n                i;\n\n            for (i = 0; i < sURLVariables.length; i++) {\n                sParameterName = sURLVariables[i].split('=');\n\n                if (sParameterName[0] === sParam) {\n                    return sParameterName[1] === undefined ? '' : sParameterName[1];\n                }\n            }\n        };\n\n    // Add click events to navigation tabs\n    $navTab.on('click', function() {\n        var $navTabClicked = $(this),\n            saveButtonWrapperHidden = $saveButtonWrapper.hasClass('hide');\n\n        // Remove and add new active class\n        $navTab.removeClass('nav-tab-active');\n        $navTabClicked.addClass('nav-tab-active');\n\n        // Change tab content\n        setNavContent($navTabContent, $navTabClicked.attr('data-tab'));\n    });\n\n    // Add change event to layout selector\n    $widgetLayout.on('change', function() {\n        // Change tab content\n        setNavContent($layoutContent, $(this).attr('data-sub-tab'));\n    });\n\n    // Trigger change to set on page load\n    setNavContent($layoutContent, $('input[name=\"widget_layout\"]:checked').attr('data-sub-tab'));\n\n    // Add change event to lookup source to show / hide relevant inputs\n    $isbnLookupSource.on('change', function() {\n        $isbnLookupSourceInputs.each(function() {\n            var $this = $(this);\n\n            // If the lookup source value is found show input\n            if($this.hasClass($isbnLookupSource.val())) {\n                $this.show();\n            } else {\n                $this.hide();\n            }\n        });\n    });\n\n    // Trigger change to set on page load\n    $isbnLookupSource.trigger('change');\n\n    // Add click event to next button follow widget title and type selection\n    $step1NextButton.on('click', function() {\n        if($.trim($widgetTitle.val()) === '') {\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please enter a name for your widget');\n        } else {\n            $step1.hide();\n            $step2.show();\n            $message.addClass('hide');\n\n            step2positioning();\n        }\n    });\n\n    // On toggle switch show / hide attached sub content\n    $subContentSwitch.on('change', function() {\n        var $this = $(this),\n            $content = $('div.' + $this.attr('data-sub-content'));\n\n        if($this.prop('checked') && ($content.hasClass($('input[name=\"widget_layout\"]:checked').attr('data-sub-tab')) || $content.hasClass('tab-level'))) {\n            if($content.css('display') === 'none' && fadeIn) {\n                $content.fadeIn();\n            } else {\n                $content.show();\n            }\n        } else {\n            if($content.css('display') !== 'none' && fadeOut) {\n                $content.fadeOut();\n            } else {\n                $content.hide();\n            }\n        }\n\n        // Reset to fade in\n        fadeIn = true;\n    });\n\n    // Show / Hide the config settings for the element\n    $element.on('click', function() {\n        var $this = $(this),\n            $elementParent = $this.parents('.supapress-accordion-wrapper'),\n            $elementArrow = $elementParent.find('.svg-right-arrow'),\n            $elementConfig = $elementParent.find('.supapress-accordion-content');\n\n        if($elementConfig.css('display') === 'none') {\n            $elementConfig.slideDown();\n            $elementArrow.addClass('open');\n            $this.addClass('open');\n        } else {\n            $elementConfig.slideUp();\n            $elementArrow.removeClass('open');\n            $this.removeClass('open');\n        }\n    });\n\n    // Catch form submit for validation checks\n    $form.on('submit', function() {\n        if($.trim($widgetTitle.val()) === '') {\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please enter a name for your widget');\n            return false;\n        } else if($wrap.find('.elements.nav-tab-content .selector input:checked').length === 0) {\n            // Set message\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please choose at least one element to display in your widget.');\n            $wrap.find('.nav-tab[data-tab=\"elements\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;//\n        } else if($widgetTypeWrapper.find('input:checked').val() !== 'product_details' && !$('input[name=\"widget_layout\"]:checked').parents('.widget-layout-wrapper-inner').hasClass($widgetTypeWrapper.find('input:checked').val())) {\n            // 'product_details' check is  temporary until product details has multiple layouts\n            // Set message\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please choose how to display your widget (e.g. Grid or List)');\n            $wrap.find('.nav-tab[data-tab=\"arrangement\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;\n        } else if ($widgetTypeWrapper.find('input:checked').val() === 'isbn_lookup' && $isbnLookupSource.val() === 'bulk' &&  $isbnLookupBulk.val() !== '' ) {\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please use the \"Add ISBN(s)\" button to add your entered ISBN(s) to the list.');\n            $wrap.find('.nav-tab[data-tab=\"content\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;\n        } else if($('input[name=\"widget_layout\"]:checked').val() === 'custom' && !$('#custom_layout_file_' + $('input[name=\"widget_type\"]:checked').val()).val()) {\n            // make sure there is a template selected when Custom is chosen as the layout\n            // Set message\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please select a template for your custom layout');\n            $wrap.find('.nav-tab[data-tab=\"arrangement\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;\n        }\n    });\n\n    // On page load if edit page go to step 2\n    if($wrap.hasClass('edit')) {\n        // Update heading positions\n        step2positioning();\n    }\n\n    // If linked from widget settings type will have been selected already so we need to go straight to step 2\n    typeParameter = getUrlParameter('type');\n    if(typeParameter) {\n        $widgetTypeWrapper.find('input[value=\"' + typeParameter + '\"]').click();\n        $step1.hide();\n        $step2.show();\n        $message.addClass('hide');\n\n        step2positioning();\n    }\n})(jQuery);\n\n(function ($) {\n    var $supapressJQuery = jQuery.noConflict(),\n        $isbnList = $supapressJQuery(\"#isbn_list\"),\n        $price = $supapressJQuery(\"#price\"),\n        $retailerLinks = $supapressJQuery(\"#retailer_links\"),\n        $message = $supapressJQuery(\"#message\"),\n        $filters = $supapressJQuery(\"#filters\"),\n        $sortBy = $supapressJQuery(\"#sort_by\"),\n        $perPage = $supapressJQuery(\"#per_page\"),\n        $showPerPage = $supapressJQuery(\"#show_per_page\"),\n        $perPageInput = $supapressJQuery(\"#per_page_input\"),\n        $perPageInputButton = $supapressJQuery(\"#per_page_input_btn\"),\n        $perPageDefault = $supapressJQuery(\"#per_page_default\"),\n        $asmIsbnLookup = $('.supapress-isbn-lookup-asm'),\n        $isbnLookup = $supapressJQuery(\"#isbn_lookup\"),\n        $isbnLookupLabel = $supapressJQuery(\"#isbn_lookup_label\"),\n        $lookupCollection = $supapressJQuery('#lookup_collection'),\n        $editCollectionButton = $supapressJQuery('.edit-collection-button'),\n        $arrowUpload = $supapressJQuery('.arrow-upload, .placeholder-upload'),\n        $arrowPreview = $supapressJQuery('.show-arrows .image-preview, .lazy-load .image-preview'),\n        $clearCacheButton = $supapressJQuery(\"#supapress-clear-cache-button\"),\n        $addBulkISBNsButton = $supapressJQuery(\"#supapress-add-bulk-isbns-button\"),\n        $addBulkISBNs = $supapressJQuery(\"#isbn_lookup_bulk\"),\n        isbnLookupAjaxUrl = $isbnLookup.attr('data-ajax-url'),\n        $supapressAddEditForm = $supapressJQuery('#supapress-add-edit-form'),\n        $searchFilterLists = $supapressJQuery(\".supapress-search-restriction-list\");\n\n    var $isbnContainer = $isbnList.asmSelect({\n        addItemTarget: 'bottom',\n        animate: false,\n        hideWhenAdded: true,\n        highlight: true,\n        listType: 'ul',\n        selectClass: 'supapress-isbn-lookup-asm',\n        sortable: true,\n        highlightOutsideContainer: true,\n        removeLabel: 'x',\n        svgUrl: $isbnList.attr('data-svg-url')\n    });\n\n    $isbnLookupLabel.insertBefore($asmIsbnLookup);\n    $isbnLookup.insertBefore($asmIsbnLookup);\n\n    // Set price ASM select\n    $price.html($(\"option\", $price).sort(function (a, b) {\n        var arel = $(a).attr('rel');\n        var brel = $(b).attr('rel');\n        return arel == brel ? 0 : arel < brel ? -1 : 1;\n    }));\n\n    $price.asmSelect({\n        addItemTarget: 'bottom',\n        animate: false,\n        hideWhenAdded: true,\n        highlight: true,\n        listType: 'ul',\n        selectClass: 'supapress-dropdown supapress-price-locale-asm supapress-reorder-dropdown',\n        sortable: true,\n        highlightOutsideContainer: false,\n        removeLabel: 'x',\n        svgUrl: $isbnList.attr('data-svg-url')\n    });\n    \n    // Set retailer links ASM select\n    $retailerLinks.html($(\"option\", $retailerLinks).sort(function (a, b) {\n        var arel = $(a).attr('rel');\n        var brel = $(b).attr('rel');\n        return arel == brel ? 0 : arel < brel ? -1 : 1;\n    }));\n\n    $retailerLinks.asmSelect({\n        addItemTarget: 'bottom',\n        animate: false,\n        hideWhenAdded: true,\n        highlight: true,\n        listType: 'ul',\n        selectClass: 'supapress-dropdown supapress-retailer-link-asm supapress-reorder-dropdown',\n        sortable: true,\n        highlightOutsideContainer: false,\n        removeLabel: 'x',\n        svgUrl: $isbnList.attr('data-svg-url')\n    });\n\n    // Look through ISBNs entered by user and add if okay\n    $addBulkISBNsButton.on('click', function () {\n        $.ajax({\n            url: 'admin-ajax.php?action=supapress_bulk_isbn_lookup',\n            type: 'POST',\n            data: {\n                ISBNs: $addBulkISBNs.val().replace(/\\n/g, ',').replace(/ /g, '').replace(/,+/g, ',')\n            },\n            dataType: 'json',\n            success: function (data) {\n                for (var isbn13 in data.ISBNs) {\n                    var book = data.ISBNs[isbn13],\n                        label = book.title + ' (' + isbn13 + ')',\n                        key = isbn13 + '|||' + book.title,\n                        $existingOption = $isbnList.find('option[data-isbn=\"' + isbn13 + '\"]:selected'),\n                        $option = $(\"<option>\").text(label).val(key).attr({\n                            \"selected\": true,\n                            \"data-isbn\": isbn13\n                        });\n\n                    if (book.found === -1) {\n                        $option.addClass('book-not-found');\n                    }\n\n                    if ($existingOption.length === 1) {\n                        $existingOption.remove();\n                    }\n\n                    $isbnList.append($option);\n                }\n\n                $isbnList.change();\n                $addBulkISBNs.val('');\n            }\n        });\n    });\n\n    // Click the per page search filter\n    $perPageInputButton.on('click', function () {\n        var number = $(\"#per_page_input\").val();\n\n        if (number > 100 || number < 1) {\n            alert('Number should be between 1 and 100');\n        } else if ($(\"#per_page option:selected[value='\" + number + \"']\").length) {\n            alert(number + ' has already been set');\n        } else if (number) {\n            $perPageDefault.append($(\"<option></option>\").text(number).attr(\"value\", number));\n            $perPage.append($(\"<option></option>\").text(number).attr(\"selected\", true).attr(\"value\", number)).change();\n        }\n\n        $perPageInput.val('');\n\n        return false;\n    });\n\n    // Allow <enter> to run adding new per page option\n    $perPageInput.keypress(function (e) {\n        if (e.which == 13) {\n            $perPageInputButton.click();\n            return false;\n        }\n    });\n\n    $perPage.asmSelect({\n        addItemTarget: 'bottom',\n        animate: false,\n        hideWhenAdded: true,\n        highlight: true,\n        listType: 'ul',\n        selectClass: 'hide',\n        sortable: true,\n        highlightOutsideContainer: false,\n        removeLabel: 'x',\n        svgUrl: $isbnList.attr('data-svg-url')\n    });\n\n    // Redo the default per page options when change to the per page options\n    $('body').on('change', '#per_page', function () {\n        var $perPageSelectedOptions = $perPage.children(\"option:selected\");\n        var $perPageDefaultSelectedOptions = $perPageDefault.children(\"option\");\n\n        // If no change, return\n        if ($perPageSelectedOptions.length === $perPageDefaultSelectedOptions.length) {\n            return false;\n        }\n\n        // Get current set default value for use later\n        var currentPerPageDefaultValue = $perPageDefault.select2(\"val\");\n\n        // Sort the values into the order we want\n        $perPageSelectedOptions.sort(function (a, b) {\n            a = a.value;\n            b = b.value;\n            return a - b;\n        });\n\n        // Reset dropdown with the default value\n        $perPageDefault.empty().append($(\"<option>\").text(\"No default set\").val(\"\"));\n\n        // Loop through the new ordered values and add to options, selecting if old selected still there\n        $perPageSelectedOptions.each(function () {\n            var newOption = $(\"<option>\").text($(this).val()).val($(this).val());\n            if (currentPerPageDefaultValue === $(this).val()) {\n                newOption.attr(\"selected\", true);\n            }\n            $perPageDefault.append(newOption);\n        });\n\n        // Set value to \"No default set\" when no value set in previous .each, warning if there was a value before\n        if (!$perPageDefault.select2(\"val\")) {\n            // Below is required as the dropdown doesn't highlight correctly if nothing set\n            $perPageDefault.select2(\"val\", \"\");\n            if (currentPerPageDefaultValue) {\n                alert('You have removed the set default value');\n            }\n        }\n    });\n\n    // Set sort by ASM select\n    $perPage.html($(\"option\", $perPage).sort(function (a, b) {\n        var arel = $(a).attr('rel');\n        var brel = $(b).attr('rel');\n        return arel == brel ? 0 : arel < brel ? -1 : 1;\n    }));\n\n    // Move dropdown out of container\n    var $priceLocale = $('.supapress-price-locale-asm');\n    $priceLocale.prependTo($priceLocale.parents('.supapress-field-wrapper'));\n    $priceLocale.siblings('label').prependTo($priceLocale.parents('.supapress-field-wrapper'));\n    \n    var $retailerLink = $('.supapress-retailer-link-asm');\n    $retailerLink.prependTo($retailerLink.parents('.supapress-field-wrapper'));\n    $retailerLink.siblings('label').prependTo($retailerLink.parents('.supapress-field-wrapper'));\n\n    // Set filters ASM select\n    $filters.html($(\"option\", $filters).sort(function (a, b) {\n        var arel = $(a).attr('rel');\n        var brel = $(b).attr('rel');\n        return arel == brel ? 0 : arel < brel ? -1 : 1;\n    }));\n\n    $filters.asmSelect({\n        addItemTarget: 'bottom',\n        animate: false,\n        hideWhenAdded: true,\n        highlight: true,\n        listType: 'ul',\n        selectClass: 'supapress-dropdown supapress-filters-asm supapress-reorder-dropdown',\n        sortable: true,\n        highlightOutsideContainer: false,\n        removeLabel: 'x',\n        svgUrl: $isbnList.attr('data-svg-url')\n    });\n\n    // Move dropdown out of container\n    var $filtersAsm = $('.supapress-filters-asm');\n    $filtersAsm.prependTo($filtersAsm.parents('.supapress-field-wrapper'));\n    $filtersAsm.siblings('label').prependTo($filtersAsm.parents('.supapress-field-wrapper'));\n\n    // Set sort by ASM select\n    $sortBy.html($(\"option\", $sortBy).sort(function (a, b) {\n        var arel = $(a).attr('rel');\n        var brel = $(b).attr('rel');\n        return arel == brel ? 0 : arel < brel ? -1 : 1;\n    }));\n\n    $sortBy.asmSelect({\n        addItemTarget: 'bottom',\n        animate: false,\n        hideWhenAdded: true,\n        highlight: true,\n        listType: 'ul',\n        selectClass: 'supapress-dropdown supapress-sort-by-asm supapress-reorder-dropdown',\n        sortable: true,\n        highlightOutsideContainer: false,\n        removeLabel: 'x',\n        svgUrl: $isbnList.attr('data-svg-url')\n    });\n\n    // Move dropdown out of container\n    var $sortByAsm = $('.supapress-sort-by-asm');\n    $sortByAsm.prependTo($sortByAsm.parents('.supapress-field-wrapper'));\n    $sortByAsm.siblings('label').prependTo($sortByAsm.parents('.supapress-field-wrapper'));\n\n    $clearCacheButton.on('click', function () {\n        if($clearCacheButton.hasClass('disabled')) {\n            return;\n        }\n        var resetButton = function() {\n            $clearCacheButton.removeClass('disabled');\n            $clearCacheButton.css('opacity', 1).text('Clear Cache');\n        };\n        $clearCacheButton.addClass('disabled').css('opacity', 0.2).text('Clearing...');\n\n        $.ajax({\n            url: 'admin-ajax.php?action=supapress_cache_clear',\n            type: 'GET',\n            dataType: 'json',\n            success: function (data) {\n                if (data.filesRemoved === 0) {\n                    $(this).updateMessage('There were no cached files to remove.', 'warning');\n                } else {\n                    var tense = data.filesRemoved === 1 ? ' has' : 's have';\n                    $(this).updateMessage(data.filesRemoved + ' cached file' + tense + ' been removed.', 'success');\n                }\n                resetButton();\n            },\n            error: function(data) {\n                if(console && 'error' in console) {\n                    console.error(data);\n                }\n                resetButton();\n            }\n        });\n    });\n\n\n    // Add predictive\n    $isbnLookup.autocomplete({\n        source: function (request, response) {\n            $.ajax({\n                url: isbnLookupAjaxUrl + '?action=supapress_predictive',\n                type: 'POST',\n                data: {\n                    term: $isbnLookup.val()\n                },\n                success: function (data) {\n                    if (data.predictive !== null && data.predictive instanceof Array) {\n                        response($.map(data.predictive, function (item) {\n                            if (typeof item.id !== 'undefined') {\n                                return {\n                                    label: item.name + ' (' + item.id + ')',\n                                    value: item.id + '|||' + item.name\n                                };\n                            }\n                        }));\n                    }\n\n                    $isbnLookup.removeClass('ui-autocomplete-loading');\n                }\n            });\n        },\n        minLength: 2,\n        open: function () {\n            $(this).data(\"uiAutocomplete\").menu.element.addClass(\"supapress-autocomplete\");\n        },\n        autoFocus: true,\n        focus: function (event) {\n            event.preventDefault();\n        },\n        select: function (event, ui) {\n            $isbnLookup.val(ui.item.value);\n\n            if (typeof event.keyCode === 'undefined' || event.keyCode !== 13) {\n                var e = jQuery.Event('keydown');\n                e.which = e.keyCode = 13;\n                $isbnLookup.trigger(e);\n            }\n\n            event.preventDefault();\n        }\n    });\n\n    $isbnLookup.on('keydown', function (e) {\n        if (e.keyCode === 13) {\n            var details = $isbnLookup.val().split('|||'),\n                $option;\n\n            if (details.length > 1) {\n                var isbn = details[0],\n                    title = details[1];\n\n                if (/^9\\d{12}$/.test(isbn) && $isbnList.find('option[data-isbn=\"' + isbn + '\"]:selected').length === 0) {\n                    $option = $(\"<option>\").text(title + ' (' + isbn + ')').val($isbnLookup.val()).attr({\n                        \"selected\": true,\n                        \"data-isbn\": isbn\n                    });\n                    $isbnList.append($option).change();\n                }\n\n                $isbnLookup.val('').removeClass('ui-autocomplete-loading');\n            } else if (/^9\\d{12}$/.test($isbnLookup.val()) && $isbnList.find('option[data-isbn=\"' + $isbnLookup.val() + '\"]:selected').length === 0) {\n                $.ajax({\n                    url: isbnLookupAjaxUrl + '?action=supapress_isbn_lookup',\n                    type: 'POST',\n                    data: {\n                        isbn: $isbnLookup.val()\n                    },\n                    success: function (data) {\n                        var title,\n                            $option = $(\"<option>\");\n\n                        if (typeof data === 'string') {\n                            title = 'ISBN not found';\n                            $option.addClass('book-not-found');\n                        } else {\n                            title = data.search[0].title;\n                        }\n\n                        $option.text(title + ' (' + $isbnLookup.val() + ')').val($isbnLookup.val() + '|||' + title).attr({\n                            \"selected\": true,\n                            \"data-isbn\": $isbnLookup.val()\n                        });\n\n                        $isbnList.append($option).change();\n                        $isbnLookup.val('').removeClass('ui-autocomplete-loading');\n                    }\n                });\n            } else {\n                $isbnLookup.val('').removeClass('ui-autocomplete-loading');\n            }\n\n            e.preventDefault();\n            return false;\n        }\n    });\n\n    $.each($isbnContainer.find('.book-not-found'), function (index, value) {\n        var $option = $(value),\n            isbn = $option.attr('data-isbn');\n\n        $.ajax({\n            url: isbnLookupAjaxUrl + '?action=supapress_isbn_lookup',\n            type: 'POST',\n            data: {\n                isbn: isbn\n            },\n            success: function (data) {\n                if (typeof data !== 'string') {\n                    var title = data.search[0].title,\n                        $newOption = $(\"<option>\");\n\n                    $newOption.text(title + ' (' + isbn + ')').val(isbn + '|||' + title).attr({\n                        \"selected\": true,\n                        \"data-isbn\": isbn\n                    });\n\n                    $option.remove();\n                    $isbnList.append($newOption).change();\n                }\n            }\n        });\n    });\n\n    if ($lookupCollection.length > 0) {\n        $.ajax({\n            url: isbnLookupAjaxUrl + '?action=supapress_collections',\n            type: 'POST',\n            data: {},\n            success: function (data) {\n                if (typeof data.filters.collection.values !== 'undefined' && data.filters.collection.values !== null) {\n                    var $newOption;\n\n                    $.each(data.filters.collection.values, function (index, value) {\n                        $newOption = $(\"<option>\");\n\n                        $newOption.text(value.name).val(value.seo_name).attr({\n                            \"data-seo\": value.seo_name\n                        });\n\n                        $lookupCollection.append($newOption);\n\n                        if ($lookupCollection.attr('data-value') === value.seo_name) {\n                            $lookupCollection.val(value.seo_name);\n                        }\n                    });\n                }\n\n                if (typeof data.catalogId !== 'undefined' && data.catalogId !== null) {\n                    $lookupCollection.attr('data-catalog-id', data.catalogId);\n\n                    // On change update link to collection\n                    $lookupCollection.on('change', function () {\n                        $editCollectionButton.attr('href', 'https://folio.supadu.com/catalog/' + $lookupCollection.attr('data-catalog-id') + '/collection/' + $lookupCollection.find(\":selected\").attr('data-seo') + '/book');\n                    });\n\n                    // Trigger change to set url on page load\n                    $lookupCollection.trigger('change');\n                }\n            }\n        });\n    }\n\n    $('.upload_image_button').click(function () {\n        var formfieldId = $('input[data-button=\"' + $(this).attr('id') + '\"]').attr('id'),\n            originalFunction = window.send_to_editor;\n\n        tb_show('', 'media-upload.php?type=image&TB_iframe=true');\n\n        window.send_to_editor = function (html) {\n            var imgurl = $('img', html).attr('src');\n            $('#' + formfieldId).val(imgurl).trigger('change');\n            tb_remove();\n            window.send_to_editor = originalFunction;\n        };\n\n        return false;\n    });\n\n    window.send_to_editor = function (html) {\n        var imgurl = $('img', html).attr('src');\n        $('#upload_image').val(imgurl);\n        tb_remove();\n    };\n\n    $arrowUpload.on('change paste keyup', function () {\n        var $this = $(this),\n            $preview = $this.siblings('.image-preview'),\n            src = $.trim($this.val()) === '' ? $preview.attr('data-default-src') : $this.val();\n\n        $preview.attr('src', src);\n    });\n\n    // Trigger on page load to set preview\n    $arrowUpload.trigger('change');\n\n    // Show image upload fields when arrows clicked\n    $arrowPreview.on('click', function () {\n        $(this).siblings('.arrow-upload, .placeholder-upload, .upload-button').css('visibility', 'visible');\n    });\n\n    // Placeholder plugin for IE9 support\n    $('input').placeholder();\n\n    // Force numbers only on inputs\n    $('input.numbers-only').on('keyup', function () {\n        var value = parseInt(this.value.replace(/[^0-9]/g, ''));\n        this.value = isNaN(value) ? '' : value;\n    });\n\n    // Set select to data-value attribute on page load\n    $('select[data-value]').each(function () {\n        var $this = $(this),\n            value = $this.find('option[value=\"' + $this.attr('data-value') + '\"]').length === 0 ? '-1' : $this.attr('data-value');\n\n        $this.val(value);\n    });\n\n    // Show/hide domain slug on Links settings\n    $('.widget_link_page').on('change', function () {\n        var $this = $(this),\n            $parents = $this.parents('.book-url'),\n            $slug = $parents.find('.supapress-domain-slug');\n\n        if ($this.val() < 0) {\n            $slug.addClass('hide');\n        } else {\n            $slug.removeClass('hide');\n        }\n\n        var $urlPattern = $parents.find('.widget_link_pattern');\n        $urlPattern.trigger('change');\n    });\n\n    // Set tooltips\n    $('.supapress-tooltip-wrapper').tooltip({\n        tooltipClass: \"supapress-ui-tooltip\",\n        content: function (callback) {\n            callback($(this).prop('title').replace('<br />', '<br />'));\n        },\n        position: {\n            my: \"center bottom-5\",\n            at: \"center top\",\n            collision: 'none',\n            using: function (position, feedback) {\n                $(this).css(position);\n                $(\"<div>\")\n                    .addClass(\"supapress-tooltip-arrow\")\n                    .addClass(feedback.vertical)\n                    .addClass(feedback.horizontal)\n                    .appendTo(this);\n            }\n        }\n    });\n\n    // When the select2 dropdown is opening (before being displayed) reorder the values. If it is the first value\n    // assume it is the \"Please {do something}\" text and set to blank so it remains as the first element in the <li>\n    $.fn.reorderSelect2Dropdown = function () {\n        var $this = $(this);\n\n        // Only relevant to asmSelect elements which have a new class set\n        if ($this.hasClass('supapress-reorder-dropdown')) {\n            $this.html($(\"option\", $(this)).sort(function (a, b) {\n                var at = $(a).is(':first-child') ? '' : $(a).text(),\n                    bt = $(b).is(':first-child') ? '' : $(b).text();\n                return (at > bt) ? 1 : ( (at < bt) ? -1 : 0 );\n            }));\n\n            // Set first child back to 'selected' state so can't be selected as creates an\n            // empty select option in sortable elements and unselectable last element\n            $this.find(':first-child').attr('selected', true);\n        }\n    };\n\n    // search filter ASM selects\n    $searchFilterLists.each(function () {\n        $(this).asmSelect({\n            addItemTarget: 'bottom',\n            animate: false,\n            hideWhenAdded: true,\n            highlight: true,\n            listType: 'ul',\n            selectClass: 'supapress-dropdown supapress-search-restriction-asm supapress-reorder-dropdown',\n            sortable: true,\n            highlightOutsideContainer: false,\n            removeLabel: 'x',\n            svgUrl: $(this).attr('data-svg-url')\n        });\n    });\n\n    // Move dropdown out of container\n    $('.supapress-search-restriction-asm').each(function () {\n        var $this = $(this);\n        $this.prependTo($this.parents('.supapress-field-wrapper'));\n        $this.siblings('label').prependTo($this.parents('.supapress-field-wrapper'));\n    });\n\n    // Set selects to be styled\n    // $('.supapress-dropdown').select2({\n    //     minimumResultsForSearch: 10\n    // }).on('select2:opening', $(this).reorderSelect2Dropdown);\n\n    $('#bulk-action-selector-top, #bulk-action-selector-bottom').select2({\n        minimumResultsForSearch: 10,\n        dropdownCssClass: 'list-page-select2'\n    });\n\n    $('#widget-type-selector-top, #widget-type-selector-bottom').select2({\n        minimumResultsForSearch: 10,\n        dropdownCssClass: 'list-page-select2'\n    });\n\n    $.fn.updateMessage = function (message, level) {\n        // Remove classes which may be attached to warning - don't want to blanket remove all, i.e. display inline\n        $message.removeClass('success warning updated created deleted error hide');\n        $message.html('<p>' + message + '</p>').addClass(level);\n    };\n\n    // do checks for elements which should be filled in\n    $supapressAddEditForm.on('submit', function () {\n        // look for the per page default setting being filled in\n        if ($showPerPage.is(':checked') && $perPageDefault.val() === '') {\n            $(this).updateMessage('Please choose a default value for \\'search per page\\'', 'warning');\n            $(window).scrollTop(0);\n            return false;\n        }\n        return true;\n    });\n\n    // Enable SVGs for IE\n    svg4everybody();\n})(jQuery);\n(function ($) {\n    window.supapress = window.supapress || {};\n\n    supapress.$wrap = null;\n    supapress.$message = null;\n    supapress.$form = null;\n    supapress.$urlPattern = null;\n    supapress.bookUrlOptions = [\n        { value : \"isbn13\", label : \"ISBN-13\", example : \"9998887770001\" },\n        { value : \"isbn10\", label : \"ISBN-10\", example : \"8765432101\" },\n        { value : \"title\", label : \"Title\", example : \"my-book\" },\n        { value : \"subtitle\", label : \"Subtitle\", example : \"my-book-subtitle\" },\n        { value : \"format\", label : \"Format\", example : \"my-format\" },\n        { value : \"text-title\", label : \"Full Book Title\", example : \"My Book\" },\n        { value : \"author\", label : \"Author\", example : \"my-author\" },\n        { value : \"imprint\", label : \"Imprint\", example : \"my-imprint\" },\n        { value : \"publisher\", label : \"Publisher\", example : \"my-publisher\" },\n        { value : \"description\", label : \"Description\", example : \"my description\" }\n    ];\n    supapress.trackingPatternOptions = [\n        { value : \"isbn13\", label : \"ISBN-13\", example : \"9998887770001\" },\n        { value : \"isbn10\", label : \"ISBN-10\", example : \"8765432101\" },\n        { value : \"title\", label : \"Title\", example : \"my-book\" },\n        { value : \"subtitle\", label : \"Subtitle\", example : \"my-book-subtitle\" },\n        { value : \"format\", label : \"Format\", example : \"my-format\" },\n        { value : \"text-title\", label : \"Full Book Title\", example : \"My Book\" },\n        { value : \"author\", label : \"Author\", example : \"my-author\" },\n        { value : \"imprint\", label : \"Imprint\", example : \"my-imprint\" },\n        { value : \"publisher\", label : \"Publisher\", example : \"my-publisher\" },\n        { value : \"description\", label : \"Description\", example : \"my description\" },\n        { value : \"price_usd\", label : \"Price (full) - USD\", example : \"0.00\" },\n        { value : \"discount_usd\", label : \"Price (discount) - USD\", example : \"0.00\" },\n        { value : \"price_gbp\", label : \"Price (full) - GBP\", example : \"0.00\" },\n        { value : \"discount_gbp\", label : \"Price (discount) - GBP\", example : \"0.00\" },\n        { value : \"price_cad\", label : \"Price (full) - CAD\", example : \"0.00\" },\n        { value : \"discount_cad\", label : \"Price (discount) - CAD\", example : \"0.00\" }\n    ];\n    supapress.resultCountTextOptions = [\n        { value : \"total\", label : \"Total Results\", example : \"100\" },\n        { value : \"pagestart\", label : \"Page Start\", example : \"1\" },\n        { value : \"pageend\", label : \"Page End\", example : \"10\" }\n    ];\n    supapress.searchTermTextOptions = [\n        { value : \"term\", label : \"Search Term\", example : \"Lord of the Rings\" }\n    ];\n\n    $.fn.insertAtCaret = function (newText) {\n        var $this = $(this),\n            start = $this.prop(\"selectionStart\"),\n            end = $this.prop(\"selectionEnd\"),\n            text = $this.val(),\n            before = text.substring(0, start),\n            after  = text.substring(end, text.length);\n\n        $this.val(before + newText + after);\n        $this[0].selectionStart = $this[0].selectionEnd = start + newText.length;\n        $this.focus();\n    };\n\n    $.fn.addAutoComplete = function (options) {\n        var $this = $(this);\n\n        $this.autocomplete({\n            source: options,\n            minLength: 0,\n            open: function() {\n                $(this).data(\"uiAutocomplete\").menu.element.addClass(\"supapress-autocomplete\");\n            },\n            focus: function(event) {\n                event.preventDefault();\n            },\n            select: function(event, ui) {\n                $this.insertAtCaret(ui.item.value + '%');\n                return false;\n            },\n            _renderItem: function(ul, item) {\n                return $(\"<li>\").append(item.label).appendTo(ul);\n            }\n        });\n\n        $this.on('keydown', function(e) {\n            if(e.which === 13) {\n                return false;\n            }\n        });\n\n        $this.on('keyup', function(e) {\n            if(e.shiftKey && e.which === 53) {\n                $this.autocomplete( \"search\", \"\" );\n            }\n        });\n\n        $this.on('change paste keyup', function() {\n            var value = $this.val(),\n                $bookUrl = $this.parents('.book-url'),\n                $retailerLink = $this.parents('.retailer-link'),\n                relativeLink,\n                regex;\n\n            if( (!$bookUrl.length && !$retailerLink.length) || $this.hasClass('no-preview') ) {\n                return;\n            }\n\n            relativeLink = $bookUrl.find('.widget_link_page').val() > 0;\n\n            $.each(options, function(index, obj) {\n                regex = new RegExp(\"%\" + obj.value + \"%\",\"g\");\n                value =  value.replace(regex, obj.example );\n            });\n\n            $this.parents('.book-url').find('.widget_link_preview').html( '<span class=\"placeholder\">' + (relativeLink ? $(\".supapress-domain-slug\").html()  : '') + value +'</span>' );\n            $this.parents('.retailer-link').find('.widget_link_preview').html( '<span class=\"placeholder\">' + value + '</span>' );\n        });\n\n        $this.on('blur', function() {\n            var $this = $(this);\n\n            if($.trim($this.val()) === '' && $this.data('default')) {\n                $this.val($this.data('default'));\n            }\n\n            // clean up book urls, remove any extra slashes except one\n            if ( /\\/$/.test($this.val()) && $this.data('trim-trailing-slash')) {\n                $this.val( $this.val().replace( /\\/{2,}$/, '/') );\n            }\n\n            $this.trigger('change');\n        });\n\n        $this.trigger('blur');\n    };\n\n    $.fn.supapressAdminInit = function () {\n        supapress.$wrap = this;\n        supapress.$message = supapress.$wrap.find('#message');\n        supapress.$form = supapress.$wrap.find('#supapress-settings-form');\n        supapress.$urlPattern = supapress.$wrap.find('.widget_link_pattern');\n        supapress.$resultCountText = $('#supapress-result-count-text');\n        supapress.$searchTermText = $('#supapress-search-term-text');\n        supapress.$seoCanonical = $('#supapress-product-details-seo-canonical');\n        supapress.$retailerUpload = $('.retailer-image-upload');\n        supapress.$retailers = $('.retailer-links .retailers');\n        supapress.$retailerLinkFormats = $('.retailer-links .retailer_link_formats');\n        supapress.$addNewRetailer = $('.retailer-links .add-new-wrapper .add-new-button');\n        supapress.$addNewRetailerLoader = $('.retailer-links .add-new-wrapper .loading-icon');\n\n        var supapressAddAutoComplete = function() {\n            var $this = $(this);\n            var options = $this.hasClass(\"tracking-pattern\") ? \"trackingPatternOptions\" : \"bookUrlOptions\";\n            $this.addAutoComplete(supapress[options]);\n        };\n\n        // Attach autocomplete to each url pattern\n        $.each(supapress.$urlPattern, supapressAddAutoComplete);\n\n        // add autocomplete for the search term message and result count options\n        supapress.$resultCountText.addAutoComplete(supapress.resultCountTextOptions);\n        supapress.$searchTermText.addAutoComplete(supapress.searchTermTextOptions);\n\n        // Set retailer link image preview\n        supapress.$retailerUpload.on('change paste keyup', function() {\n            var $this = $(this),\n                $preview = $this.siblings('.image-preview'),\n                src = $.trim($this.val()) === '' ? $preview.attr('data-default-src') : $this.val();\n\n            $preview.attr('src', src);\n        });\n\n        // On click get new template for retailer link\n        supapress.$addNewRetailer.on('click', function() {\n            supapress.$addNewRetailer.addClass('hide');\n            supapress.$addNewRetailerLoader.removeClass('hide');\n\n            $.ajax({\n                url: 'admin-ajax.php?action=supapress_new_retailer_link',\n                type: 'POST',\n                data: {\n                    count: supapress.$retailerLinkFormats.length\n                },\n                success: function (data) {\n                    supapress.$retailers.append(data);\n                    supapress.$addNewRetailer.removeClass('hide');\n                    supapress.$addNewRetailerLoader.addClass('hide');\n\n                    var $wrap = supapress.$retailers.find('.retailer-link:last-child');\n                    var $element = $wrap.find('.supapress-accordion-header');\n                    var $urlPattern = $wrap.find('.widget_link_pattern');\n                    var $dropdowns = $wrap.find('.supapress-dropdown');\n\n                    $.each($urlPattern, supapressAddAutoComplete);\n\n                    $element.on('click', function() {\n                        var $this = $(this),\n                            $elementParent = $this.parents('.supapress-accordion-wrapper'),\n                            $elementArrow = $elementParent.find('.svg-right-arrow'),\n                            $elementConfig = $elementParent.find('.supapress-accordion-content');\n\n                        if($elementConfig.css('display') === 'none') {\n                            $elementConfig.slideDown();\n                            $elementArrow.addClass('open');\n                            $this.addClass('open');\n                        } else {\n                            $elementConfig.slideUp();\n                            $elementArrow.removeClass('open');\n                            $this.removeClass('open');\n                        }\n                    });\n\n                    $.each($dropdowns, function() {\n                        $select2 = $(this).select2({width: '100%'});\n\n                        if($select2.data('select2').$dropdown) {\n                            $select2.data('select2').$dropdown.addClass(\"supapress-select2-drop\");\n                        } else if($select2.data('select2').dropdown) {\n                            $select2.data('select2').dropdown.addClass(\"supapress-select2-drop\");\n                        }\n                    });\n\n                    $wrap.find('.upload_image_button').on('click', function () {\n                        var $formfield = $wrap.find('input[data-button=\"' + $(this).attr('id') + '\"]'),\n                            originalFunction = window.send_to_editor;\n\n                        tb_show('', 'media-upload.php?type=image&TB_iframe=true');\n\n                        $formfield.on('change paste keyup', function () {\n                            var $this = $(this),\n                                $preview = $this.siblings('.image-preview'),\n                                src = $.trim($this.val()) === '' ? $preview.attr('data-default-src') : $this.val();\n\n                            $preview.attr('src', src);\n                        });\n\n                        window.send_to_editor = function (html) {\n                            var imgurl = $('img', html).attr('src');\n                            $formfield.val(imgurl).trigger('change');\n                            tb_remove();\n                            window.send_to_editor = originalFunction;\n                        };\n\n                        return false;\n                    });\n\n                }\n            });\n        });\n\n        // Catch form submit for validation checks\n        supapress.$form.on('submit', function() {\n            var error = false;\n\n            // validation for book urls\n            supapress.$wrap.find('.book-url .widget_link_pattern').each(function() {\n                var $this = $(this),\n                    pattern = $this.val(),\n                    page = $this.parents('.supapress-accordion-content-inner').find('.widget_link_page'),\n                    domainProtocolRegExp = new RegExp(\"^http(s*):\\/\\/\"),\n                    errorMessage = '',\n                    pageVal = parseInt(page.val());\n\n                if (pageVal > 0) {\n                    if (/%isbn13%/.test(pattern) === false) {\n                        errorMessage = 'Book page URLs must contain an ISBN-13 so we can find your book. Please make sure \"%isbn13%\" is found in your url patterns.';\n                    } else if (domainProtocolRegExp.test(pattern) !== false) {\n                        errorMessage = 'Book page URLs should not contain the full URL.';\n                    } else if (/^\\//.test(pattern) === false) {\n                        errorMessage = 'Book page URLs must start with a slash';\n                    }\n                } else if (pageVal === -2 && domainProtocolRegExp.test(pattern) === false) {\n                    errorMessage = 'External links should contain the full URL.';\n                }\n\n                if (errorMessage) {\n                    supapress.$message.addClass('warning').removeClass('hide');\n                    supapress.$message.find('p').text(errorMessage);\n                    supapress.$wrap.find('.nav-tab[data-tab=\"links\"]').trigger('click');\n                    error = true;\n                    return false;\n                }\n            });\n\n            // validation for retailer links\n            supapress.$wrap.find('.retailers .retailer-link ').each(function() {\n                var $this = $(this),\n                    $retailerName =  $this.find('.widget_retailer_name').val(),\n                    $retailerLinkPattern = $this.find('.widget_link_pattern').val(),\n                    errorMessage = '';\n\n                if ($retailerName.trim() === \"\") {\n                    errorMessage = 'All retailer links require a name.';\n                } else if ($retailerName.trim() === \"\") {\n                    errorMessage = 'All retailer links require a link.';\n                }\n\n                if (errorMessage) {\n                    supapress.$message.addClass('warning').removeClass('hide');\n                    supapress.$message.find('p').text(errorMessage);\n                    supapress.$wrap.find('.nav-tab[data-tab=\"retailer-links\"]').trigger('click');\n                    error = true;\n                    return false;\n                }\n\n            });\n\n            // validation for canonical\n            var pattern = supapress.$seoCanonical.val(),\n                domainProtocolRegExp = new RegExp(\"^http(s*):\\/\\/\"),\n                errorMessage = '';\n\n            if (/%isbn13%/.test(pattern) === false) {\n                errorMessage = 'Canonical URL must contain an ISBN-13 so we can find your book. Please make sure \"%isbn13%\" is found in your url patterns.';\n            } else if (domainProtocolRegExp.test(pattern) !== false) {\n                errorMessage = 'Canonical URL should not contain the full URL.';\n            } else if (/^\\//.test(pattern) === false) {\n                errorMessage = 'Canonical URL must start with a slash';\n            }\n\n            if (errorMessage) {\n                supapress.$message.addClass('warning').removeClass('hide');\n                supapress.$message.find('p').text(errorMessage);\n                supapress.$wrap.find('.nav-tab[data-tab=\"seo\"]').trigger('click');\n                error = true;\n            }\n\n            if(error === true) {\n                window.scrollTo(0, 0);\n                return false;\n            }\n        });\n\n    };\n\n    $(function() {\n        $('div.supapress-wrap.settings').supapressAdminInit();\n    });\n})(jQuery);\n"]}
     1{"version":3,"sources":["scripts.min.js"],"names":["$","$supapressJQuery","jQuery","noConflict","$wrap","$form","find","$step1","$step2","$message","$element","$selector","$step1NextButton","$widgetTitleWrapper","$widgetTypeWrapper","$widgetTitle","$widgetLayout","$subContentSwitch","$navTab","$navTabContent","$layoutContent","$isbnLookupSource","$isbnLookupBulk","$isbnLookupSourceInputs","$saveButtonWrapper","fadeIn","fadeOut","typeParameter","step2positioning","prependTo","hide","on","$this","this","$label","attr","parent","setTabs","val","setNavContent","hasClass","removeClass","addClass","trigger","$container","selector","each","$elem","show","removeAttr","type","length","filter","prop","getUrlParameter","sParam","sParameterName","i","sPageURL","decodeURIComponent","window","location","search","substring","sURLVariables","split","undefined","$navTabClicked","trim","text","$content","css","$elementParent","parents","$elementArrow","$elementConfig","slideDown","slideUp","scrollTo","click","$isbnList","$price","$retailerLinks","$filters","$sortBy","$perPage","$showPerPage","$perPageInput","$perPageInputButton","$perPageDefault","$asmIsbnLookup","$isbnLookup","$isbnLookupLabel","$lookupCollection","$editCollectionButton","$arrowUpload","$arrowPreview","$clearCacheButton","$addBulkISBNsButton","$addBulkISBNs","isbnLookupAjaxUrl","$supapressAddEditForm","$searchFilterLists","$isbnContainer","asmSelect","addItemTarget","animate","hideWhenAdded","highlight","listType","selectClass","sortable","highlightOutsideContainer","removeLabel","svgUrl","insertBefore","html","sort","a","b","arel","brel","ajax","url","data","ISBNs","replace","dataType","success","isbn13","book","label","title","key","$existingOption","$option","selected","data-isbn","found","remove","append","change","number","alert","keypress","e","which","$perPageSelectedOptions","children","$perPageDefaultSelectedOptions","currentPerPageDefaultValue","select2","value","empty","newOption","$priceLocale","siblings","$retailerLink","$filtersAsm","$sortByAsm","resetButton","filesRemoved","updateMessage","tense","error","console","autocomplete","source","request","response","term","predictive","Array","map","item","id","name","minLength","open","menu","element","autoFocus","focus","event","preventDefault","select","ui","keyCode","Event","details","isbn","test","index","$newOption","filters","collection","values","seo_name","data-seo","catalogId","formfieldId","originalFunction","send_to_editor","tb_show","imgurl","tb_remove","$preview","src","placeholder","parseInt","isNaN","$parents","$slug","$urlPattern","tooltip","tooltipClass","content","callback","position","my","at","collision","using","feedback","vertical","horizontal","appendTo","fn","reorderSelect2Dropdown","is","bt","minimumResultsForSearch","dropdownCssClass","message","level","scrollTop","svg4everybody","supapress","bookUrlOptions","example","trackingPatternOptions","resultCountTextOptions","searchTermTextOptions","insertAtCaret","newText","start","end","before","after","selectionStart","selectionEnd","addAutoComplete","options","_renderItem","ul","shiftKey","relativeLink","regex","$bookUrl","obj","RegExp","supapressAdminInit","$resultCountText","$searchTermText","$seoCanonical","$retailerUpload","$retailers","$retailerLinkFormats","$addNewRetailer","$addNewRetailerLoader","supapressAddAutoComplete","count","$dropdowns","$select2","width","$dropdown","dropdown","$formfield","pattern","page","domainProtocolRegExp","errorMessage","pageVal","$retailerName"],"mappings":"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","file":"scripts.min.js","sourcesContent":["(function($) {\n    var $supapressJQuery = jQuery.noConflict(),\n        $wrap = $supapressJQuery('.supapress-wrap'),\n        $form = $wrap.find('#supapress-add-edit-form'),\n        $step1 = $wrap.find('#step1'),\n        $step2 = $wrap.find('#step2'),\n        $message = $wrap.find('#message'),\n        $element = $wrap.find('.supapress-accordion-header'),\n        $selector = $wrap.find('.elements.nav-tab-content .selector'),\n        $step1NextButton = $wrap.find(\"#step1_next_btn\"),\n        $widgetTitleWrapper = $wrap.find(\".widget-title-wrapper\"),\n        $widgetTypeWrapper = $wrap.find('.widget-type-wrapper'),\n        $widgetTitle = $widgetTitleWrapper.find(\"#widget-title\"),\n        $widgetLayout = $wrap.find('input[name=\"widget_layout\"]'),\n        $subContentSwitch = $wrap.find('.sub-content-toggle'),\n        $navTab = $wrap.find(\".nav-tab\"),\n        $navTabContent = $wrap.find(\".nav-tab-content\"),\n        $layoutContent = $wrap.find(\".layout-content\"),\n        $isbnLookupSource = $wrap.find(\"#lookup_source\"),\n        $isbnLookupBulk = $wrap.find(\"#isbn_lookup_bulk\"),\n        $isbnLookupSourceInputs = $wrap.find(\".lookup-source-input\"),\n        $saveButtonWrapper = $wrap.find('.save-button-wrapper'),\n        fadeIn = true,\n        fadeOut = true,\n        typeParameter = '',\n        step2positioning = function() {\n            $widgetTypeWrapper.prependTo($step2);\n            $widgetTitleWrapper.prependTo($step2).find('p').hide();\n\n            $widgetTypeWrapper.find('input').on('change', function() {\n                var $this = $(this),\n                    $label = $widgetTypeWrapper.find('label[for=\"' + $this.attr('id') + '\"]');\n\n                $label.prependTo($label.parent());\n                $this.prependTo($this.parent());\n\n                // Set tabs\n                setTabs($widgetTypeWrapper.find('input:checked').val());\n\n                // Change tab content\n                setNavContent($navTabContent, $supapressJQuery('.nav-tab-active').attr('data-tab'));\n\n                // Change layout content\n                setNavContent($layoutContent, $supapressJQuery('.widget-layout-wrapper').find('input:checked').attr('data-sub-tab'));\n            });\n\n            $widgetTypeWrapper.find('input').on('click', function() {\n                if($widgetTypeWrapper.hasClass('open')) {\n                    $widgetTypeWrapper.removeClass('open');\n                } else {\n                    $widgetTypeWrapper.addClass('open');\n                }\n            });\n\n            $widgetTypeWrapper.find('input:checked').trigger('change');\n\n            // Set tabs\n            setTabs($widgetTypeWrapper.find('input:checked').val());\n\n            // Change tab content\n            setNavContent($navTabContent, $supapressJQuery('.nav-tab-active').attr('data-tab'));\n\n            // Change layout content\n            setNavContent($layoutContent, $supapressJQuery('.widget-layout-wrapper').find('input:checked').attr('data-sub-tab'));\n        },\n        setNavContent = function($container, selector) {\n            // Loop content wrappers and show the one matching the click tabs data value\n            $container.each(function() {\n                var $this = $(this);\n\n                // If the tab value is found show content\n                if($this.hasClass(selector) && !$this.hasClass('sub-content-wrapper')) {\n                    if(selector === 'elements') {\n                        $selector.find('.supapress-field-wrapper').each(function() {\n                            var $elem = $(this);\n\n                            if(!$elem.hasClass('all-tabs') && !$elem.hasClass($widgetTypeWrapper.find('input:checked').val())) {\n                                $elem.hide().find('input:checked').attr('checked', false);\n                            } else {\n                                $elem.show();\n                            }\n                        });\n                    } else if(selector === 'arrangement') {\n                        $this.find('.widget-layout-wrapper-inner').each(function() {\n                            var $elem = $(this);\n\n                            if($elem.hasClass($widgetTypeWrapper.find('input:checked').val())) {\n                                $elem.show();\n                            } else {\n                                $elem.hide();\n                            }\n                        });\n                    }\n\n                    $this.show();\n                } else {\n                    $this.hide();\n                }\n            });\n\n            // Hide elements not specific to widget type\n            $('.widget-type-specific').each(function() {\n                var $elem = $(this);\n\n                if($elem.hasClass($widgetTypeWrapper.find('input:checked').val())) {\n                    $elem.show();\n\n                    if($elem.hasClass('custom_layout_file')) {\n                        $elem.find('select').removeAttr('disabled');\n                    }\n                } else {\n                    $elem.hide();\n\n                    if($elem.hasClass('custom_layout_file')) {\n                        $elem.find('select').attr('disabled', 'disabled');\n                    }\n                }\n            });\n            \n            // Temporary hack to hide all carousel elements when the widget is not isbn_lookup\n            if($widgetTypeWrapper.find('input:checked').val() !== 'isbn_lookup') {\n                $wrap.find('.carousel.layout-content').hide();\n\n                if($supapressJQuery('.widget-layout-wrapper').find('input:checked').val() === 'carousel') {\n                    $wrap.find('#widget_layout1').trigger('click');\n                }\n            }\n\n            // Turn fade in off as trigger comes from tab change\n            fadeIn = false;\n            // Turn fade out off when switching between module types\n            fadeOut = false;\n\n            // Trigger change to set on page load\n            $subContentSwitch.trigger('change');\n\n            // Turn fade out back on so it works when you click on/off element switches\n            fadeOut = true;\n        },\n        setTabs = function(type) {\n            if(type === 'product_details') {\n                // show arrangement if there are custom templates\n                if(!$wrap.find('.custom_layout_file.product_details').length) {\n                    $wrap.find('.nav-tab[data-tab=\"content\"], .nav-tab[data-tab=\"arrangement\"]').removeClass('nav-tab-active').hide();\n                    $widgetLayout.filter('[value=\"grid\"]').prop('checked', true);\n                } else {\n                    $wrap.find('.nav-tab[data-tab=\"content\"]').removeClass('nav-tab-active').hide();\n                    $wrap.find('.nav-tab[data-tab=\"arrangement\"]').removeClass('nav-tab-active').show();\n                    $widgetLayout.filter('[value=\"custom\"]').prop('checked', true);\n                }\n                $wrap.find('.nav-tab[data-tab=\"elements\"]').addClass('nav-tab-active').show();\n                $wrap.find('.nav-tab[data-tab=\"restrictions\"]').hide();\n            } else if(type === 'search_results') {\n                $wrap.find('.nav-tab').removeClass('nav-tab-active').show();\n                $wrap.find('.nav-tab[data-tab=\"content\"], .nav-tab[data-tab=\"seo\"]').hide();\n                $wrap.find('.nav-tab[data-tab=\"restrictions\"]').show();\n                $wrap.find('.nav-tab[data-tab=\"elements\"]').addClass('nav-tab-active');\n            } else {\n                $wrap.find('.nav-tab').removeClass('nav-tab-active').show();\n                $wrap.find('.nav-tab[data-tab=\"seo\"], .nav-tab[data-tab=\"restrictions\"]').hide();\n                $wrap.find('.nav-tab[data-tab=\"content\"]').addClass('nav-tab-active');\n            }\n        },\n        getUrlParameter = function getUrlParameter(sParam) {\n            var sPageURL = decodeURIComponent(window.location.search.substring(1)),\n                sURLVariables = sPageURL.split('&'),\n                sParameterName,\n                i;\n\n            for (i = 0; i < sURLVariables.length; i++) {\n                sParameterName = sURLVariables[i].split('=');\n\n                if (sParameterName[0] === sParam) {\n                    return sParameterName[1] === undefined ? '' : sParameterName[1];\n                }\n            }\n        };\n\n    // Add click events to navigation tabs\n    $navTab.on('click', function() {\n        var $navTabClicked = $(this),\n            saveButtonWrapperHidden = $saveButtonWrapper.hasClass('hide');\n\n        // Remove and add new active class\n        $navTab.removeClass('nav-tab-active');\n        $navTabClicked.addClass('nav-tab-active');\n\n        // Change tab content\n        setNavContent($navTabContent, $navTabClicked.attr('data-tab'));\n    });\n\n    // Add change event to layout selector\n    $widgetLayout.on('change', function() {\n        // Change tab content\n        setNavContent($layoutContent, $(this).attr('data-sub-tab'));\n    });\n\n    // Trigger change to set on page load\n    setNavContent($layoutContent, $('input[name=\"widget_layout\"]:checked').attr('data-sub-tab'));\n\n    // Add change event to lookup source to show / hide relevant inputs\n    $isbnLookupSource.on('change', function() {\n        $isbnLookupSourceInputs.each(function() {\n            var $this = $(this);\n\n            // If the lookup source value is found show input\n            if($this.hasClass($isbnLookupSource.val())) {\n                $this.show();\n            } else {\n                $this.hide();\n            }\n        });\n    });\n\n    // Trigger change to set on page load\n    $isbnLookupSource.trigger('change');\n\n    // Add click event to next button follow widget title and type selection\n    $step1NextButton.on('click', function() {\n        if($.trim($widgetTitle.val()) === '') {\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please enter a name for your widget');\n        } else {\n            $step1.hide();\n            $step2.show();\n            $message.addClass('hide');\n\n            step2positioning();\n        }\n    });\n\n    // On toggle switch show / hide attached sub content\n    $subContentSwitch.on('change', function() {\n        var $this = $(this),\n            $content = $('div.' + $this.attr('data-sub-content'));\n\n        if($this.prop('checked') && ($content.hasClass($('input[name=\"widget_layout\"]:checked').attr('data-sub-tab')) || $content.hasClass('tab-level'))) {\n            if($content.css('display') === 'none' && fadeIn) {\n                $content.fadeIn();\n            } else {\n                $content.show();\n            }\n        } else {\n            if($content.css('display') !== 'none' && fadeOut) {\n                $content.fadeOut();\n            } else {\n                $content.hide();\n            }\n        }\n\n        // Reset to fade in\n        fadeIn = true;\n    });\n\n    // Show / Hide the config settings for the element\n    $element.on('click', function() {\n        var $this = $(this),\n            $elementParent = $this.parents('.supapress-accordion-wrapper'),\n            $elementArrow = $elementParent.find('.svg-right-arrow'),\n            $elementConfig = $elementParent.find('.supapress-accordion-content');\n\n        if($elementConfig.css('display') === 'none') {\n            $elementConfig.slideDown();\n            $elementArrow.addClass('open');\n            $this.addClass('open');\n        } else {\n            $elementConfig.slideUp();\n            $elementArrow.removeClass('open');\n            $this.removeClass('open');\n        }\n    });\n\n    // Catch form submit for validation checks\n    $form.on('submit', function() {\n        if($.trim($widgetTitle.val()) === '') {\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please enter a name for your widget');\n            return false;\n        } else if($wrap.find('.elements.nav-tab-content .selector input:checked').length === 0) {\n            // Set message\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please choose at least one element to display in your widget.');\n            $wrap.find('.nav-tab[data-tab=\"elements\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;//\n        } else if($widgetTypeWrapper.find('input:checked').val() !== 'product_details' && !$('input[name=\"widget_layout\"]:checked').parents('.widget-layout-wrapper-inner').hasClass($widgetTypeWrapper.find('input:checked').val())) {\n            // 'product_details' check is  temporary until product details has multiple layouts\n            // Set message\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please choose how to display your widget (e.g. Grid or List)');\n            $wrap.find('.nav-tab[data-tab=\"arrangement\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;\n        } else if ($widgetTypeWrapper.find('input:checked').val() === 'isbn_lookup' && $isbnLookupSource.val() === 'bulk' &&  $isbnLookupBulk.val() !== '' ) {\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please use the \"Add ISBN(s)\" button to add your entered ISBN(s) to the list.');\n            $wrap.find('.nav-tab[data-tab=\"content\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;\n        } else if($('input[name=\"widget_layout\"]:checked').val() === 'custom' && !$('#custom_layout_file_' + $('input[name=\"widget_type\"]:checked').val()).val()) {\n            // make sure there is a template selected when Custom is chosen as the layout\n            // Set message\n            $message.addClass('warning').removeClass('hide');\n            $message.find('p').text('Please select a template for your custom layout');\n            $wrap.find('.nav-tab[data-tab=\"arrangement\"]').trigger('click');\n            // Block the submission and scroll to the top to display the warning\n            window.scrollTo(0, 0);\n            return false;\n        }\n    });\n\n    // On page load if edit page go to step 2\n    if($wrap.hasClass('edit')) {\n        // Update heading positions\n        step2positioning();\n    }\n\n    // If linked from widget settings type will have been selected already so we need to go straight to step 2\n    typeParameter = getUrlParameter('type');\n    if(typeParameter) {\n        $widgetTypeWrapper.find('input[value=\"' + typeParameter + '\"]').click();\n        $step1.hide();\n        $step2.show();\n        $message.addClass('hide');\n\n        step2positioning();\n    }\n})(jQuery);\n\n(function ($) {\n  var $supapressJQuery = jQuery.noConflict(),\n      $isbnList = $supapressJQuery(\"#isbn_list\"),\n      $price = $supapressJQuery(\"#price\"),\n      $retailerLinks = $supapressJQuery(\"#retailer_links\"),\n      $message = $supapressJQuery(\"#message\"),\n      $filters = $supapressJQuery(\"#filters\"),\n      $sortBy = $supapressJQuery(\"#sort_by\"),\n      $perPage = $supapressJQuery(\"#per_page\"),\n      $showPerPage = $supapressJQuery(\"#show_per_page\"),\n      $perPageInput = $supapressJQuery(\"#per_page_input\"),\n      $perPageInputButton = $supapressJQuery(\"#per_page_input_btn\"),\n      $perPageDefault = $supapressJQuery(\"#per_page_default\"),\n      $asmIsbnLookup = $('.supapress-isbn-lookup-asm'),\n      $isbnLookup = $supapressJQuery(\"#isbn_lookup\"),\n      $isbnLookupLabel = $supapressJQuery(\"#isbn_lookup_label\"),\n      $lookupCollection = $supapressJQuery('#lookup_collection'),\n      $editCollectionButton = $supapressJQuery('.edit-collection-button'),\n      $arrowUpload = $supapressJQuery('.arrow-upload, .placeholder-upload'),\n      $arrowPreview = $supapressJQuery('.show-arrows .image-preview, .lazy-load .image-preview'),\n      $clearCacheButton = $supapressJQuery(\"#supapress-clear-cache-button\"),\n      $addBulkISBNsButton = $supapressJQuery(\"#supapress-add-bulk-isbns-button\"),\n      $addBulkISBNs = $supapressJQuery(\"#isbn_lookup_bulk\"),\n      isbnLookupAjaxUrl = $isbnLookup.attr('data-ajax-url'),\n      $supapressAddEditForm = $supapressJQuery('#supapress-add-edit-form'),\n      $searchFilterLists = $supapressJQuery(\".supapress-search-restriction-list\");\n\n  var $isbnContainer = $isbnList.asmSelect({\n      addItemTarget: 'bottom',\n      animate: false,\n      hideWhenAdded: true,\n      highlight: true,\n      listType: 'ul',\n      selectClass: 'supapress-isbn-lookup-asm',\n      sortable: true,\n      highlightOutsideContainer: true,\n      removeLabel: 'x',\n      svgUrl: $isbnList.attr('data-svg-url')\n  });\n\n  $isbnLookupLabel.insertBefore($asmIsbnLookup);\n  $isbnLookup.insertBefore($asmIsbnLookup);\n\n  // Set price ASM select\n  $price.html($(\"option\", $price).sort(function (a, b) {\n      var arel = $(a).attr('rel');\n      var brel = $(b).attr('rel');\n      return arel == brel ? 0 : arel < brel ? -1 : 1;\n  }));\n\n  $price.asmSelect({\n      addItemTarget: 'bottom',\n      animate: false,\n      hideWhenAdded: true,\n      highlight: true,\n      listType: 'ul',\n      selectClass: 'supapress-dropdown supapress-price-locale-asm supapress-reorder-dropdown',\n      sortable: true,\n      highlightOutsideContainer: false,\n      removeLabel: 'x',\n      svgUrl: $isbnList.attr('data-svg-url')\n  });\n  \n  // Set retailer links ASM select\n  $retailerLinks.html($(\"option\", $retailerLinks).sort(function (a, b) {\n      var arel = $(a).attr('rel');\n      var brel = $(b).attr('rel');\n      return arel == brel ? 0 : arel < brel ? -1 : 1;\n  }));\n\n  $retailerLinks.asmSelect({\n      addItemTarget: 'bottom',\n      animate: false,\n      hideWhenAdded: true,\n      highlight: true,\n      listType: 'ul',\n      selectClass: 'supapress-dropdown supapress-retailer-link-asm supapress-reorder-dropdown',\n      sortable: true,\n      highlightOutsideContainer: false,\n      removeLabel: 'x',\n      svgUrl: $isbnList.attr('data-svg-url')\n  });\n\n  // Look through ISBNs entered by user and add if okay\n  $addBulkISBNsButton.on('click', function () {\n      $.ajax({\n          url: 'admin-ajax.php?action=supapress_bulk_isbn_lookup',\n          type: 'POST',\n          data: {\n              ISBNs: $addBulkISBNs.val().replace(/\\n/g, ',').replace(/ /g, '').replace(/,+/g, ',')\n          },\n          dataType: 'json',\n          success: function (data) {\n              for (var isbn13 in data.ISBNs) {\n                  var book = data.ISBNs[isbn13],\n                      label = book.title + ' (' + isbn13 + ')',\n                      key = isbn13 + '|||' + book.title,\n                      $existingOption = $isbnList.find('option[data-isbn=\"' + isbn13 + '\"]:selected'),\n                      $option = $(\"<option>\").text(label).val(key).attr({\n                          \"selected\": true,\n                          \"data-isbn\": isbn13\n                      });\n\n                  if (book.found === -1) {\n                      $option.addClass('book-not-found');\n                  }\n\n                  if ($existingOption.length === 1) {\n                      $existingOption.remove();\n                  }\n\n                  $isbnList.append($option);\n              }\n\n              $isbnList.change();\n              $addBulkISBNs.val('');\n          }\n      });\n  });\n\n  // Click the per page search filter\n  $perPageInputButton.on('click', function () {\n      var number = $(\"#per_page_input\").val();\n\n      if (number > 100 || number < 1) {\n          alert('Number should be between 1 and 100');\n      } else if ($(\"#per_page option:selected[value='\" + number + \"']\").length) {\n          alert(number + ' has already been set');\n      } else if (number) {\n          $perPageDefault.append($(\"<option></option>\").text(number).attr(\"value\", number));\n          $perPage.append($(\"<option></option>\").text(number).attr(\"selected\", true).attr(\"value\", number)).change();\n      }\n\n      $perPageInput.val('');\n\n      return false;\n  });\n\n  // Allow <enter> to run adding new per page option\n  $perPageInput.keypress(function (e) {\n      if (e.which == 13) {\n          $perPageInputButton.click();\n          return false;\n      }\n  });\n\n  $perPage.asmSelect({\n      addItemTarget: 'bottom',\n      animate: false,\n      hideWhenAdded: true,\n      highlight: true,\n      listType: 'ul',\n      selectClass: 'hide',\n      sortable: true,\n      highlightOutsideContainer: false,\n      removeLabel: 'x',\n      svgUrl: $isbnList.attr('data-svg-url')\n  });\n\n  // Redo the default per page options when change to the per page options\n  $('body').on('change', '#per_page', function () {\n      var $perPageSelectedOptions = $perPage.children(\"option:selected\");\n      var $perPageDefaultSelectedOptions = $perPageDefault.children(\"option\");\n\n      // If no change, return\n      if ($perPageSelectedOptions.length === $perPageDefaultSelectedOptions.length) {\n          return false;\n      }\n\n      // Get current set default value for use later\n      var currentPerPageDefaultValue = $perPageDefault.select2(\"val\");\n\n      // Sort the values into the order we want\n      $perPageSelectedOptions.sort(function (a, b) {\n          a = a.value;\n          b = b.value;\n          return a - b;\n      });\n\n      // Reset dropdown with the default value\n      $perPageDefault.empty().append($(\"<option>\").text(\"No default set\").val(\"\"));\n\n      // Loop through the new ordered values and add to options, selecting if old selected still there\n      $perPageSelectedOptions.each(function () {\n          var newOption = $(\"<option>\").text($(this).val()).val($(this).val());\n          if (currentPerPageDefaultValue === $(this).val()) {\n              newOption.attr(\"selected\", true);\n          }\n          $perPageDefault.append(newOption);\n      });\n\n      // Set value to \"No default set\" when no value set in previous .each, warning if there was a value before\n      if (!$perPageDefault.select2(\"val\")) {\n          // Below is required as the dropdown doesn't highlight correctly if nothing set\n          $perPageDefault.select2(\"val\", \"\");\n          if (currentPerPageDefaultValue) {\n              alert('You have removed the set default value');\n          }\n      }\n  });\n\n  // Set sort by ASM select\n  $perPage.html($(\"option\", $perPage).sort(function (a, b) {\n      var arel = $(a).attr('rel');\n      var brel = $(b).attr('rel');\n      return arel == brel ? 0 : arel < brel ? -1 : 1;\n  }));\n\n  // Move dropdown out of container\n  var $priceLocale = $('.supapress-price-locale-asm');\n  $priceLocale.prependTo($priceLocale.parents('.supapress-field-wrapper'));\n  $priceLocale.siblings('label').prependTo($priceLocale.parents('.supapress-field-wrapper'));\n  \n  var $retailerLink = $('.supapress-retailer-link-asm');\n  $retailerLink.prependTo($retailerLink.parents('.supapress-field-wrapper'));\n  $retailerLink.siblings('label').prependTo($retailerLink.parents('.supapress-field-wrapper'));\n\n  // Set filters ASM select\n  $filters.html($(\"option\", $filters).sort(function (a, b) {\n      var arel = $(a).attr('rel');\n      var brel = $(b).attr('rel');\n      return arel == brel ? 0 : arel < brel ? -1 : 1;\n  }));\n\n  $filters.asmSelect({\n      addItemTarget: 'bottom',\n      animate: false,\n      hideWhenAdded: true,\n      highlight: true,\n      listType: 'ul',\n      selectClass: 'supapress-dropdown supapress-filters-asm supapress-reorder-dropdown',\n      sortable: true,\n      highlightOutsideContainer: false,\n      removeLabel: 'x',\n      svgUrl: $isbnList.attr('data-svg-url')\n  });\n\n  // Move dropdown out of container\n  var $filtersAsm = $('.supapress-filters-asm');\n  $filtersAsm.prependTo($filtersAsm.parents('.supapress-field-wrapper'));\n  $filtersAsm.siblings('label').prependTo($filtersAsm.parents('.supapress-field-wrapper'));\n\n  // Set sort by ASM select\n  $sortBy.html($(\"option\", $sortBy).sort(function (a, b) {\n      var arel = $(a).attr('rel');\n      var brel = $(b).attr('rel');\n      return arel == brel ? 0 : arel < brel ? -1 : 1;\n  }));\n\n  $sortBy.asmSelect({\n      addItemTarget: 'bottom',\n      animate: false,\n      hideWhenAdded: true,\n      highlight: true,\n      listType: 'ul',\n      selectClass: 'supapress-dropdown supapress-sort-by-asm supapress-reorder-dropdown',\n      sortable: true,\n      highlightOutsideContainer: false,\n      removeLabel: 'x',\n      svgUrl: $isbnList.attr('data-svg-url')\n  });\n\n  // Move dropdown out of container\n  var $sortByAsm = $('.supapress-sort-by-asm');\n  $sortByAsm.prependTo($sortByAsm.parents('.supapress-field-wrapper'));\n  $sortByAsm.siblings('label').prependTo($sortByAsm.parents('.supapress-field-wrapper'));\n\n  $clearCacheButton.on('click', function () {\n      if($clearCacheButton.hasClass('disabled')) {\n          return;\n      }\n      var resetButton = function() {\n          $clearCacheButton.removeClass('disabled');\n          $clearCacheButton.css('opacity', 1).text('Clear Cache');\n      };\n      $clearCacheButton.addClass('disabled').css('opacity', 0.2).text('Clearing...');\n\n      $.ajax({\n          url: 'admin-ajax.php?action=supapress_cache_clear',\n          type: 'GET',\n          dataType: 'json',\n          success: function (data) {\n              if (data.filesRemoved === 0) {\n                  $(this).updateMessage('There were no cached files to remove.', 'warning');\n              } else {\n                  var tense = data.filesRemoved === 1 ? ' has' : 's have';\n                  $(this).updateMessage(data.filesRemoved + ' cached file' + tense + ' been removed.', 'success');\n              }\n              resetButton();\n          },\n          error: function(data) {\n              if(console && 'error' in console) {\n                  console.error(data);\n              }\n              resetButton();\n          }\n      });\n  });\n\n\n  // Add predictive\n  $isbnLookup.autocomplete({\n      source: function (request, response) {\n          $.ajax({\n              url: isbnLookupAjaxUrl + '?action=supapress_predictive',\n              type: 'POST',\n              data: {\n                  term: $isbnLookup.val()\n              },\n              success: function (data) {\n                  if (data.predictive !== null && data.predictive instanceof Array) {\n                      response($.map(data.predictive, function (item) {\n                          if (typeof item.id !== 'undefined') {\n                            var name = item.name;\n                            if (item.title) {\n                                name = item.title;\n                            }\n                            return {\n                                label: name + ' (' + item.id + ')',\n                                value: item.id + '|||' + name\n                            };\n                          }\n                      }));\n                  }\n\n                  $isbnLookup.removeClass('ui-autocomplete-loading');\n              }\n          });\n      },\n      minLength: 2,\n      open: function () {\n          $(this).data(\"uiAutocomplete\").menu.element.addClass(\"supapress-autocomplete\");\n      },\n      autoFocus: true,\n      focus: function (event) {\n          event.preventDefault();\n      },\n      select: function (event, ui) {\n          $isbnLookup.val(ui.item.value);\n\n          if (typeof event.keyCode === 'undefined' || event.keyCode !== 13) {\n              var e = jQuery.Event('keydown');\n              e.which = e.keyCode = 13;\n              $isbnLookup.trigger(e);\n          }\n\n          event.preventDefault();\n      }\n  });\n\n  $isbnLookup.on('keydown', function (e) {\n      if (e.keyCode === 13) {\n          var details = $isbnLookup.val().split('|||'),\n              $option;\n\n          if (details.length > 1) {\n              var isbn = details[0],\n                  title = details[1];\n\n              if (/^9\\d{12}$/.test(isbn) && $isbnList.find('option[data-isbn=\"' + isbn + '\"]:selected').length === 0) {\n                  $option = $(\"<option>\").text(title + ' (' + isbn + ')').val($isbnLookup.val()).attr({\n                      \"selected\": true,\n                      \"data-isbn\": isbn\n                  });\n                  $isbnList.append($option).change();\n              }\n\n              $isbnLookup.val('').removeClass('ui-autocomplete-loading');\n          } else if (/^9\\d{12}$/.test($isbnLookup.val()) && $isbnList.find('option[data-isbn=\"' + $isbnLookup.val() + '\"]:selected').length === 0) {\n              $.ajax({\n                  url: isbnLookupAjaxUrl + '?action=supapress_isbn_lookup',\n                  type: 'POST',\n                  data: {\n                      isbn: $isbnLookup.val()\n                  },\n                  success: function (data) {\n                      var title,\n                          $option = $(\"<option>\");\n\n                      if (typeof data === 'string') {\n                          title = 'ISBN not found';\n                          $option.addClass('book-not-found');\n                      } else {\n                          title = data.search[0].title;\n                      }\n\n                      $option.text(title + ' (' + $isbnLookup.val() + ')').val($isbnLookup.val() + '|||' + title).attr({\n                          \"selected\": true,\n                          \"data-isbn\": $isbnLookup.val()\n                      });\n\n                      $isbnList.append($option).change();\n                      $isbnLookup.val('').removeClass('ui-autocomplete-loading');\n                  }\n              });\n          } else {\n              $isbnLookup.val('').removeClass('ui-autocomplete-loading');\n          }\n\n          e.preventDefault();\n          return false;\n      }\n  });\n\n  $.each($isbnContainer.find('.book-not-found'), function (index, value) {\n      var $option = $(value),\n          isbn = $option.attr('data-isbn');\n\n      $.ajax({\n          url: isbnLookupAjaxUrl + '?action=supapress_isbn_lookup',\n          type: 'POST',\n          data: {\n              isbn: isbn\n          },\n          success: function (data) {\n              if (typeof data !== 'string') {\n                  var title = data.search[0].title,\n                      $newOption = $(\"<option>\");\n\n                  $newOption.text(title + ' (' + isbn + ')').val(isbn + '|||' + title).attr({\n                      \"selected\": true,\n                      \"data-isbn\": isbn\n                  });\n\n                  $option.remove();\n                  $isbnList.append($newOption).change();\n              }\n          }\n      });\n  });\n\n  if ($lookupCollection.length > 0) {\n      $.ajax({\n          url: isbnLookupAjaxUrl + '?action=supapress_collections',\n          type: 'POST',\n          data: {},\n          success: function (data) {\n              if (typeof data.filters.collection.values !== 'undefined' && data.filters.collection.values !== null) {\n                  var $newOption;\n\n                  $.each(data.filters.collection.values, function (index, value) {\n                      $newOption = $(\"<option>\");\n\n                      $newOption.text(value.name).val(value.seo_name).attr({\n                          \"data-seo\": value.seo_name\n                      });\n\n                      $lookupCollection.append($newOption);\n\n                      if ($lookupCollection.attr('data-value') === value.seo_name) {\n                          $lookupCollection.val(value.seo_name);\n                      }\n                  });\n              }\n\n              if (typeof data.catalogId !== 'undefined' && data.catalogId !== null) {\n                  $lookupCollection.attr('data-catalog-id', data.catalogId);\n\n                  // On change update link to collection\n                  $lookupCollection.on('change', function () {\n                      $editCollectionButton.attr('href', 'https://folio.supadu.com/catalog/' + $lookupCollection.attr('data-catalog-id') + '/collection/' + $lookupCollection.find(\":selected\").attr('data-seo') + '/book');\n                  });\n              }\n\n              // Trigger change to set url on page load\n              $lookupCollection.trigger('change');\n          }\n      });\n  }\n\n  $('.upload_image_button').click(function () {\n      var formfieldId = $('input[data-button=\"' + $(this).attr('id') + '\"]').attr('id'),\n          originalFunction = window.send_to_editor;\n\n      tb_show('', 'media-upload.php?type=image&TB_iframe=true');\n\n      window.send_to_editor = function (html) {\n          var imgurl = $('img', html).attr('src');\n          $('#' + formfieldId).val(imgurl).trigger('change');\n          tb_remove();\n          window.send_to_editor = originalFunction;\n      };\n\n      return false;\n  });\n\n  window.send_to_editor = function (html) {\n      var imgurl = $('img', html).attr('src');\n      $('#upload_image').val(imgurl);\n      tb_remove();\n  };\n\n  $arrowUpload.on('change paste keyup', function () {\n      var $this = $(this),\n          $preview = $this.siblings('.image-preview'),\n          src = $.trim($this.val()) === '' ? $preview.attr('data-default-src') : $this.val();\n\n      $preview.attr('src', src);\n  });\n\n  // Trigger on page load to set preview\n  $arrowUpload.trigger('change');\n\n  // Show image upload fields when arrows clicked\n  $arrowPreview.on('click', function () {\n      $(this).siblings('.arrow-upload, .placeholder-upload, .upload-button').css('visibility', 'visible');\n  });\n\n  // Placeholder plugin for IE9 support\n  $('input').placeholder();\n\n  // Force numbers only on inputs\n  $('input.numbers-only').on('keyup', function () {\n      var value = parseInt(this.value.replace(/[^0-9]/g, ''));\n      this.value = isNaN(value) ? '' : value;\n  });\n\n  // Set select to data-value attribute on page load\n  $('select[data-value]').each(function () {\n      var $this = $(this),\n          value = $this.find('option[value=\"' + $this.attr('data-value') + '\"]').length === 0 ? '-1' : $this.attr('data-value');\n\n      $this.val(value);\n  });\n\n  // Show/hide domain slug on Links settings\n  $('.widget_link_page').on('change', function () {\n      var $this = $(this),\n          $parents = $this.parents('.book-url'),\n          $slug = $parents.find('.supapress-domain-slug');\n\n      if ($this.val() < 0) {\n          $slug.addClass('hide');\n      } else {\n          $slug.removeClass('hide');\n      }\n\n      var $urlPattern = $parents.find('.widget_link_pattern');\n      $urlPattern.trigger('change');\n  });\n\n  // Set tooltips\n  $('.supapress-tooltip-wrapper').tooltip({\n      tooltipClass: \"supapress-ui-tooltip\",\n      content: function (callback) {\n          callback($(this).prop('title').replace('<br />', '<br />'));\n      },\n      position: {\n          my: \"center bottom-5\",\n          at: \"center top\",\n          collision: 'none',\n          using: function (position, feedback) {\n              $(this).css(position);\n              $(\"<div>\")\n                  .addClass(\"supapress-tooltip-arrow\")\n                  .addClass(feedback.vertical)\n                  .addClass(feedback.horizontal)\n                  .appendTo(this);\n          }\n      }\n  });\n\n  // When the select2 dropdown is opening (before being displayed) reorder the values. If it is the first value\n  // assume it is the \"Please {do something}\" text and set to blank so it remains as the first element in the <li>\n  $.fn.reorderSelect2Dropdown = function () {\n      var $this = $(this);\n\n      // Only relevant to asmSelect elements which have a new class set\n      if ($this.hasClass('supapress-reorder-dropdown')) {\n          $this.html($(\"option\", $(this)).sort(function (a, b) {\n              var at = $(a).is(':first-child') ? '' : $(a).text(),\n                  bt = $(b).is(':first-child') ? '' : $(b).text();\n              return (at > bt) ? 1 : ( (at < bt) ? -1 : 0 );\n          }));\n\n          // Set first child back to 'selected' state so can't be selected as creates an\n          // empty select option in sortable elements and unselectable last element\n          $this.find(':first-child').attr('selected', true);\n      }\n  };\n\n  // search filter ASM selects\n  $searchFilterLists.each(function () {\n      $(this).asmSelect({\n          addItemTarget: 'bottom',\n          animate: false,\n          hideWhenAdded: true,\n          highlight: true,\n          listType: 'ul',\n          selectClass: 'supapress-dropdown supapress-search-restriction-asm supapress-reorder-dropdown',\n          sortable: true,\n          highlightOutsideContainer: false,\n          removeLabel: 'x',\n          svgUrl: $(this).attr('data-svg-url')\n      });\n  });\n\n  // Move dropdown out of container\n  $('.supapress-search-restriction-asm').each(function () {\n      var $this = $(this);\n      $this.prependTo($this.parents('.supapress-field-wrapper'));\n      $this.siblings('label').prependTo($this.parents('.supapress-field-wrapper'));\n  });\n\n  // Set selects to be styled\n  // $('.supapress-dropdown').select2({\n  //     minimumResultsForSearch: 10\n  // }).on('select2:opening', $(this).reorderSelect2Dropdown);\n\n  $('#bulk-action-selector-top, #bulk-action-selector-bottom').select2({\n      minimumResultsForSearch: 10,\n      dropdownCssClass: 'list-page-select2'\n  });\n\n  $('#widget-type-selector-top, #widget-type-selector-bottom').select2({\n      minimumResultsForSearch: 10,\n      dropdownCssClass: 'list-page-select2'\n  });\n\n  $.fn.updateMessage = function (message, level) {\n      // Remove classes which may be attached to warning - don't want to blanket remove all, i.e. display inline\n      $message.removeClass('success warning updated created deleted error hide');\n      $message.html('<p>' + message + '</p>').addClass(level);\n  };\n\n  // do checks for elements which should be filled in\n  $supapressAddEditForm.on('submit', function () {\n      // look for the per page default setting being filled in\n      if ($showPerPage.is(':checked') && $perPageDefault.val() === '') {\n          $(this).updateMessage('Please choose a default value for \\'search per page\\'', 'warning');\n          $(window).scrollTop(0);\n          return false;\n      }\n      return true;\n  });\n\n  // Enable SVGs for IE\n  svg4everybody();\n})(jQuery);\n(function ($) {\n    window.supapress = window.supapress || {};\n\n    supapress.$wrap = null;\n    supapress.$message = null;\n    supapress.$form = null;\n    supapress.$urlPattern = null;\n    supapress.bookUrlOptions = [\n        { value : \"isbn13\", label : \"ISBN-13\", example : \"9998887770001\" },\n        { value : \"isbn10\", label : \"ISBN-10\", example : \"8765432101\" },\n        { value : \"title\", label : \"Title\", example : \"my-book\" },\n        { value : \"subtitle\", label : \"Subtitle\", example : \"my-book-subtitle\" },\n        { value : \"format\", label : \"Format\", example : \"my-format\" },\n        { value : \"text-title\", label : \"Full Book Title\", example : \"My Book\" },\n        { value : \"author\", label : \"Author\", example : \"my-author\" },\n        { value : \"imprint\", label : \"Imprint\", example : \"my-imprint\" },\n        { value : \"publisher\", label : \"Publisher\", example : \"my-publisher\" },\n        { value : \"description\", label : \"Description\", example : \"my description\" }\n    ];\n    supapress.trackingPatternOptions = [\n        { value : \"isbn13\", label : \"ISBN-13\", example : \"9998887770001\" },\n        { value : \"isbn10\", label : \"ISBN-10\", example : \"8765432101\" },\n        { value : \"title\", label : \"Title\", example : \"my-book\" },\n        { value : \"subtitle\", label : \"Subtitle\", example : \"my-book-subtitle\" },\n        { value : \"format\", label : \"Format\", example : \"my-format\" },\n        { value : \"text-title\", label : \"Full Book Title\", example : \"My Book\" },\n        { value : \"author\", label : \"Author\", example : \"my-author\" },\n        { value : \"imprint\", label : \"Imprint\", example : \"my-imprint\" },\n        { value : \"publisher\", label : \"Publisher\", example : \"my-publisher\" },\n        { value : \"description\", label : \"Description\", example : \"my description\" },\n        { value : \"price_usd\", label : \"Price (full) - USD\", example : \"0.00\" },\n        { value : \"discount_usd\", label : \"Price (discount) - USD\", example : \"0.00\" },\n        { value : \"price_gbp\", label : \"Price (full) - GBP\", example : \"0.00\" },\n        { value : \"discount_gbp\", label : \"Price (discount) - GBP\", example : \"0.00\" },\n        { value : \"price_cad\", label : \"Price (full) - CAD\", example : \"0.00\" },\n        { value : \"discount_cad\", label : \"Price (discount) - CAD\", example : \"0.00\" }\n    ];\n    supapress.resultCountTextOptions = [\n        { value : \"total\", label : \"Total Results\", example : \"100\" },\n        { value : \"pagestart\", label : \"Page Start\", example : \"1\" },\n        { value : \"pageend\", label : \"Page End\", example : \"10\" }\n    ];\n    supapress.searchTermTextOptions = [\n        { value : \"term\", label : \"Search Term\", example : \"Lord of the Rings\" }\n    ];\n\n    $.fn.insertAtCaret = function (newText) {\n        var $this = $(this),\n            start = $this.prop(\"selectionStart\"),\n            end = $this.prop(\"selectionEnd\"),\n            text = $this.val(),\n            before = text.substring(0, start),\n            after  = text.substring(end, text.length);\n\n        $this.val(before + newText + after);\n        $this[0].selectionStart = $this[0].selectionEnd = start + newText.length;\n        $this.focus();\n    };\n\n    $.fn.addAutoComplete = function (options) {\n        var $this = $(this);\n\n        $this.autocomplete({\n            source: options,\n            minLength: 0,\n            open: function() {\n                $(this).data(\"uiAutocomplete\").menu.element.addClass(\"supapress-autocomplete\");\n            },\n            focus: function(event) {\n                event.preventDefault();\n            },\n            select: function(event, ui) {\n                $this.insertAtCaret(ui.item.value + '%');\n                return false;\n            },\n            _renderItem: function(ul, item) {\n                return $(\"<li>\").append(item.label).appendTo(ul);\n            }\n        });\n\n        $this.on('keydown', function(e) {\n            if(e.which === 13) {\n                return false;\n            }\n        });\n\n        $this.on('keyup', function(e) {\n            if(e.shiftKey && e.which === 53) {\n                $this.autocomplete( \"search\", \"\" );\n            }\n        });\n\n        $this.on('change paste keyup', function() {\n            var value = $this.val(),\n                $bookUrl = $this.parents('.book-url'),\n                $retailerLink = $this.parents('.retailer-link'),\n                relativeLink,\n                regex;\n\n            if( (!$bookUrl.length && !$retailerLink.length) || $this.hasClass('no-preview') ) {\n                return;\n            }\n\n            relativeLink = $bookUrl.find('.widget_link_page').val() > 0;\n\n            $.each(options, function(index, obj) {\n                regex = new RegExp(\"%\" + obj.value + \"%\",\"g\");\n                value =  value.replace(regex, obj.example );\n            });\n\n            $this.parents('.book-url').find('.widget_link_preview').html( '<span class=\"placeholder\">' + (relativeLink ? $(\".supapress-domain-slug\").html()  : '') + value +'</span>' );\n            $this.parents('.retailer-link').find('.widget_link_preview').html( '<span class=\"placeholder\">' + value + '</span>' );\n        });\n\n        $this.on('blur', function() {\n            var $this = $(this);\n\n            if($.trim($this.val()) === '' && $this.data('default')) {\n                $this.val($this.data('default'));\n            }\n\n            // clean up book urls, remove any extra slashes except one\n            if ( /\\/$/.test($this.val()) && $this.data('trim-trailing-slash')) {\n                $this.val( $this.val().replace( /\\/{2,}$/, '/') );\n            }\n\n            $this.trigger('change');\n        });\n\n        $this.trigger('blur');\n    };\n\n    $.fn.supapressAdminInit = function () {\n        supapress.$wrap = this;\n        supapress.$message = supapress.$wrap.find('#message');\n        supapress.$form = supapress.$wrap.find('#supapress-settings-form');\n        supapress.$urlPattern = supapress.$wrap.find('.widget_link_pattern');\n        supapress.$resultCountText = $('#supapress-result-count-text');\n        supapress.$searchTermText = $('#supapress-search-term-text');\n        supapress.$seoCanonical = $('#supapress-product-details-seo-canonical');\n        supapress.$retailerUpload = $('.retailer-image-upload');\n        supapress.$retailers = $('.retailer-links .retailers');\n        supapress.$retailerLinkFormats = $('.retailer-links .retailer_link_formats');\n        supapress.$addNewRetailer = $('.retailer-links .add-new-wrapper .add-new-button');\n        supapress.$addNewRetailerLoader = $('.retailer-links .add-new-wrapper .loading-icon');\n\n        var supapressAddAutoComplete = function() {\n            var $this = $(this);\n            var options = $this.hasClass(\"tracking-pattern\") ? \"trackingPatternOptions\" : \"bookUrlOptions\";\n            $this.addAutoComplete(supapress[options]);\n        };\n\n        // Attach autocomplete to each url pattern\n        $.each(supapress.$urlPattern, supapressAddAutoComplete);\n\n        // add autocomplete for the search term message and result count options\n        supapress.$resultCountText.addAutoComplete(supapress.resultCountTextOptions);\n        supapress.$searchTermText.addAutoComplete(supapress.searchTermTextOptions);\n\n        // Set retailer link image preview\n        supapress.$retailerUpload.on('change paste keyup', function() {\n            var $this = $(this),\n                $preview = $this.siblings('.image-preview'),\n                src = $.trim($this.val()) === '' ? $preview.attr('data-default-src') : $this.val();\n\n            $preview.attr('src', src);\n        });\n\n        // On click get new template for retailer link\n        supapress.$addNewRetailer.on('click', function() {\n            supapress.$addNewRetailer.addClass('hide');\n            supapress.$addNewRetailerLoader.removeClass('hide');\n\n            $.ajax({\n                url: 'admin-ajax.php?action=supapress_new_retailer_link',\n                type: 'POST',\n                data: {\n                    count: supapress.$retailerLinkFormats.length\n                },\n                success: function (data) {\n                    supapress.$retailers.append(data);\n                    supapress.$addNewRetailer.removeClass('hide');\n                    supapress.$addNewRetailerLoader.addClass('hide');\n\n                    var $wrap = supapress.$retailers.find('.retailer-link:last-child');\n                    var $element = $wrap.find('.supapress-accordion-header');\n                    var $urlPattern = $wrap.find('.widget_link_pattern');\n                    var $dropdowns = $wrap.find('.supapress-dropdown');\n\n                    $.each($urlPattern, supapressAddAutoComplete);\n\n                    $element.on('click', function() {\n                        var $this = $(this),\n                            $elementParent = $this.parents('.supapress-accordion-wrapper'),\n                            $elementArrow = $elementParent.find('.svg-right-arrow'),\n                            $elementConfig = $elementParent.find('.supapress-accordion-content');\n\n                        if($elementConfig.css('display') === 'none') {\n                            $elementConfig.slideDown();\n                            $elementArrow.addClass('open');\n                            $this.addClass('open');\n                        } else {\n                            $elementConfig.slideUp();\n                            $elementArrow.removeClass('open');\n                            $this.removeClass('open');\n                        }\n                    });\n\n                    $.each($dropdowns, function() {\n                        $select2 = $(this).select2({width: '100%'});\n\n                        if($select2.data('select2').$dropdown) {\n                            $select2.data('select2').$dropdown.addClass(\"supapress-select2-drop\");\n                        } else if($select2.data('select2').dropdown) {\n                            $select2.data('select2').dropdown.addClass(\"supapress-select2-drop\");\n                        }\n                    });\n\n                    $wrap.find('.upload_image_button').on('click', function () {\n                        var $formfield = $wrap.find('input[data-button=\"' + $(this).attr('id') + '\"]'),\n                            originalFunction = window.send_to_editor;\n\n                        tb_show('', 'media-upload.php?type=image&TB_iframe=true');\n\n                        $formfield.on('change paste keyup', function () {\n                            var $this = $(this),\n                                $preview = $this.siblings('.image-preview'),\n                                src = $.trim($this.val()) === '' ? $preview.attr('data-default-src') : $this.val();\n\n                            $preview.attr('src', src);\n                        });\n\n                        window.send_to_editor = function (html) {\n                            var imgurl = $('img', html).attr('src');\n                            $formfield.val(imgurl).trigger('change');\n                            tb_remove();\n                            window.send_to_editor = originalFunction;\n                        };\n\n                        return false;\n                    });\n\n                }\n            });\n        });\n\n        // Catch form submit for validation checks\n        supapress.$form.on('submit', function() {\n            var error = false;\n\n            // validation for book urls\n            supapress.$wrap.find('.book-url .widget_link_pattern').each(function() {\n                var $this = $(this),\n                    pattern = $this.val(),\n                    page = $this.parents('.supapress-accordion-content-inner').find('.widget_link_page'),\n                    domainProtocolRegExp = new RegExp(\"^http(s*):\\/\\/\"),\n                    errorMessage = '',\n                    pageVal = parseInt(page.val());\n\n                if (pageVal > 0) {\n                    if (/%isbn13%/.test(pattern) === false) {\n                        errorMessage = 'Book page URLs must contain an ISBN-13 so we can find your book. Please make sure \"%isbn13%\" is found in your url patterns.';\n                    } else if (domainProtocolRegExp.test(pattern) !== false) {\n                        errorMessage = 'Book page URLs should not contain the full URL.';\n                    } else if (/^\\//.test(pattern) === false) {\n                        errorMessage = 'Book page URLs must start with a slash';\n                    }\n                } else if (pageVal === -2 && domainProtocolRegExp.test(pattern) === false) {\n                    errorMessage = 'External links should contain the full URL.';\n                }\n\n                if (errorMessage) {\n                    supapress.$message.addClass('warning').removeClass('hide');\n                    supapress.$message.find('p').text(errorMessage);\n                    supapress.$wrap.find('.nav-tab[data-tab=\"links\"]').trigger('click');\n                    error = true;\n                    return false;\n                }\n            });\n\n            // validation for retailer links\n            supapress.$wrap.find('.retailers .retailer-link ').each(function() {\n                var $this = $(this),\n                    $retailerName =  $this.find('.widget_retailer_name').val(),\n                    $retailerLinkPattern = $this.find('.widget_link_pattern').val(),\n                    errorMessage = '';\n\n                if ($retailerName.trim() === \"\") {\n                    errorMessage = 'All retailer links require a name.';\n                } else if ($retailerName.trim() === \"\") {\n                    errorMessage = 'All retailer links require a link.';\n                }\n\n                if (errorMessage) {\n                    supapress.$message.addClass('warning').removeClass('hide');\n                    supapress.$message.find('p').text(errorMessage);\n                    supapress.$wrap.find('.nav-tab[data-tab=\"retailer-links\"]').trigger('click');\n                    error = true;\n                    return false;\n                }\n\n            });\n\n            // validation for canonical\n            var pattern = supapress.$seoCanonical.val(),\n                domainProtocolRegExp = new RegExp(\"^http(s*):\\/\\/\"),\n                errorMessage = '';\n\n            if (/%isbn13%/.test(pattern) === false) {\n                errorMessage = 'Canonical URL must contain an ISBN-13 so we can find your book. Please make sure \"%isbn13%\" is found in your url patterns.';\n            } else if (domainProtocolRegExp.test(pattern) !== false) {\n                errorMessage = 'Canonical URL should not contain the full URL.';\n            } else if (/^\\//.test(pattern) === false) {\n                errorMessage = 'Canonical URL must start with a slash';\n            }\n\n            if (errorMessage) {\n                supapress.$message.addClass('warning').removeClass('hide');\n                supapress.$message.find('p').text(errorMessage);\n                supapress.$wrap.find('.nav-tab[data-tab=\"seo\"]').trigger('click');\n                error = true;\n            }\n\n            if(error === true) {\n                window.scrollTo(0, 0);\n                return false;\n            }\n        });\n\n    };\n\n    $(function() {\n        $('div.supapress-wrap.settings').supapressAdminInit();\n    });\n})(jQuery);\n"]}
  • supapress/trunk/admin/views/settings.php

    r3221654 r3268984  
    2020                <a href="javascript:void(0);" data-tab="seo" class="nav-tab"><?php _e('SEO', 'supapress' );?></a>
    2121            <?php endif; ?>
     22            <?php if( $isAdmin && defined( 'TYPESENSE_API' ) && TYPESENSE_API === true ): ?>
     23                <a href="javascript:void(0);" data-tab="api_source" class="nav-tab"><?php _e('API Source', 'supapress' );?></a>
     24            <?php endif; ?>
    2225        </h2>
    2326        <?php settings_fields( 'supapress-settings' ); ?>
     
    5356
    5457            </div>
    55             <div class="supapress-field-wrapper">
    56                 <?php if( $isAdmin ): ?>
     58            <?php if( $isAdmin ): ?>
     59                <div class="supapress-field-wrapper">
    5760                    <label class="supapress-label supapress-tooltip-wrapper" for="service_url">
    5861                        <span><?php _e('Service URL (Optional):', 'supapress' );?></span>
     
    6467                    </label>
    6568                    <input class="supapress-input" name="service_url" id="service_url" type="text" placeholder="Only change if you know what you're doing" value="<?php echo esc_attr( get_option('service_url') ); ?>" />
    66                 <?php endif; ?>
    67             </div>
     69                </div>
     70            <?php endif; ?>
    6871        </div>
    6972        <div class="links hide nav-tab-content">
     
    239242            </div>
    240243        </div>
     244
     245        <div class="api_source hide nav-tab-content">
     246            <div class="supapress-typesense-fields">
     247                <div class="supapress-field-wrapper">
     248                    <label class="supapress-label supapress-tooltip-wrapper" for="typesense_catalog">
     249                        <span><?php _e('TypeSense Catalog:', 'supapress' );?></span>
     250                    </label>
     251                    <input class="supapress-input" name="typesense_catalog" id="typesense_catalog" type="text" placeholder="Enter your catalog name here" value="<?php echo esc_attr( get_option('typesense_catalog') ); ?>" />
     252                </div>
     253                <div class="supapress-field-wrapper">
     254                    <label class="supapress-label supapress-tooltip-wrapper" for="typesense_api_key">
     255                        <span><?php _e('API Key:', 'supapress' );?></span>
     256                    </label>
     257                    <input class="supapress-input" name="typesense_api_key" id="typesense_api_key" type="text" placeholder="Enter your API Key here" value="<?php echo esc_attr( get_option('typesense_api_key') ); ?>" />
     258                </div>
     259                <div class="supapress-field-wrapper">
     260                    <label class="supapress-label supapress-tooltip-wrapper" for="typesense_host">
     261                        <span><?php _e('Host:', 'supapress' );?></span>
     262                    </label>
     263                    <input class="supapress-input" name="typesense_host" id="typesense_host" type="text" placeholder="Enter your host here" value="<?php echo esc_attr( get_option('typesense_host') ); ?>" />
     264                </div>
     265            </div>
     266        </div>
     267
    241268        <div class="save-button-wrapper">
    242269            <?php submit_button( __( 'Save Changes', 'supapress'), 'save-button', 'submit', false); ?>
  • supapress/trunk/composer.json

    r3246918 r3268984  
    33  "description": "Quickly and easily connect your book metadata (ONIX) to your WordPress site.",
    44  "type": "wordpress-plugin",
    5   "version": "2.25.2",
     5  "version": "2.26.1",
    66  "authors": [
    77    {
     
    99    }
    1010  ],
     11  "repositories": [
     12    {
     13      "type": "composer",
     14      "url": "https://packages.dev.supadu.com/"
     15    }
     16  ],
    1117  "require": {
    12     "composer/installers": "~1.0"
     18    "composer/installers": "~1.0",
     19    "typesense/typesense-php": "^5.0",
     20    "symfony/http-client": "^6.4",
     21    "guzzlehttp/psr7": "^1.9.1"
    1322  },
    1423  "archive": {
     
    1928      "gulpfile.js"
    2029    ]
     30  },
     31  "config": {
     32    "allow-plugins": {
     33      "composer/installers": true
     34    }
    2135  }
    2236}
  • supapress/trunk/includes/book.php

    r3160511 r3268984  
    2323    );
    2424
    25     private $properties;
     25    public $properties;
    2626    private $params;
    2727    private $result;
     
    313313
    314314    public function get_imprint_url_part() {
    315         if ( isset( $this->book ) && ! empty( $this->book->imprint ) ) {
     315        if ( isset( $this->book ) && !empty( $this->book->imprint->name ) ) {
    316316            return sanitize_title( trim( $this->book->imprint->name ) );
    317317        }
     
    321321
    322322    public function get_publisher_url_part() {
    323         if ( isset( $this->book ) && ! empty( $this->book->publisher ) ) {
     323        if ( isset( $this->book ) && ! empty( $this->book->publisher->name ) ) {
    324324            return sanitize_title( trim( $this->book->publisher->name ) );
    325325        }
     
    372372
    373373    public function get_publisher_text() {
    374         if ( isset( $this->book ) && ! empty( $this->book->publisher ) ) {
     374        if ( isset( $this->book ) && !empty( $this->book->publisher->name ) ) {
    375375            return trim( $this->book->publisher->name );
    376376        }
     
    397397
    398398    public function get_imprint_text() {
    399         if ( isset( $this->book ) && ! empty( $this->book->imprint ) ) {
     399        if ( isset( $this->book ) && ! empty( $this->book->imprint->name ) ) {
    400400            return trim( $this->book->imprint->name );
    401401        }
  • supapress/trunk/includes/css/styles.min.css.map

    r2389550 r3268984  
    1 {"version":3,"sources":["styles.scss","_base.scss","_responsive.scss","_search.scss"],"names":[],"mappings":"AAAA,iBAUE;AAVF;;;;;;;;;;EAUE,ACVF,cACE,SAAU,AACV,gBAAiB,AACjB,SAAW,CACZ,AAED,kGAEE,aAAc,AACd,iBAAmB,CACpB,AAED,kKAGE,iBAAmB,CACpB,AAED,wDACE,UAAY,CACb,AAED,0VAME,WAAY,AACZ,aAAc,AACd,aAAe,CAChB,AAED,0DACE,YAAc,CACf,AAED,wHAEE,WAAa,CACd,AAED,0GAEE,gBAAkB,CACnB,AAED,kKAGE,YAAa,AACb,cAAe,AACf,eAAgB,AAChB,UAAY,CACb,AAED,gMAGE,SAAU,AACV,OAAQ,AACR,iBAAmB,CACpB,AAED,4BACE,WAAY,AACZ,kBAAmB,AACnB,qBAAuB,CACxB,AAED,oDACE,YAAc,CACf,AAED,kHAEE,UAAe,CAChB,AAKD,2LAEI,WAAY,AACZ,aAAe,CAChB,AAJH,qLAMI,gBAAiB,AACjB,SAAU,AACV,aAAc,AACd,gBAAiB,AACjB,qCAAwC,CAUzC,AApBH,oMAaM,kBAAmB,AACnB,gBAAkB,CACnB,AAfL,8LAkBM,aAAe,CAChB,ACrGL,ubAQE,UAAY,CACb,AAED,uCACE,WAAa,CACd,AAED,uCACE,cAAgB,CACjB,AAED,uCACE,eAAiB,CAClB,AAED,uCACE,SAAW,CACZ,AAED,uCACE,SAAW,CACZ,AAED,uCACE,eAAiB,CAClB,AAED,uCACE,SAAW,CACZ,AAED,uCACE,UAAY,CACb,AAED,oCACE,0OAME,SAAW,CACZ,AAED,0UAME,UAAY,CACb,AAED,4NAIE,UAAY,CACb,CAAA,AAGH,oCACE,gaAUE,eAAgB,AAChB,UAAY,CACb,AAED,0XAOE,UAAY,CACb,AAED,wUAME,UAAY,CACb,CAAA,ACtGH,8BAEI,gBAAiB,AACjB,UAAY,CAOb,AAVH,0CAMM,qBAAsB,AACtB,WAAY,AACZ,SAAW,CACZ,AATL,kCAaI,YAAc,CAmBf,AAhCH,oCAgBM,QAAU,CACX,AAjBL,uIAqBQ,aAAe,CAChB,AAtBP,kEAyBQ,WAAa,CACd,AA1BP,qEA6BQ,aAAe,CAChB,AA9BP,8BAuCI,qBAAsB,AACtB,WAAY,AACZ,gBAAiB,AACjB,aAAc,AACd,SAAW,CASZ,AApDH,mDA8CM,cAAe,AACf,YAAa,AACb,gBAAiB,AACjB,cAAe,AACf,WAAa,CACd,AAnDL,mCAuDI,qBAAsB,AACtB,WAAY,AACZ,gBAAiB,AACjB,aAAc,AACd,SAAW,CAsEZ,AAjIH,wDA8DM,mBAAoB,AACpB,cAAe,AACf,YAAc,CAUf,AA1EL,qEAmEQ,iBAAmB,CAMpB,AAzEP,yEAsEU,cAAe,AACf,WAAa,CACd,AAxET,iDA6EM,gCAAiC,AACjC,cAAe,AACf,mBAAoB,AACpB,oBAAqB,AACrB,oBAAsB,CAOvB,AAxFL,4DAoFQ,YAAa,AACb,SAAU,AACV,SAAW,CACZ,AAvFP,sCA2FM,eAAgB,AAChB,cAAgB,CACjB,AA7FL,sCAgGM,gBAAiB,AACjB,SAAU,AACV,SAAW,CA0BZ,AA5HL,yCAqGQ,cAAgB,CAKjB,AA1GP,2CAwGU,WAAa,CACd,AAzGT,0DA+GQ,kCAAoC,AACpC,cAAe,AACf,eAAiB,CAClB,AAlHP,iEAqHQ,cAAgB,CAMjB,AA3HP,wNAwHU,YAAa,AACb,YAAc,CACf,AA1HT,iDA+HM,aAAe,CAChB,AAIL,oCACE,wEAGI,cAAe,AACf,UAAY,CACb,AALH,8BAQI,cAAmB,CACpB,AATH,+HAcI,cAAe,AACf,kBAAmB,AACnB,UAAY,CASb,AAzBH,gNAmBM,aAAe,CAChB,AApBL,oJAuBM,UAAY,CACb,CAAA","file":"styles.min.css","sourcesContent":["/*!\n * Plugin Name: Supafolio\n * Plugin URI: https://www.supadu.com\n * Description: Quickly and easily connect your book metadata (ONIX) to your WordPress site.\n * Version: 2.19.5\n * Author: Supadü\n * Author URI: https://www.supadu.com\n * Text Domain: supapress\n * Domain Path: /languages\n * License: GPL2\n*/\n\n@import \"base\";\n@import \"responsive\";\n@import \"search\";","div.supapress {\n  margin: 0;\n  overflow: hidden;\n  padding: 0;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] .book-wrapper,\ndiv.supapress div[id^=\"search-grid-\"] .book-wrapper {\n  padding: 10px;\n  text-align: center;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] div.image-wrapper,\ndiv.supapress div[id^=\"isbn-carousel-\"] div.image-wrapper,\ndiv.supapress div[id^=\"search-grid-\"] div.image-wrapper {\n  position: relative;\n}\n\ndiv.supapress div[id^=\"isbn-carousel-\"] div.image-wrapper {\n  width: 100%;\n}\n\ndiv.supapress div[id^=\"isbn-list-\"] div.image-wrapper,\ndiv.supapress div[id^=\"isbn-list-\"] div.information-wrapper,\ndiv.supapress div[id^=\"product-details-\"] div.image-wrapper,\ndiv.supapress div[id^=\"product-details-\"] div.information-wrapper,\ndiv.supapress div[id^=\"search-list-\"] div.image-wrapper,\ndiv.supapress div[id^=\"search-list-\"] div.information-wrapper {\n  float: left;\n  padding: 10px;\n  max-width: 50%;\n}\n\ndiv.supapress div[id^=\"product-details-\"] div.title-wrapper {\n  padding: 10px;\n}\n\ndiv.supapress div[id^=\"isbn-list-\"] .right div.image-wrapper,\ndiv.supapress div[id^=\"search-list-\"] .right div.image-wrapper {\n  float: right;\n}\n\ndiv.supapress div[id^=\"isbn-list-\"] .book-wrapper img,\ndiv.supapress div[id^=\"search-list-\"] .book-wrapper img {\n  max-height: 285px;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] .book-wrapper img,\ndiv.supapress div[id^=\"isbn-carousel-\"] .book-wrapper img,\ndiv.supapress div[id^=\"search-grid-\"] .book-wrapper img {\n  height: auto;\n  margin: 0 auto;\n  max-width: 100%;\n  width: 100%;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] .book-wrapper img.baselined,\ndiv.supapress div[id^=\"isbn-carousel-\"] .book-wrapper img.baselined,\ndiv.supapress div[id^=\"search-grid-\"] .book-wrapper img.baselined {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n}\n\ndiv.supapress .book-wrapper {\n  float: left;\n  position: relative;\n  box-sizing: border-box;\n}\n\ndiv.supapress div[id^=\"isbn-carousel-\"] .book-wrapper {\n  padding: 10px;\n}\n\ndiv.supapress div[id^=\"isbn-carousel-\"] .slick-prev::before,\ndiv.supapress div[id^=\"isbn-carousel-\"] .slick-next::before {\n  color: #000000;\n}\n\n/*\nRetailer Links\n*/\ndiv.supapress div[id^=\"isbn-grid-\"], div.supapress div[id^=\"isbn-carousel-\"], div.supapress div[id^=\"isbn-list-\"] {\n  .js-show-sp__the-retailers {\n    width: 100%;\n    display: block;\n  }\n  .sp__the-retailers--list {\n    list-style: none;\n    margin: 0;\n    max-height: 0;\n    overflow: hidden;\n    transition: 0.3s max-height ease-in-out;\n\n    &.open {\n      max-height: 1000px;\n      overflow: visible;\n    }\n\n    li {\n      padding: 5px 0;\n    }\n  }\n}","div.supapress .per-row-8 .book-wrapper:nth-child(8n+1),\ndiv.supapress .per-row-7 .book-wrapper:nth-child(7n+1),\ndiv.supapress .per-row-6 .book-wrapper:nth-child(6n+1),\ndiv.supapress .per-row-5 .book-wrapper:nth-child(5n+1),\ndiv.supapress .per-row-4 .book-wrapper:nth-child(4n+1),\ndiv.supapress .per-row-3 .book-wrapper:nth-child(3n+1),\ndiv.supapress .per-row-2 .book-wrapper:nth-child(2n+1),\ndiv.supapress .per-row-1 .book-wrapper:nth-child(1n+1) {\n  clear: left;\n}\n\ndiv.supapress .per-row-8 .book-wrapper {\n  width: 12.5%;\n}\n\ndiv.supapress .per-row-7 .book-wrapper {\n  width: 14.2857%;\n}\n\ndiv.supapress .per-row-6 .book-wrapper {\n  width: 16.66667%;\n}\n\ndiv.supapress .per-row-5 .book-wrapper {\n  width: 20%;\n}\n\ndiv.supapress .per-row-4 .book-wrapper {\n  width: 25%;\n}\n\ndiv.supapress .per-row-3 .book-wrapper {\n  width: 33.33333%;\n}\n\ndiv.supapress .per-row-2 .book-wrapper {\n  width: 50%;\n}\n\ndiv.supapress .per-row-1 .book-wrapper {\n  width: 100%;\n}\n\n@media screen and (max-width: 720px) {\n  div.supapress .per-row-8 .book-wrapper,\n  div.supapress .per-row-7 .book-wrapper,\n  div.supapress .per-row-6 .book-wrapper,\n  div.supapress .per-row-5 .book-wrapper,\n  div.supapress .per-row-4 .book-wrapper,\n  div.supapress .per-row-3 .book-wrapper {\n    width: 50%;\n  }\n\n  div.supapress .per-row-8 .book-wrapper:nth-child(8n+1),\n  div.supapress .per-row-7 .book-wrapper:nth-child(7n+1),\n  div.supapress .per-row-6 .book-wrapper:nth-child(6n+1),\n  div.supapress .per-row-5 .book-wrapper:nth-child(5n+1),\n  div.supapress .per-row-4 .book-wrapper:nth-child(4n+1),\n  div.supapress .per-row-3 .book-wrapper:nth-child(3n+1) {\n    clear: none;\n  }\n\n  div.supapress #isbn-grid .book-wrapper:nth-child(2n+1),\n  div.supapress #isbn-list .book-wrapper:nth-child(2n+1),\n  div.supapress #search-grid .book-wrapper:nth-child(2n+1),\n  div.supapress #search-list .book-wrapper:nth-child(2n+1) {\n    clear: left;\n  }\n}\n\n@media screen and (max-width: 480px) {\n  div.supapress .per-row-8 .book-wrapper,\n  div.supapress .per-row-7 .book-wrapper,\n  div.supapress .per-row-6 .book-wrapper,\n  div.supapress .per-row-5 .book-wrapper,\n  div.supapress .per-row-4 .book-wrapper,\n  div.supapress .per-row-3 .book-wrapper,\n  div.supapress .per-row-2 .book-wrapper,\n  div.supapress .per-row-1 .book-wrapper,\n  div.supapress #product-details div.image-wrapper,\n  div.supapress #product-details div.information-wrapper {\n    max-width: 100%;\n    width: 100%;\n  }\n\n  div.supapress .per-row-8 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-7 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-6 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-5 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-4 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-3 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-2 .book-wrapper:nth-child(2n+1) {\n    clear: none;\n  }\n\n  div.supapress #isbn-grid .book-wrapper:nth-child(1n+1),\n  div.supapress #isbn-list .book-wrapper:nth-child(1n+1),\n  div.supapress #search-grid .book-wrapper:nth-child(1n+1),\n  div.supapress #search-list .book-wrapper:nth-child(1n+1),\n  div.supapress #product-details div.image-wrapper,\n  div.supapress #product-details div.information-wrapper {\n    clear: left;\n  }\n}","div.supapress {\n  .search-wrapper {\n    overflow: hidden;\n    width: 100%;\n\n    &.has-filters {\n      display: inline-block;\n      float: left;\n      width: 65%;\n    }\n  }\n\n  .pagination-wrapper {\n    padding: 10px;\n\n    p {\n      margin: 0;\n    }\n\n    .supapress-pagination-wrapper {\n      a, span {\n        padding: 0 5px;\n      }\n\n      a {\n        border: none;\n      }\n\n      span {\n        color: #DD3D36;\n      }\n    }\n  }\n\n  /**\n  For backwards compatibility.\n  Styles moved to id but should still be on .filter-wrapper if it is parent of id^=filter-wrapper\n  */\n  .filter-wrapper {\n    display: inline-block;\n    float: left;\n    max-width: 250px;\n    padding: 10px;\n    width: 35%;\n\n    [id^=filter-wrapper] {\n      display: unset;\n      float: unset;\n      max-width: unset;\n      padding: unset;\n      width: unset;\n    }\n  }\n\n  [id^=filter-wrapper] {\n    display: inline-block;\n    float: left;\n    max-width: 250px;\n    padding: 10px;\n    width: 35%;\n\n    .filter-load-wrapper {\n      background: #E3E3E3;\n      display: block;\n      padding: 20px;\n\n      &.preloader-on {\n        text-align: center;\n\n        img {\n          display: block;\n          margin: auto;\n        }\n      }\n    }\n\n    .filter-block {\n      border-bottom: 2px solid #CCCAC7;\n      display: block;\n      margin-bottom: 15px;\n      padding-bottom: 15px;\n      overflow-anchor: none;\n\n      &:last-child {\n        border: none;\n        margin: 0;\n        padding: 0;\n      }\n    }\n\n    h3 {\n      font-size: 18px;\n      margin: 0 0 8px;\n    }\n\n    ul {\n      list-style: none;\n      margin: 0;\n      padding: 0;\n\n      li {\n        font-size: 14px;\n\n        a {\n          border: none;\n        }\n      }\n\n      .additional-filters {\n        -webkit-transition: max-height 0.3s ease-in;\n        -moz-transition: max-height 0.3s ease-in;\n        transition: max-height 0.3s ease-in;\n        display: block;\n        overflow: hidden;\n      }\n\n      .additional-filters-toggle {\n        font-size: 14px;\n\n        &:focus, &:active, &:visited {\n          border: none;\n          outline: none;\n        }\n      }\n    }\n\n    .clear-filter {\n      color: #DD3D36;\n    }\n  }\n}\n\n@media screen and (max-width: 480px) {\n  div.supapress {\n    .search-wrapper.has-filters,\n    .filter-wrapper {\n      display: block;\n      width: 100%;\n    }\n\n    .filter-wrapper {\n      max-width: initial;\n    }\n\n    .supapress-sort-by-wrapper,\n    .supapress-per-page-wrapper,\n    .supapress-pagination-wrapper {\n      display: block;\n      text-align: center;\n      width: 100%;\n\n      &.supapress-per-page-wrapper {\n        margin: 10px 0;\n      }\n\n      select {\n        width: 100%;\n      }\n    }\n  }\n}"]}
     1{"version":3,"sources":["styles.scss","_base.scss","_responsive.scss","_search.scss"],"names":[],"mappings":"AAAA,iBAUE;AAVF;;;;;;;;;;EAUE,ACVF,cACE,SAAS,AACT,gBAAgB,AAChB,SAAU,CACX,AAED,kGAEE,aAAa,AACb,iBAAkB,CACnB,AAED,kKAGE,iBAAkB,CACnB,AAED,wDACE,UAAW,CACZ,AAED,0VAME,WAAW,AACX,aAAa,AACb,aAAc,CACf,AAED,0DACE,YAAa,CACd,AAED,wHAEE,WAAY,CACb,AAED,0GAEE,gBAAiB,CAClB,AAED,kKAGE,YAAY,AACZ,cAAc,AACd,eAAe,AACf,UAAW,CACZ,AAED,gMAGE,SAAS,AACT,OAAO,AACP,iBAAkB,CACnB,AAED,4BACE,WAAW,AACX,kBAAkB,AAClB,qBAAsB,CACvB,AAED,oDACE,YAAa,CACd,AAED,kHAEE,UAAc,CACf,AAKD,2LAEI,WAAW,AACX,aAAc,CACf,AAJH,qLAMI,gBAAgB,AAChB,SAAS,AACT,aAAa,AACb,gBAAgB,AAChB,qCAAuC,CAUxC,AApBH,oMAaM,kBAAkB,AAClB,gBAAiB,CAClB,AAfL,8LAkBM,aAAc,CACf,ACrGL,ubAQE,UAAW,CACZ,AAED,uCACE,WAAY,CACb,AAED,uCACE,cAAe,CAChB,AAED,uCACE,eAAgB,CACjB,AAED,uCACE,SAAU,CACX,AAED,uCACE,SAAU,CACX,AAED,uCACE,eAAgB,CACjB,AAED,uCACE,SAAU,CACX,AAED,uCACE,UAAW,CACZ,AAED,oCACE,0OAME,SAAU,CACX,AAED,0UAME,UAAW,CACZ,AAED,4NAIE,UAAW,CACZ,CAAA,AAGH,oCACE,gaAUE,eAAe,AACf,UAAW,CACZ,AAED,0XAOE,UAAW,CACZ,AAED,wUAME,UAAW,CACZ,CAAA,ACtGH,8BAEI,gBAAgB,AAChB,UAAW,CAOZ,AAVH,0CAMM,qBAAqB,AACrB,WAAW,AACX,SAAU,CACX,AATL,kCAaI,YAAa,CAmBd,AAhCH,oCAgBM,QAAS,CACV,AAjBL,uIAqBQ,aAAc,CACf,AAtBP,kEAyBQ,WAAY,CACb,AA1BP,qEA6BQ,aAAc,CACf,AA9BP,8BAuCI,qBAAqB,AACrB,WAAW,AACX,gBAAgB,AAChB,aAAa,AACb,SAAU,CASX,AApDH,mDA8CM,cAAc,AACd,YAAY,AACZ,gBAAgB,AAChB,cAAc,AACd,WAAY,CACb,AAnDL,mCAuDI,qBAAqB,AACrB,WAAW,AACX,gBAAgB,AAChB,aAAa,AACb,SAAU,CAsEX,AAjIH,wDA8DM,mBAAmB,AACnB,cAAc,AACd,YAAa,CAUd,AA1EL,qEAmEQ,iBAAkB,CAMnB,AAzEP,yEAsEU,cAAc,AACd,WAAY,CACb,AAxET,iDA6EM,gCAAgC,AAChC,cAAc,AACd,mBAAmB,AACnB,oBAAoB,AACpB,oBAAqB,CAOtB,AAxFL,4DAoFQ,YAAY,AACZ,SAAS,AACT,SAAU,CACX,AAvFP,sCA2FM,eAAe,AACf,cAAe,CAChB,AA7FL,sCAgGM,gBAAgB,AAChB,SAAS,AACT,SAAU,CA0BX,AA5HL,yCAqGQ,cAAe,CAKhB,AA1GP,2CAwGU,WAAY,CACb,AAzGT,0DA+GQ,kCAAmC,AACnC,cAAc,AACd,eAAgB,CACjB,AAlHP,iEAqHQ,cAAe,CAMhB,AA3HP,wNAwHU,YAAY,AACZ,YAAa,CACd,AA1HT,iDA+HM,aAAc,CACf,AAIL,oCACE,wEAGI,cAAc,AACd,UAAW,CACZ,AALH,8BAQI,cAAkB,CACnB,AATH,+HAcI,cAAc,AACd,kBAAkB,AAClB,UAAW,CASZ,AAzBH,gNAmBM,aAAc,CACf,AApBL,oJAuBM,UAAW,CACZ,CAAA","file":"styles.min.css","sourcesContent":["/*!\n * Plugin Name: Supafolio\n * Plugin URI: https://www.supadu.com\n * Description: Quickly and easily connect your book metadata (ONIX) to your WordPress site.\n * Version: 2.19.5\n * Author: Supadü\n * Author URI: https://www.supadu.com\n * Text Domain: supapress\n * Domain Path: /languages\n * License: GPL2\n*/\n\n@import \"base\";\n@import \"responsive\";\n@import \"search\";","div.supapress {\n  margin: 0;\n  overflow: hidden;\n  padding: 0;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] .book-wrapper,\ndiv.supapress div[id^=\"search-grid-\"] .book-wrapper {\n  padding: 10px;\n  text-align: center;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] div.image-wrapper,\ndiv.supapress div[id^=\"isbn-carousel-\"] div.image-wrapper,\ndiv.supapress div[id^=\"search-grid-\"] div.image-wrapper {\n  position: relative;\n}\n\ndiv.supapress div[id^=\"isbn-carousel-\"] div.image-wrapper {\n  width: 100%;\n}\n\ndiv.supapress div[id^=\"isbn-list-\"] div.image-wrapper,\ndiv.supapress div[id^=\"isbn-list-\"] div.information-wrapper,\ndiv.supapress div[id^=\"product-details-\"] div.image-wrapper,\ndiv.supapress div[id^=\"product-details-\"] div.information-wrapper,\ndiv.supapress div[id^=\"search-list-\"] div.image-wrapper,\ndiv.supapress div[id^=\"search-list-\"] div.information-wrapper {\n  float: left;\n  padding: 10px;\n  max-width: 50%;\n}\n\ndiv.supapress div[id^=\"product-details-\"] div.title-wrapper {\n  padding: 10px;\n}\n\ndiv.supapress div[id^=\"isbn-list-\"] .right div.image-wrapper,\ndiv.supapress div[id^=\"search-list-\"] .right div.image-wrapper {\n  float: right;\n}\n\ndiv.supapress div[id^=\"isbn-list-\"] .book-wrapper img,\ndiv.supapress div[id^=\"search-list-\"] .book-wrapper img {\n  max-height: 285px;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] .book-wrapper img,\ndiv.supapress div[id^=\"isbn-carousel-\"] .book-wrapper img,\ndiv.supapress div[id^=\"search-grid-\"] .book-wrapper img {\n  height: auto;\n  margin: 0 auto;\n  max-width: 100%;\n  width: 100%;\n}\n\ndiv.supapress div[id^=\"isbn-grid-\"] .book-wrapper img.baselined,\ndiv.supapress div[id^=\"isbn-carousel-\"] .book-wrapper img.baselined,\ndiv.supapress div[id^=\"search-grid-\"] .book-wrapper img.baselined {\n  bottom: 0;\n  left: 0;\n  position: absolute;\n}\n\ndiv.supapress .book-wrapper {\n  float: left;\n  position: relative;\n  box-sizing: border-box;\n}\n\ndiv.supapress div[id^=\"isbn-carousel-\"] .book-wrapper {\n  padding: 10px;\n}\n\ndiv.supapress div[id^=\"isbn-carousel-\"] .slick-prev::before,\ndiv.supapress div[id^=\"isbn-carousel-\"] .slick-next::before {\n  color: #000000;\n}\n\n/*\nRetailer Links\n*/\ndiv.supapress div[id^=\"isbn-grid-\"], div.supapress div[id^=\"isbn-carousel-\"], div.supapress div[id^=\"isbn-list-\"] {\n  .js-show-sp__the-retailers {\n    width: 100%;\n    display: block;\n  }\n  .sp__the-retailers--list {\n    list-style: none;\n    margin: 0;\n    max-height: 0;\n    overflow: hidden;\n    transition: 0.3s max-height ease-in-out;\n\n    &.open {\n      max-height: 1000px;\n      overflow: visible;\n    }\n\n    li {\n      padding: 5px 0;\n    }\n  }\n}","div.supapress .per-row-8 .book-wrapper:nth-child(8n+1),\ndiv.supapress .per-row-7 .book-wrapper:nth-child(7n+1),\ndiv.supapress .per-row-6 .book-wrapper:nth-child(6n+1),\ndiv.supapress .per-row-5 .book-wrapper:nth-child(5n+1),\ndiv.supapress .per-row-4 .book-wrapper:nth-child(4n+1),\ndiv.supapress .per-row-3 .book-wrapper:nth-child(3n+1),\ndiv.supapress .per-row-2 .book-wrapper:nth-child(2n+1),\ndiv.supapress .per-row-1 .book-wrapper:nth-child(1n+1) {\n  clear: left;\n}\n\ndiv.supapress .per-row-8 .book-wrapper {\n  width: 12.5%;\n}\n\ndiv.supapress .per-row-7 .book-wrapper {\n  width: 14.2857%;\n}\n\ndiv.supapress .per-row-6 .book-wrapper {\n  width: 16.66667%;\n}\n\ndiv.supapress .per-row-5 .book-wrapper {\n  width: 20%;\n}\n\ndiv.supapress .per-row-4 .book-wrapper {\n  width: 25%;\n}\n\ndiv.supapress .per-row-3 .book-wrapper {\n  width: 33.33333%;\n}\n\ndiv.supapress .per-row-2 .book-wrapper {\n  width: 50%;\n}\n\ndiv.supapress .per-row-1 .book-wrapper {\n  width: 100%;\n}\n\n@media screen and (max-width: 720px) {\n  div.supapress .per-row-8 .book-wrapper,\n  div.supapress .per-row-7 .book-wrapper,\n  div.supapress .per-row-6 .book-wrapper,\n  div.supapress .per-row-5 .book-wrapper,\n  div.supapress .per-row-4 .book-wrapper,\n  div.supapress .per-row-3 .book-wrapper {\n    width: 50%;\n  }\n\n  div.supapress .per-row-8 .book-wrapper:nth-child(8n+1),\n  div.supapress .per-row-7 .book-wrapper:nth-child(7n+1),\n  div.supapress .per-row-6 .book-wrapper:nth-child(6n+1),\n  div.supapress .per-row-5 .book-wrapper:nth-child(5n+1),\n  div.supapress .per-row-4 .book-wrapper:nth-child(4n+1),\n  div.supapress .per-row-3 .book-wrapper:nth-child(3n+1) {\n    clear: none;\n  }\n\n  div.supapress #isbn-grid .book-wrapper:nth-child(2n+1),\n  div.supapress #isbn-list .book-wrapper:nth-child(2n+1),\n  div.supapress #search-grid .book-wrapper:nth-child(2n+1),\n  div.supapress #search-list .book-wrapper:nth-child(2n+1) {\n    clear: left;\n  }\n}\n\n@media screen and (max-width: 480px) {\n  div.supapress .per-row-8 .book-wrapper,\n  div.supapress .per-row-7 .book-wrapper,\n  div.supapress .per-row-6 .book-wrapper,\n  div.supapress .per-row-5 .book-wrapper,\n  div.supapress .per-row-4 .book-wrapper,\n  div.supapress .per-row-3 .book-wrapper,\n  div.supapress .per-row-2 .book-wrapper,\n  div.supapress .per-row-1 .book-wrapper,\n  div.supapress #product-details div.image-wrapper,\n  div.supapress #product-details div.information-wrapper {\n    max-width: 100%;\n    width: 100%;\n  }\n\n  div.supapress .per-row-8 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-7 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-6 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-5 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-4 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-3 .book-wrapper:nth-child(2n+1),\n  div.supapress .per-row-2 .book-wrapper:nth-child(2n+1) {\n    clear: none;\n  }\n\n  div.supapress #isbn-grid .book-wrapper:nth-child(1n+1),\n  div.supapress #isbn-list .book-wrapper:nth-child(1n+1),\n  div.supapress #search-grid .book-wrapper:nth-child(1n+1),\n  div.supapress #search-list .book-wrapper:nth-child(1n+1),\n  div.supapress #product-details div.image-wrapper,\n  div.supapress #product-details div.information-wrapper {\n    clear: left;\n  }\n}","div.supapress {\n  .search-wrapper {\n    overflow: hidden;\n    width: 100%;\n\n    &.has-filters {\n      display: inline-block;\n      float: left;\n      width: 65%;\n    }\n  }\n\n  .pagination-wrapper {\n    padding: 10px;\n\n    p {\n      margin: 0;\n    }\n\n    .supapress-pagination-wrapper {\n      a, span {\n        padding: 0 5px;\n      }\n\n      a {\n        border: none;\n      }\n\n      span {\n        color: #DD3D36;\n      }\n    }\n  }\n\n  /**\n  For backwards compatibility.\n  Styles moved to id but should still be on .filter-wrapper if it is parent of id^=filter-wrapper\n  */\n  .filter-wrapper {\n    display: inline-block;\n    float: left;\n    max-width: 250px;\n    padding: 10px;\n    width: 35%;\n\n    [id^=filter-wrapper] {\n      display: unset;\n      float: unset;\n      max-width: unset;\n      padding: unset;\n      width: unset;\n    }\n  }\n\n  [id^=filter-wrapper] {\n    display: inline-block;\n    float: left;\n    max-width: 250px;\n    padding: 10px;\n    width: 35%;\n\n    .filter-load-wrapper {\n      background: #E3E3E3;\n      display: block;\n      padding: 20px;\n\n      &.preloader-on {\n        text-align: center;\n\n        img {\n          display: block;\n          margin: auto;\n        }\n      }\n    }\n\n    .filter-block {\n      border-bottom: 2px solid #CCCAC7;\n      display: block;\n      margin-bottom: 15px;\n      padding-bottom: 15px;\n      overflow-anchor: none;\n\n      &:last-child {\n        border: none;\n        margin: 0;\n        padding: 0;\n      }\n    }\n\n    h3 {\n      font-size: 18px;\n      margin: 0 0 8px;\n    }\n\n    ul {\n      list-style: none;\n      margin: 0;\n      padding: 0;\n\n      li {\n        font-size: 14px;\n\n        a {\n          border: none;\n        }\n      }\n\n      .additional-filters {\n        -webkit-transition: max-height 0.3s ease-in;\n        -moz-transition: max-height 0.3s ease-in;\n        transition: max-height 0.3s ease-in;\n        display: block;\n        overflow: hidden;\n      }\n\n      .additional-filters-toggle {\n        font-size: 14px;\n\n        &:focus, &:active, &:visited {\n          border: none;\n          outline: none;\n        }\n      }\n    }\n\n    .clear-filter {\n      color: #DD3D36;\n    }\n  }\n}\n\n@media screen and (max-width: 480px) {\n  div.supapress {\n    .search-wrapper.has-filters,\n    .filter-wrapper {\n      display: block;\n      width: 100%;\n    }\n\n    .filter-wrapper {\n      max-width: initial;\n    }\n\n    .supapress-sort-by-wrapper,\n    .supapress-per-page-wrapper,\n    .supapress-pagination-wrapper {\n      display: block;\n      text-align: center;\n      width: 100%;\n\n      &.supapress-per-page-wrapper {\n        margin: 10px 0;\n      }\n\n      select {\n        width: 100%;\n      }\n    }\n  }\n}"]}
  • supapress/trunk/includes/functions.php

    r3226885 r3268984  
    11<?php
    2 
    32if ( ! defined( 'ABSPATH' ) ) {
    43    exit;
     
    278277
    279278function supapress_render_isbn_lookup_grid( $result, $properties ) {
    280     $supapress = new SupaPress_Book( $result, $properties );
     279    $supapress = supapress_is_ts_api() ? new TypeSense_SupaPress_Book( $result, $properties ) : new SupaPress_Book( $result, $properties );
    281280    $html      = "";
    282281    $perRow    = "4";
     
    319318
    320319function supapress_render_isbn_lookup_list( $result, $properties ) {
    321     $supapress = new SupaPress_Book( $result, $properties );
     320    $supapress = supapress_is_ts_api() ? new TypeSense_SupaPress_Book( $result, $properties ) : new SupaPress_Book( $result, $properties );
    322321    $html      = "";
    323322    $perRow    = "1";
     
    346345
    347346function supapress_render_isbn_lookup_carousel( $result, $properties ) {
    348     $supapress = new SupaPress_Book( $result, $properties );
     347    $supapress = supapress_is_ts_api() ? new TypeSense_SupaPress_Book( $result, $properties ) : new SupaPress_Book( $result, $properties );
    349348    $html      = "";
    350349
     
    675674
    676675function supapress_translate_template_url( $url, SupaPress_Book $book = null ) {
    677     $url = str_replace( '%isbn13%', $book === null ? '9998887770001' : $book->get_isbn13(), $url );
    678     $url = str_replace( '%isbn10%', $book === null ? '8765432101' : $book->get_isbn10(), $url );
    679     $url = str_replace( '%title%', $book === null ? 'my-book' : $book->get_seo_title(), $url );
    680     $url = str_replace('%subtitle%', $book === null ? 'my-book-subtitle' : $book->get_subtitle_url_part(), $url );
    681     $url = str_replace( '%format%', $book === null ? 'my-format' : $book->get_format_url_part(), $url );
    682     $url = str_replace( '%text-title%', $book === null ? 'my-book' : $book->get_seo_title(), $url );
     676    $url = str_replace( '%isbn13%', $book === null ? '9998887770001' : $book->get_isbn13() ?? '', $url );
     677    $url = str_replace( '%isbn10%', $book === null ? '8765432101' : $book->get_isbn10() ?? '', $url );
     678    $url = str_replace( '%title%', $book === null ? 'my-book' : $book->get_seo_title() ?? '', $url );
     679    $url = str_replace('%subtitle%', $book === null ? 'my-book-subtitle' : $book->get_subtitle_url_part() ?? '', $url );
     680    $url = str_replace( '%format%', $book === null ? 'my-format' : $book->get_format_url_part() ?? '', $url );
     681    $url = str_replace( '%text-title%', $book === null ? 'my-book' : $book->get_seo_title() ?? '', $url );
    683682    $url = str_replace( '%description%', $book === null ? 'my description' : '', $url );
    684     $url = str_replace( '%author%', $book === null ? 'my-author' : $book->get_author_url_part(), $url );
    685     $url = str_replace( '%imprint%', $book === null ? 'my-imprint' : $book->get_imprint_url_part(), $url );
    686     $url = str_replace( '%publisher%', $book === null ? 'my-publisher' : $book->get_publisher_url_part(), $url );
    687     $url = str_replace( '%price_usd%', $book === null ? '0' : $book->get_price_url_part("amount", "USD"), $url );
    688     $url = str_replace( '%discount_usd%', $book === null ? '0' : $book->get_price_url_part("discount", "USD"), $url );
    689     $url = str_replace( '%price_gbp%', $book === null ? '0' : $book->get_price_url_part("amount", "GBP"), $url );
    690     $url = str_replace( '%discount_gbp%', $book === null ? '0' : $book->get_price_url_part("discount", "GBP"), $url );
    691     $url = str_replace( '%price_cad%', $book === null ? '0' : $book->get_price_url_part("amount", "CAD"), $url );
    692     $url = str_replace( '%discount_cad%', $book === null ? '0' : $book->get_price_url_part("discount", "CAD"), $url );
     683    $url = str_replace( '%author%', $book === null ? 'my-author' : $book->get_author_url_part() ?? '', $url );
     684    $url = str_replace( '%imprint%', $book === null ? 'my-imprint' : $book->get_imprint_url_part() ?? '', $url );
     685    $url = str_replace( '%publisher%', $book === null ? 'my-publisher' : $book->get_publisher_url_part() ?? '', $url );
     686    $url = str_replace( '%price_usd%', $book === null ? '0' : $book->get_price_url_part("amount", "USD") ?? '', $url );
     687    $url = str_replace( '%discount_usd%', $book === null ? '0' : $book->get_price_url_part("discount", "USD") ?? '', $url );
     688    $url = str_replace( '%price_gbp%', $book === null ? '0' : $book->get_price_url_part("amount", "GBP") ?? '', $url );
     689    $url = str_replace( '%discount_gbp%', $book === null ? '0' : $book->get_price_url_part("discount", "GBP") ?? '', $url );
     690    $url = str_replace( '%price_cad%', $book === null ? '0' : $book->get_price_url_part("amount", "CAD") ?? '', $url );
     691    $url = str_replace( '%discount_cad%', $book === null ? '0' : $book->get_price_url_part("discount", "CAD") ?? '', $url );
    693692
    694693    return $url;
     
    696695
    697696function supapress_translate_template_text( $text, SupaPress_Book $book = null ) {
    698     $text = str_replace( '%isbn13%', $book === null ? '9998887770001' : $book->get_isbn13(), $text );
    699     $text = str_replace( '%isbn10%', $book === null ? '8765432101' : $book->get_isbn10(), $text );
    700     $text = str_replace( '%title%', $book === null ? 'My Book' : $book->get_title(), $text );
    701     $text = str_replace( '%subtitle%', $book === null ? 'My Book Subtitle' : $book->get_subtitle(), $text );
    702     $text = str_replace( '%format%', $book === null ? 'My Format' : $book->get_format_text(), $text );
    703     $text = str_replace( '%text-title%', $book === null ? 'My Book' : $book->get_title(), $text );
    704     $text = str_replace( '%description%', $book === null ? 'My Description' : $book->get_seo_description(), $text );
    705     $text = str_replace( '%author%', $book === null ? 'My Author' : $book->get_author_text(), $text );
    706     $text = str_replace( '%imprint%', $book === null ? 'My Imprint' : $book->get_imprint_text(), $text );
    707     $text = str_replace( '%publisher%', $book === null ? 'My Publisher' : $book->get_publisher_text(), $text );
    708     $text = str_replace( '%price_usd%', $book === null ? '0' : $book->get_price_url_part("amount", "USD"), $text );
    709     $text = str_replace( '%discount_usd%', $book === null ? '0' : $book->get_price_url_part("discount", "USD"), $text );
    710     $text = str_replace( '%price_gbp%', $book === null ? '0' : $book->get_price_url_part("amount", "GBP"), $text );
    711     $text = str_replace( '%discount_gbp%', $book === null ? '0' : $book->get_price_url_part("discount", "GBP"), $text );
    712     $text = str_replace( '%price_cad%', $book === null ? '0' : $book->get_price_url_part("amount", "CAD"), $text );
    713     $text = str_replace( '%discount_cad%', $book === null ? '0' : $book->get_price_url_part("discount", "CAD"), $text );
     697    $text = str_replace( '%isbn13%', $book === null ? '9998887770001' : $book->get_isbn13() ?? '', $text );
     698    $text = str_replace( '%isbn10%', $book === null ? '8765432101' : $book->get_isbn10() ?? '', $text );
     699    $text = str_replace( '%title%', $book === null ? 'My Book' : $book->get_title() ?? '', $text );
     700    $text = str_replace( '%subtitle%', $book === null ? 'My Book Subtitle' : $book->get_subtitle() ?? '', $text );
     701    $text = str_replace( '%format%', $book === null ? 'My Format' : $book->get_format_text() ?? '', $text );
     702    $text = str_replace( '%text-title%', $book === null ? 'My Book' : $book->get_title() ?? '', $text );
     703    $text = str_replace( '%description%', $book === null ? 'My Description' : $book->get_seo_description() ?? '', $text );
     704    $text = str_replace( '%author%', $book === null ? 'My Author' : $book->get_author_text() ?? '', $text );
     705    $text = str_replace( '%imprint%', $book === null ? 'My Imprint' : $book->get_imprint_text() ?? '', $text );
     706    $text = str_replace( '%publisher%', $book === null ? 'My Publisher' : $book->get_publisher_text() ?? '', $text );
     707    $text = str_replace( '%price_usd%', $book === null ? '0' : $book->get_price_url_part("amount", "USD") ?? '', $text );
     708    $text = str_replace( '%discount_usd%', $book === null ? '0' : $book->get_price_url_part("discount", "USD") ?? '', $text );
     709    $text = str_replace( '%price_gbp%', $book === null ? '0' : $book->get_price_url_part("amount", "GBP") ?? '', $text );
     710    $text = str_replace( '%discount_gbp%', $book === null ? '0' : $book->get_price_url_part("discount", "GBP") ?? '', $text );
     711    $text = str_replace( '%price_cad%', $book === null ? '0' : $book->get_price_url_part("amount", "CAD") ?? '', $text );
     712    $text = str_replace( '%discount_cad%', $book === null ? '0' : $book->get_price_url_part("discount", "CAD") ?? '', $text );
    714713
    715714    return $text;
  • supapress/trunk/includes/js/scripts.min.js

    r3221654 r3268984  
    1 !function(s){s(function(){return"undefined"!=typeof angular&&void("true"===supapress_config.angularjs_support&&angular.module("supapressAngular",[]).run(["$window","$rootScope","$location",function(s,a,e){s.supapress=s.supapress||{},s.supapress.angular=s.supapress.angular||{},s.supapress.angular.changeURL=function(s){a.$apply(function(){e.url(s.replace(window.supapress_config.blog_details.site_url,""))})}}]))})}(jQuery),function(s){s("body").on("DOMNodeInserted",function(a){var e,r,p=s(a.target),n=function(a){a.each(function(){var a=s(this);a.data("supapressInitialised")||a.supapressSearchInit()})},t=function(a){a.each(function(){var a=s(this);a.data("supapressInitialised")||a.supapressInit()})};p.is("div.supapress")?(e=p.find(".search"),r=p.find(".isbn-carousel"),n(e),t(r)):p.find("div.supapress").length>0&&p.find("div.supapress").each(function(a,p){var i=s(p);e=i.find(".search"),r=i.find(".isbn-carousel"),n(e),t(r)})})}(jQuery),function(s){window.supapress=window.supapress||{};var a=function(s,a,e){var r;return function(){var p=this,n=arguments,t=function(){r=null,e||s.apply(p,n)},i=e&&!r;clearTimeout(r),r=setTimeout(t,a),i&&s.apply(p,n)}};supapress.gridAlign=function(s,a){var e=a.find("[data-baseline-images=wrapper]");e.height(s),e.find("[data-baseline-images=image]").addClass("baselined"),a.data("aligned",!0)},supapress.showRetailerLinks=function(a,e){a.on("click",function(a){s(this).next().hasClass("open")?s(this).next().removeClass("open"):(e.find(".sp__the-retailers--list.open").removeClass("open"),s(this).next().addClass("open"))})},supapress.setMaxCoverHeight=function(a){var e=a.find("[data-baseline-images=wrapper]"),r=e.find("[data-baseline-images=image]"),p=a.data("carouselSettings")||{},n=0,t=0,i=!1;e.addClass("image-wrapper"),r.addClass("supapress-book-cover"),"undefined"!=typeof p.lazyLoad&&a.on("beforeChange",function(){i=!0}),a.data("aligned")?r.each(function(e){var p=s(this);p.height()>t&&(t=p.height()),e===r.length-1&&supapress.gridAlign(t,a)}):r.on("load",function(e){var u=s(this);if("undefined"!=typeof p.lazyLoad&&u.attr("src")===p.lazyLoadPlaceholder||(n++,u.off("load")),u.height()>t&&(t=u.height()),n===r.length||"undefined"!=typeof p.lazyLoad&&(n===p.slidesToShow||i))return i=!1,supapress.gridAlign(t,a)}).each(function(){this.complete&&s(this).trigger("load")})},s.fn.supapressInit=function(){var e=this;if(e.hasClass("isbn-carousel")&&"undefined"!=typeof s.fn.slick){e.parent().css("overflow","visible");var r=e.find('[data-container="carousel"]');1===r.length?r.slick(e.data("carouselSettings")):e.slick(e.data("carouselSettings"))}if(e.hasClass("isbn-grid")||e.hasClass("isbn-carousel")||e.hasClass("isbn-list")){var p=e.find(".js-show-sp__the-retailers");supapress.showRetailerLinks(p,e)}if(e.hasClass("isbn-grid")||e.hasClass("isbn-carousel")||e.hasClass("search-grid")){var n=a(function(){supapress.setMaxCoverHeight(e)},300);s(window).on("resize orientationchange",n)}e.data("supapressInitialised",!0)},s("div.supapress > div").each(function(){s(this).supapressInit()}),s(window).trigger("resize")}(jQuery),function(s){window.supapress=window.supapress||{},supapress.$searchLayout=null,supapress.$sortBy=null,supapress.$perPage=null,supapress.$pagination=null,supapress.$previous=null,supapress.$page=null,supapress.$next=null,supapress.ajaxURL=null,supapress.params=null,supapress.current=null,supapress.total=null,supapress.reload=function(a,e){var r=window.location.protocol+"//"+window.location.hostname+window.location.pathname;if("undefined"!=typeof a&&"undefined"!=typeof e){var p=window.location.search.substring(1),n=p.split("&");p="";for(var t=0;t<n.length;t++){var i=n[t].split("=");""===i[0]||"undefined"==typeof i[1]&&i[0]!==a||""===i[1]&&i[0]!==a||i[0]===a&&e===!1||("page_number"===i[0]&&"page_number"!==a&&(i[1]=1),p+=""===p?"":"&",p+=i[0]+"=",p+=i[0]===a?e:i[1])}var u=new RegExp(a+"=","g");u.test(p)===!1&&e!==!1&&(p+=""===p?"":"&",p+=a+"="+e),""!==s.trim(p)?supapress.changeLocationHref(r+"?"+p):supapress.changeLocationHref(r)}else supapress.changeLocationHref(r)},supapress.changeLocationHref=function(s){window.location.href=s},supapress.loadFilters=function(){s.each(supapress.$searchLayout.find(".filter-load-wrapper"),function(){var a=s(this);s.ajax({url:supapress.ajaxURL+"?action=supapress_filters",type:"GET",data:{params:supapress.params,showText:a.data("show-text"),hideText:a.data("hide-text"),clearText:a.data("clear-text"),limits:a.data("filter-limits"),filters:a.data("filters")},success:function(e){a.html(e).removeClass("preloader-on"),a.find("a").on("click",function(a){var e=s(this);e.hasClass("clear-filters")?supapress.reload():e.hasClass("clear-filter")&&e.attr("data-name")?supapress.reload(e.attr("data-name"),!1):e.attr("data-name")&&e.attr("data-seo")&&supapress.reload(e.attr("data-name"),e.attr("data-seo"))}),a.find(".additional-filters").each(function(a,e){var r=s(e),p=r.height();r.css("height",p).data("height",p).css("maxHeight",0)}),a.find(".additional-filters-toggle").on("click",function(){var a=s(this),e=a.parents(".filter-block").find(".additional-filters");"0px"!==e.css("maxHeight")?(a.text(a.data("showLabel")),e.css("maxHeight",0)):(a.text(a.data("hideLabel")),e.css("maxHeight",e.data("height")))})}})})},s.fn.supapressSearchInit=function(){supapress.$searchLayout=this,supapress.$sortBy=supapress.$searchLayout.find(".supapress-sort-by"),supapress.$perPage=supapress.$searchLayout.find(".supapress-per-page"),supapress.$pagination=supapress.$searchLayout.find(".supapress-pagination-wrapper"),supapress.$previous=supapress.$pagination.find(".supapress-previous"),supapress.$page=supapress.$pagination.find(".supapress-page"),supapress.$next=supapress.$pagination.find(".supapress-next"),supapress.ajaxURL=supapress.$searchLayout.parents(".supapress").data("ajax-url"),supapress.params=supapress.$searchLayout.parents(".supapress").data("widget-params"),supapress.current=parseInt(supapress.$pagination.attr("data-current")),supapress.total=parseInt(supapress.$pagination.attr("data-total")),supapress.loadFilters(),supapress.$sortBy.on("change",function(){supapress.reload("supapress_order",s(this).val())}),supapress.$perPage.on("change",function(){supapress.reload("amount",s(this).val())}),supapress.$previous.on("click",function(){1===supapress.current?supapress.reload("page_number",supapress.total):supapress.reload("page_number",supapress.current-1)}),supapress.$page.on("click",function(){supapress.reload("page_number",s(this).attr("data-page"))}),supapress.$next.on("click",function(){supapress.current===supapress.total?supapress.reload("page_number",1):supapress.reload("page_number",supapress.current+1)}),supapress.$searchLayout.data("supapressInitialised",!0)},s("div.supapress .search").supapressSearchInit()}(jQuery);
     1!function(s){s(function(){return"undefined"!=typeof angular&&void("true"===supapress_config.angularjs_support&&angular.module("supapressAngular",[]).run(["$window","$rootScope","$location",function(s,a,e){s.supapress=s.supapress||{},s.supapress.angular=s.supapress.angular||{},s.supapress.angular.changeURL=function(s){a.$apply(function(){e.url(s.replace(window.supapress_config.blog_details.site_url,""))})}}]))})}(jQuery),function(s){s("body").on("DOMNodeInserted",function(a){var e,r,p=s(a.target),n=function(a){a.each(function(){var a=s(this);a.data("supapressInitialised")||a.supapressSearchInit()})},t=function(a){a.each(function(){var a=s(this);a.data("supapressInitialised")||a.supapressInit()})};p.is("div.supapress")?(e=p.find(".search"),r=p.find(".isbn-carousel"),n(e),t(r)):p.find("div.supapress").length>0&&p.find("div.supapress").each(function(a,p){var i=s(p);e=i.find(".search"),r=i.find(".isbn-carousel"),n(e),t(r)})})}(jQuery),function(s){window.supapress=window.supapress||{};var a=function(s,a,e){var r;return function(){var p=this,n=arguments,t=function(){r=null,e||s.apply(p,n)},i=e&&!r;clearTimeout(r),r=setTimeout(t,a),i&&s.apply(p,n)}};supapress.gridAlign=function(s,a){var e=a.find("[data-baseline-images=wrapper]");e.height(s),e.find("[data-baseline-images=image]").addClass("baselined"),a.data("aligned",!0)},supapress.showRetailerLinks=function(a,e){a.on("click",function(a){s(this).next().hasClass("open")?s(this).next().removeClass("open"):(e.find(".sp__the-retailers--list.open").removeClass("open"),s(this).next().addClass("open"))})},supapress.setMaxCoverHeight=function(a){var e=a.find("[data-baseline-images=wrapper]"),r=e.find("[data-baseline-images=image]"),p=a.data("carouselSettings")||{},n=0,t=0,i=!1;e.addClass("image-wrapper"),r.addClass("supapress-book-cover"),"undefined"!=typeof p.lazyLoad&&a.on("beforeChange",function(){i=!0}),a.data("aligned")?r.each(function(e){var p=s(this);p.height()>t&&(t=p.height()),e===r.length-1&&supapress.gridAlign(t,a)}):r.on("load",function(e){var u=s(this);if("undefined"!=typeof p.lazyLoad&&u.attr("src")===p.lazyLoadPlaceholder||(n++,u.off("load")),u.height()>t&&(t=u.height()),n===r.length||"undefined"!=typeof p.lazyLoad&&(n===p.slidesToShow||i))return i=!1,supapress.gridAlign(t,a)}).each(function(){this.complete&&s(this).trigger("load")})},s.fn.supapressInit=function(){var e=this;if(e.hasClass("isbn-carousel")&&"undefined"!=typeof s.fn.slick){e.parent().css("overflow","visible");var r=e.find('[data-container="carousel"]');1===r.length?r.slick(e.data("carouselSettings")):e.slick(e.data("carouselSettings"))}if(e.hasClass("isbn-grid")||e.hasClass("isbn-carousel")||e.hasClass("isbn-list")){var p=e.find(".js-show-sp__the-retailers");supapress.showRetailerLinks(p,e)}if(e.hasClass("isbn-grid")||e.hasClass("isbn-carousel")||e.hasClass("search-grid")){var n=a(function(){supapress.setMaxCoverHeight(e)},300);s(window).on("resize orientationchange",n)}e.data("supapressInitialised",!0)},s("div.supapress > div").each(function(){s(this).supapressInit()}),s(window).trigger("resize")}(jQuery),function(s){window.supapress=window.supapress||{},supapress.$searchLayout=null,supapress.$sortBy=null,supapress.$perPage=null,supapress.$pagination=null,supapress.$previous=null,supapress.$page=null,supapress.$next=null,supapress.ajaxURL=null,supapress.params=null,supapress.current=null,supapress.total=null,supapress.reload=function(a,e){var r=window.location.protocol+"//"+window.location.hostname+window.location.pathname;if("undefined"!=typeof a&&"undefined"!=typeof e){var p=window.location.search.substring(1),n=p.split("&");p="";for(var t=0;t<n.length;t++){var i=n[t].split("=");""===i[0]||"undefined"==typeof i[1]&&i[0]!==a||""===i[1]&&i[0]!==a||i[0]===a&&e===!1||("page_number"===i[0]&&"page_number"!==a&&(i[1]=1),p+=""===p?"":"&",p+=i[0]+"=",p+=i[0]===a?e:i[1])}var u=new RegExp(a+"=","g");u.test(p)===!1&&e!==!1&&(p+=""===p?"":"&",p+=a+"="+e),""!==s.trim(p)?supapress.changeLocationHref(r+"?"+p):supapress.changeLocationHref(r)}else supapress.changeLocationHref(r)},supapress.changeLocationHref=function(s){window.location.href=s},supapress.loadFilters=function(){s.each(supapress.$searchLayout.find(".filter-load-wrapper"),function(){var a=s(this);s.ajax({url:supapress.ajaxURL+"?action=supapress_filters",type:"GET",data:{params:supapress.params,showText:a.data("show-text"),hideText:a.data("hide-text"),clearText:a.data("clear-text"),limits:a.data("filter-limits"),filters:a.data("filters")},success:function(e){a.html(e).removeClass("preloader-on"),a.find("a").on("click",function(a){var e=s(this);e.hasClass("clear-filters")?supapress.reload():e.hasClass("clear-filter")&&e.attr("data-name")?supapress.reload(e.attr("data-name"),!1):e.attr("data-name")&&e.attr("data-seo")&&supapress.reload(e.attr("data-name"),e.attr("data-seo"))}),a.find(".additional-filters").each(function(a,e){var r=s(e),p=r.height();r.css("height",p).data("height",p).css("maxHeight",0)}),a.find(".additional-filters-toggle").on("click",function(){var a=s(this),e=a.parents(".filter-block").find(".additional-filters");"0px"!==e.css("maxHeight")?(a.text(a.data("showLabel")),e.css("maxHeight",0)):(a.text(a.data("hideLabel")),e.css("maxHeight",e.data("height")))})}})})},s.fn.supapressSearchInit=function(){supapress.$searchLayout=this,supapress.$sortBy=supapress.$searchLayout.find(".supapress-sort-by"),supapress.$perPage=supapress.$searchLayout.find(".supapress-per-page"),supapress.$pagination=supapress.$searchLayout.find(".supapress-pagination-wrapper"),supapress.$previous=supapress.$pagination.find(".supapress-previous"),supapress.$page=supapress.$pagination.find(".supapress-page"),supapress.$next=supapress.$pagination.find(".supapress-next"),supapress.ajaxURL=supapress.$searchLayout.parents(".supapress").data("ajax-url"),supapress.params=supapress.$searchLayout.parents(".supapress").data("widget-params"),supapress.current=parseInt(supapress.$pagination.attr("data-current")),supapress.total=parseInt(supapress.$pagination.attr("data-total")),supapress.loadFilters(),supapress.$sortBy.on("change",function(){supapress.reload("supapress_order",s(this).val())}),supapress.$perPage.on("change",function(){supapress.reload("amount",s(this).val())}),supapress.$previous.on("click",function(){1===supapress.current?supapress.reload("page_number",supapress.total):supapress.reload("page_number",supapress.current-1)}),supapress.$page.on("click",function(){supapress.reload("page_number",s(this).attr("data-page"))}),supapress.$next.on("click",function(){supapress.current===supapress.total?supapress.reload("page_number",1):supapress.reload("page_number",supapress.current+1)}),supapress.$searchLayout.data("supapressInitialised",!0)},s("div.supapress:not(.js-typesense-search-template) .search").supapressSearchInit()}(jQuery);
    22//# sourceMappingURL=scripts.min.js.map
  • supapress/trunk/includes/js/scripts.min.js.map

    r3221654 r3268984  
    1 {"version":3,"sources":["scripts.min.js"],"names":["$","angular","supapress_config","angularjs_support","module","run","$window","$rootScope","$location","supapress","changeURL","url","$apply","replace","window","blog_details","site_url","jQuery","on","e","$search","$carousel","$eTarget","target","initSearches","each","$this","this","data","supapressSearchInit","initCarousels","supapressInit","is","find","length","index","value","$elem","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","gridAlign","maxHeight","$layout","$wrapper","height","addClass","showRetailerLinks","$button","next","hasClass","removeClass","setMaxCoverHeight","$images","settings","count","alignOnNextPrev","lazyLoad","attr","lazyLoadPlaceholder","off","slidesToShow","complete","trigger","fn","slick","parent","css","$carouselContainer","$toggleRetailerBtn","debounceResize","$searchLayout","$sortBy","$perPage","$pagination","$previous","$page","$next","ajaxURL","params","current","total","reload","name","baseUrl","location","protocol","hostname","pathname","query","search","substring","split","i","param","regex","RegExp","test","trim","changeLocationHref","href","loadFilters","ajax","type","showText","hideText","clearText","limits","filters","success","response","html","event","elem","$toggle","$additonalFilters","parents","text","parseInt","val"],"mappings":"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","file":"scripts.min.js","sourcesContent":["(function($) {\n     $(function() {\n\n        if(typeof angular === 'undefined') {\n            return false;\n        }\n\n        if (supapress_config.angularjs_support === 'true') {\n            angular.module('supapressAngular', []).run(['$window', '$rootScope', '$location', function ($window, $rootScope, $location) {\n                $window.supapress = $window.supapress || {};\n                $window.supapress.angular = $window.supapress.angular || {};\n                $window.supapress.angular.changeURL = function (url) {\n                    // Function to apply a url change\n                    $rootScope.$apply(function () {\n                        // Strip domain from URL\n                        $location.url(url.replace(window.supapress_config.blog_details.site_url, ''));\n                    });\n                };\n            }]);\n        }\n    });\n})(jQuery);\n(function($) {\n    $('body').on('DOMNodeInserted', function(e) {\n        var $eTarget = $(e.target), $search, $carousel,\n            initSearches = function($search) {\n                $search.each(function() {\n                    var $this = $(this);\n\n                    if(!$this.data('supapressInitialised')) {\n                        $this.supapressSearchInit();\n                    }\n                });\n            },\n            initCarousels = function($carousel) {\n                $carousel.each(function() {\n                    var $this = $(this);\n\n                    if(!$this.data('supapressInitialised')) {\n                        $this.supapressInit();\n                    }\n                });\n            };\n\n        // cater for the normal inserted divs on frontend\n        if ($eTarget.is('div.supapress')) {\n            $search = $eTarget.find('.search');\n            $carousel = $eTarget.find('.isbn-carousel');\n\n            initSearches($search);\n            initCarousels($carousel);\n        } else if ($eTarget.find('div.supapress').length > 0) {\n            $eTarget.find('div.supapress').each(function(index, value) {\n                var $elem = $(value);\n\n                $search = $elem.find('.search');\n                $carousel = $elem.find('.isbn-carousel');\n\n                initSearches($search);\n                initCarousels($carousel);\n            });\n        }\n    });\n})(jQuery);\n\n(function($) {\n    window.supapress = window.supapress || {};\n\n    var debounce = function(func, wait, immediate) {\n        var timeout;\n        return function() {\n            var context = this, args = arguments;\n            var later = function() {\n                timeout = null;\n                if (!immediate) func.apply(context, args);\n            };\n            var callNow = immediate && !timeout;\n            clearTimeout(timeout);\n            timeout = setTimeout(later, wait);\n            if (callNow) func.apply(context, args);\n        };\n    };\n\n    supapress.gridAlign = function(maxHeight, $layout) {\n        var $wrapper = $layout.find('[data-baseline-images=wrapper]');\n        $wrapper.height(maxHeight);\n        $wrapper.find('[data-baseline-images=image]').addClass('baselined');\n        $layout.data('aligned', true);\n    };\n\n    supapress.showRetailerLinks = function($button, $layout) {\n        $button.on('click', function(e) {\n            if( !$(this).next().hasClass('open') ) {\n                $layout.find('.sp__the-retailers--list.open').removeClass('open');\n                $(this).next().addClass('open');\n            } else {\n                $(this).next().removeClass('open');\n            }\n        });\n    };\n\n    supapress.setMaxCoverHeight = function($layout) {\n        var $wrapper = $layout.find('[data-baseline-images=wrapper]'),\n            $images = $wrapper.find('[data-baseline-images=image]'),\n            settings = $layout.data('carouselSettings') || {},\n            count = 0,\n            maxHeight = 0,\n            alignOnNextPrev = false,\n            onload;\n\n        $wrapper.addClass('image-wrapper');\n        $images.addClass('supapress-book-cover');\n\n        if(typeof settings.lazyLoad !== 'undefined') {\n            $layout.on('beforeChange', function() {\n                alignOnNextPrev = true;\n            });\n        }\n\n        if(!$layout.data('aligned')) {\n            $images.on('load', function (e) {\n                var $this = $(this);\n\n                // if lazyloading then first load will be placeholder, second will be real image\n                // if not lazy loading then this will be real image\n                // once real image has loaded we turn off the load event and use the each below instead\n                if (typeof settings.lazyLoad === 'undefined' || $this.attr('src') !== settings.lazyLoadPlaceholder) {\n                    count++;\n                    $this.off('load');\n                }\n\n                if ($this.height() > maxHeight) {\n                    maxHeight = $this.height();\n                }\n\n                // only fire while images are loading if the visible ones have finished loading\n                // don't want grid align to fire too much\n                if (count === $images.length || (typeof settings.lazyLoad !== 'undefined' && (count === settings.slidesToShow || alignOnNextPrev))) {\n                    alignOnNextPrev = false;\n                    return supapress.gridAlign(maxHeight, $layout);\n                }\n            }).each(function() {\n                if (this.complete) {\n                    $(this).trigger('load');\n                }\n            });\n        } else {\n            $images.each(function (index) {\n                var $this = $(this);\n\n                if ($this.height() > maxHeight) {\n                    maxHeight = $this.height();\n                }\n\n                // on the last image in the loop fire the grid alignment\n                if (index === ($images.length - 1)) {\n                    supapress.gridAlign(maxHeight, $layout);\n                }\n            });\n        }\n    };\n\n    $.fn.supapressInit = function() {\n        var $layout = this;\n\n        if( $layout.hasClass('isbn-carousel') && typeof $.fn.slick !== 'undefined' ) {\n            $layout.parent().css('overflow', 'visible');\n\n            var $carouselContainer = $layout.find('[data-container=\"carousel\"]');\n\n            if( $carouselContainer.length === 1 ) {\n                $carouselContainer.slick($layout.data('carouselSettings'));\n            } else {\n                $layout.slick($layout.data('carouselSettings'));\n            }\n        }\n\n        if( $layout.hasClass('isbn-grid') || $layout.hasClass('isbn-carousel') || $layout.hasClass('isbn-list') ) {\n            var $toggleRetailerBtn = $layout.find('.js-show-sp__the-retailers');\n            supapress.showRetailerLinks($toggleRetailerBtn, $layout);\n        }\n\n        if( $layout.hasClass('isbn-grid') || $layout.hasClass('isbn-carousel') || $layout.hasClass('search-grid') ) {\n            var debounceResize = debounce(function() {\n                supapress.setMaxCoverHeight($layout);\n            }, 300);\n            $(window).on('resize orientationchange', debounceResize);\n        }\n\n        $layout.data('supapressInitialised', true);\n    };\n\n    $('div.supapress > div').each(function() {\n        $(this).supapressInit();\n    });\n\n    $(window).trigger('resize');\n})(jQuery);\n\n(function($) {\n    window.supapress = window.supapress || {};\n\n    supapress.$searchLayout = null;\n\n    supapress.$sortBy = null;\n\n    supapress.$perPage = null;\n\n    supapress.$pagination = null;\n\n    supapress.$previous = null;\n\n    supapress.$page = null;\n\n    supapress.$next = null;\n\n    supapress.ajaxURL = null;\n\n    supapress.params = null;\n\n    supapress.current = null;\n\n    supapress.total = null;\n\n    supapress.reload = function(name, value) {\n        // Get base url\n        var baseUrl = window.location.protocol + '//' + window.location.hostname + window.location.pathname;\n\n        if(typeof name !== 'undefined' && typeof value !== 'undefined') {\n            // Get current query string\n            var query = window.location.search.substring(1);\n\n            // Split up query into array\n            var params = query.split('&');\n\n            query = '';\n\n            // Loop query params\n            for (var i=0; i<params.length; i++) {\n                // Split into key value pair\n                var param = params[i].split('=');\n\n                // If the key is blank (i.e. no query string) or the value is undefined or blank and the key is not the new param continue\n                if(param[0] === '' || (typeof param[1] === 'undefined' && param[0] !== name) || (param[1] === '' && param[0] !== name) || (param[0] === name && value === false)) {\n                    continue;\n                }\n\n                // Reset page number is any other params change as the result set changes to start from page 1\n                if(param[0] === 'page_number' && name !== 'page_number') {\n                    param[1] = 1;\n                }\n\n                // Add the key pair to the query string\n                query += query === '' ? '' : '&';\n                query += param[0] + '=';\n                query += param[0] === name ? value : param[1];\n            }\n\n            // Build regex param= to make sure it's been added\n            var regex = new RegExp(name + '=', 'g');\n\n            // If the new param is not added yet then added\n            if(regex.test(query) === false && value !== false) {\n                query += query === '' ? '' : '&';\n                query += name + '=' + value;\n            }\n\n            // reload the page with the new url\n            if($.trim(query) !== '') {\n                supapress.changeLocationHref(baseUrl + '?' + query);\n            } else {\n                supapress.changeLocationHref(baseUrl);\n            }\n        } else {\n            supapress.changeLocationHref(baseUrl);\n        }\n    };\n\n    supapress.changeLocationHref = function(url) {\n        window.location.href = url;\n    };\n\n    supapress.loadFilters = function() {\n        $.each(supapress.$searchLayout.find('.filter-load-wrapper'), function() {\n            var $this = $(this);\n\n            $.ajax({\n                url: supapress.ajaxURL + '?action=supapress_filters',\n                type: 'GET',\n                data: {\n                    params: supapress.params,\n                    showText: $this.data('show-text'),\n                    hideText: $this.data('hide-text'),\n                    clearText: $this.data('clear-text'),\n                    limits: $this.data('filter-limits'),\n                    filters: $this.data('filters')\n                },\n                success: function( response ) {\n                    $this.html( response ).removeClass('preloader-on');\n\n                    $this.find('a').on('click', function(event) {\n                        var $this = $(this);\n\n                        if($this.hasClass('clear-filters')) {\n                            supapress.reload();\n                        } else if($this.hasClass('clear-filter') && $this.attr('data-name')) {\n                            supapress.reload($this.attr('data-name'), false);\n                        } else if($this.attr('data-name') && $this.attr('data-seo')) {\n                            supapress.reload($this.attr('data-name'), $this.attr('data-seo'));\n                        }\n                    });\n\n                    $this.find('.additional-filters').each(function(index, elem) {\n                        var $elem = $(elem),\n                            height = $elem.height();\n\n                        $elem.css('height', height).data('height', height).css('maxHeight', 0);\n                    });\n\n                    $this.find('.additional-filters-toggle').on('click', function() {\n                        var $toggle = $(this),\n                            $additonalFilters = $toggle.parents('.filter-block').find('.additional-filters');\n\n                        if($additonalFilters.css('maxHeight') !== '0px') {\n                            $toggle.text($toggle.data('showLabel'));\n                            $additonalFilters.css('maxHeight', 0);\n                        } else {\n                            $toggle.text($toggle.data('hideLabel'));\n                            $additonalFilters.css('maxHeight', $additonalFilters.data('height'));\n                        }\n                    });\n                }\n            });\n        });\n    };\n\n    $.fn.supapressSearchInit = function() {\n        supapress.$searchLayout = this;\n        supapress.$sortBy = supapress.$searchLayout.find('.supapress-sort-by');\n        supapress.$perPage = supapress.$searchLayout.find('.supapress-per-page');\n        supapress.$pagination = supapress.$searchLayout.find('.supapress-pagination-wrapper');\n        supapress.$previous = supapress.$pagination.find('.supapress-previous');\n        supapress.$page = supapress.$pagination.find('.supapress-page');\n        supapress.$next = supapress.$pagination.find('.supapress-next');\n        supapress.ajaxURL = supapress.$searchLayout.parents('.supapress').data('ajax-url');\n        supapress.params = supapress.$searchLayout.parents('.supapress').data('widget-params');\n        supapress.current = parseInt(supapress.$pagination.attr('data-current'));\n        supapress.total = parseInt(supapress.$pagination.attr('data-total'));\n\n        // Load filters\n        supapress.loadFilters();\n\n        // Add event listeners for sort by\n        supapress.$sortBy.on('change', function() {\n            supapress.reload('supapress_order', $(this).val());\n        });\n\n        // Add event listeners for per page\n        supapress.$perPage.on('change', function() {\n            supapress.reload('amount', $(this).val());\n        });\n\n        // Add event listeners for previous page\n        supapress.$previous.on('click', function() {\n            if(supapress.current === 1) {\n                supapress.reload('page_number', supapress.total);\n            } else {\n                supapress.reload('page_number', supapress.current - 1);\n            }\n        });\n\n        // Add event listeners for page changer\n        supapress.$page.on('click', function() {\n            supapress.reload('page_number', $(this).attr('data-page'));\n        });\n\n        // Add event listeners for next page\n        supapress.$next.on('click', function() {\n            if(supapress.current === supapress.total) {\n                supapress.reload('page_number', 1);\n            } else {\n                supapress.reload('page_number', supapress.current + 1);\n            }\n        });\n\n        supapress.$searchLayout.data('supapressInitialised', true);\n    };\n\n    $('div.supapress .search').supapressSearchInit();\n})(jQuery);"]}
     1{"version":3,"sources":["scripts.min.js"],"names":["$","angular","supapress_config","angularjs_support","module","run","$window","$rootScope","$location","supapress","changeURL","url","$apply","replace","window","blog_details","site_url","jQuery","on","e","$search","$carousel","$eTarget","target","initSearches","each","$this","this","data","supapressSearchInit","initCarousels","supapressInit","is","find","length","index","value","$elem","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","gridAlign","maxHeight","$layout","$wrapper","height","addClass","showRetailerLinks","$button","next","hasClass","removeClass","setMaxCoverHeight","$images","settings","count","alignOnNextPrev","lazyLoad","attr","lazyLoadPlaceholder","off","slidesToShow","complete","trigger","fn","slick","parent","css","$carouselContainer","$toggleRetailerBtn","debounceResize","$searchLayout","$sortBy","$perPage","$pagination","$previous","$page","$next","ajaxURL","params","current","total","reload","name","baseUrl","location","protocol","hostname","pathname","query","search","substring","split","i","param","regex","RegExp","test","trim","changeLocationHref","href","loadFilters","ajax","type","showText","hideText","clearText","limits","filters","success","response","html","event","elem","$toggle","$additonalFilters","parents","text","parseInt","val"],"mappings":"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","file":"scripts.min.js","sourcesContent":["(function($) {\n     $(function() {\n\n        if(typeof angular === 'undefined') {\n            return false;\n        }\n\n        if (supapress_config.angularjs_support === 'true') {\n            angular.module('supapressAngular', []).run(['$window', '$rootScope', '$location', function ($window, $rootScope, $location) {\n                $window.supapress = $window.supapress || {};\n                $window.supapress.angular = $window.supapress.angular || {};\n                $window.supapress.angular.changeURL = function (url) {\n                    // Function to apply a url change\n                    $rootScope.$apply(function () {\n                        // Strip domain from URL\n                        $location.url(url.replace(window.supapress_config.blog_details.site_url, ''));\n                    });\n                };\n            }]);\n        }\n    });\n})(jQuery);\n(function($) {\n    $('body').on('DOMNodeInserted', function(e) {\n        var $eTarget = $(e.target), $search, $carousel,\n            initSearches = function($search) {\n                $search.each(function() {\n                    var $this = $(this);\n\n                    if(!$this.data('supapressInitialised')) {\n                        $this.supapressSearchInit();\n                    }\n                });\n            },\n            initCarousels = function($carousel) {\n                $carousel.each(function() {\n                    var $this = $(this);\n\n                    if(!$this.data('supapressInitialised')) {\n                        $this.supapressInit();\n                    }\n                });\n            };\n\n        // cater for the normal inserted divs on frontend\n        if ($eTarget.is('div.supapress')) {\n            $search = $eTarget.find('.search');\n            $carousel = $eTarget.find('.isbn-carousel');\n\n            initSearches($search);\n            initCarousels($carousel);\n        } else if ($eTarget.find('div.supapress').length > 0) {\n            $eTarget.find('div.supapress').each(function(index, value) {\n                var $elem = $(value);\n\n                $search = $elem.find('.search');\n                $carousel = $elem.find('.isbn-carousel');\n\n                initSearches($search);\n                initCarousels($carousel);\n            });\n        }\n    });\n})(jQuery);\n\n(function($) {\n    window.supapress = window.supapress || {};\n\n    var debounce = function(func, wait, immediate) {\n        var timeout;\n        return function() {\n            var context = this, args = arguments;\n            var later = function() {\n                timeout = null;\n                if (!immediate) func.apply(context, args);\n            };\n            var callNow = immediate && !timeout;\n            clearTimeout(timeout);\n            timeout = setTimeout(later, wait);\n            if (callNow) func.apply(context, args);\n        };\n    };\n\n    supapress.gridAlign = function(maxHeight, $layout) {\n        var $wrapper = $layout.find('[data-baseline-images=wrapper]');\n        $wrapper.height(maxHeight);\n        $wrapper.find('[data-baseline-images=image]').addClass('baselined');\n        $layout.data('aligned', true);\n    };\n\n    supapress.showRetailerLinks = function($button, $layout) {\n        $button.on('click', function(e) {\n            if( !$(this).next().hasClass('open') ) {\n                $layout.find('.sp__the-retailers--list.open').removeClass('open');\n                $(this).next().addClass('open');\n            } else {\n                $(this).next().removeClass('open');\n            }\n        });\n    };\n\n    supapress.setMaxCoverHeight = function($layout) {\n        var $wrapper = $layout.find('[data-baseline-images=wrapper]'),\n            $images = $wrapper.find('[data-baseline-images=image]'),\n            settings = $layout.data('carouselSettings') || {},\n            count = 0,\n            maxHeight = 0,\n            alignOnNextPrev = false,\n            onload;\n\n        $wrapper.addClass('image-wrapper');\n        $images.addClass('supapress-book-cover');\n\n        if(typeof settings.lazyLoad !== 'undefined') {\n            $layout.on('beforeChange', function() {\n                alignOnNextPrev = true;\n            });\n        }\n\n        if(!$layout.data('aligned')) {\n            $images.on('load', function (e) {\n                var $this = $(this);\n\n                // if lazyloading then first load will be placeholder, second will be real image\n                // if not lazy loading then this will be real image\n                // once real image has loaded we turn off the load event and use the each below instead\n                if (typeof settings.lazyLoad === 'undefined' || $this.attr('src') !== settings.lazyLoadPlaceholder) {\n                    count++;\n                    $this.off('load');\n                }\n\n                if ($this.height() > maxHeight) {\n                    maxHeight = $this.height();\n                }\n\n                // only fire while images are loading if the visible ones have finished loading\n                // don't want grid align to fire too much\n                if (count === $images.length || (typeof settings.lazyLoad !== 'undefined' && (count === settings.slidesToShow || alignOnNextPrev))) {\n                    alignOnNextPrev = false;\n                    return supapress.gridAlign(maxHeight, $layout);\n                }\n            }).each(function() {\n                if (this.complete) {\n                    $(this).trigger('load');\n                }\n            });\n        } else {\n            $images.each(function (index) {\n                var $this = $(this);\n\n                if ($this.height() > maxHeight) {\n                    maxHeight = $this.height();\n                }\n\n                // on the last image in the loop fire the grid alignment\n                if (index === ($images.length - 1)) {\n                    supapress.gridAlign(maxHeight, $layout);\n                }\n            });\n        }\n    };\n\n    $.fn.supapressInit = function() {\n        var $layout = this;\n\n        if( $layout.hasClass('isbn-carousel') && typeof $.fn.slick !== 'undefined' ) {\n            $layout.parent().css('overflow', 'visible');\n\n            var $carouselContainer = $layout.find('[data-container=\"carousel\"]');\n\n            if( $carouselContainer.length === 1 ) {\n                $carouselContainer.slick($layout.data('carouselSettings'));\n            } else {\n                $layout.slick($layout.data('carouselSettings'));\n            }\n        }\n\n        if( $layout.hasClass('isbn-grid') || $layout.hasClass('isbn-carousel') || $layout.hasClass('isbn-list') ) {\n            var $toggleRetailerBtn = $layout.find('.js-show-sp__the-retailers');\n            supapress.showRetailerLinks($toggleRetailerBtn, $layout);\n        }\n\n        if( $layout.hasClass('isbn-grid') || $layout.hasClass('isbn-carousel') || $layout.hasClass('search-grid') ) {\n            var debounceResize = debounce(function() {\n                supapress.setMaxCoverHeight($layout);\n            }, 300);\n            $(window).on('resize orientationchange', debounceResize);\n        }\n\n        $layout.data('supapressInitialised', true);\n    };\n\n    $('div.supapress > div').each(function() {\n        $(this).supapressInit();\n    });\n\n    $(window).trigger('resize');\n})(jQuery);\n\n(function($) {\n    window.supapress = window.supapress || {};\n\n    supapress.$searchLayout = null;\n\n    supapress.$sortBy = null;\n\n    supapress.$perPage = null;\n\n    supapress.$pagination = null;\n\n    supapress.$previous = null;\n\n    supapress.$page = null;\n\n    supapress.$next = null;\n\n    supapress.ajaxURL = null;\n\n    supapress.params = null;\n\n    supapress.current = null;\n\n    supapress.total = null;\n\n    supapress.reload = function(name, value) {\n        // Get base url\n        var baseUrl = window.location.protocol + '//' + window.location.hostname + window.location.pathname;\n\n        if(typeof name !== 'undefined' && typeof value !== 'undefined') {\n            // Get current query string\n            var query = window.location.search.substring(1);\n\n            // Split up query into array\n            var params = query.split('&');\n\n            query = '';\n\n            // Loop query params\n            for (var i=0; i<params.length; i++) {\n                // Split into key value pair\n                var param = params[i].split('=');\n\n                // If the key is blank (i.e. no query string) or the value is undefined or blank and the key is not the new param continue\n                if(param[0] === '' || (typeof param[1] === 'undefined' && param[0] !== name) || (param[1] === '' && param[0] !== name) || (param[0] === name && value === false)) {\n                    continue;\n                }\n\n                // Reset page number is any other params change as the result set changes to start from page 1\n                if(param[0] === 'page_number' && name !== 'page_number') {\n                    param[1] = 1;\n                }\n\n                // Add the key pair to the query string\n                query += query === '' ? '' : '&';\n                query += param[0] + '=';\n                query += param[0] === name ? value : param[1];\n            }\n\n            // Build regex param= to make sure it's been added\n            var regex = new RegExp(name + '=', 'g');\n\n            // If the new param is not added yet then added\n            if(regex.test(query) === false && value !== false) {\n                query += query === '' ? '' : '&';\n                query += name + '=' + value;\n            }\n\n            // reload the page with the new url\n            if($.trim(query) !== '') {\n                supapress.changeLocationHref(baseUrl + '?' + query);\n            } else {\n                supapress.changeLocationHref(baseUrl);\n            }\n        } else {\n            supapress.changeLocationHref(baseUrl);\n        }\n    };\n\n    supapress.changeLocationHref = function(url) {\n        window.location.href = url;\n    };\n\n    supapress.loadFilters = function() {\n        $.each(supapress.$searchLayout.find('.filter-load-wrapper'), function() {\n            var $this = $(this);\n\n            $.ajax({\n                url: supapress.ajaxURL + '?action=supapress_filters',\n                type: 'GET',\n                data: {\n                    params: supapress.params,\n                    showText: $this.data('show-text'),\n                    hideText: $this.data('hide-text'),\n                    clearText: $this.data('clear-text'),\n                    limits: $this.data('filter-limits'),\n                    filters: $this.data('filters')\n                },\n                success: function( response ) {\n                    $this.html( response ).removeClass('preloader-on');\n\n                    $this.find('a').on('click', function(event) {\n                        var $this = $(this);\n\n                        if($this.hasClass('clear-filters')) {\n                            supapress.reload();\n                        } else if($this.hasClass('clear-filter') && $this.attr('data-name')) {\n                            supapress.reload($this.attr('data-name'), false);\n                        } else if($this.attr('data-name') && $this.attr('data-seo')) {\n                            supapress.reload($this.attr('data-name'), $this.attr('data-seo'));\n                        }\n                    });\n\n                    $this.find('.additional-filters').each(function(index, elem) {\n                        var $elem = $(elem),\n                            height = $elem.height();\n\n                        $elem.css('height', height).data('height', height).css('maxHeight', 0);\n                    });\n\n                    $this.find('.additional-filters-toggle').on('click', function() {\n                        var $toggle = $(this),\n                            $additonalFilters = $toggle.parents('.filter-block').find('.additional-filters');\n\n                        if($additonalFilters.css('maxHeight') !== '0px') {\n                            $toggle.text($toggle.data('showLabel'));\n                            $additonalFilters.css('maxHeight', 0);\n                        } else {\n                            $toggle.text($toggle.data('hideLabel'));\n                            $additonalFilters.css('maxHeight', $additonalFilters.data('height'));\n                        }\n                    });\n                }\n            });\n        });\n    };\n\n    $.fn.supapressSearchInit = function() {\n        supapress.$searchLayout = this;\n        supapress.$sortBy = supapress.$searchLayout.find('.supapress-sort-by');\n        supapress.$perPage = supapress.$searchLayout.find('.supapress-per-page');\n        supapress.$pagination = supapress.$searchLayout.find('.supapress-pagination-wrapper');\n        supapress.$previous = supapress.$pagination.find('.supapress-previous');\n        supapress.$page = supapress.$pagination.find('.supapress-page');\n        supapress.$next = supapress.$pagination.find('.supapress-next');\n        supapress.ajaxURL = supapress.$searchLayout.parents('.supapress').data('ajax-url');\n        supapress.params = supapress.$searchLayout.parents('.supapress').data('widget-params');\n        supapress.current = parseInt(supapress.$pagination.attr('data-current'));\n        supapress.total = parseInt(supapress.$pagination.attr('data-total'));\n\n        // Load filters\n        supapress.loadFilters();\n\n        // Add event listeners for sort by\n        supapress.$sortBy.on('change', function() {\n            supapress.reload('supapress_order', $(this).val());\n        });\n\n        // Add event listeners for per page\n        supapress.$perPage.on('change', function() {\n            supapress.reload('amount', $(this).val());\n        });\n\n        // Add event listeners for previous page\n        supapress.$previous.on('click', function() {\n            if(supapress.current === 1) {\n                supapress.reload('page_number', supapress.total);\n            } else {\n                supapress.reload('page_number', supapress.current - 1);\n            }\n        });\n\n        // Add event listeners for page changer\n        supapress.$page.on('click', function() {\n            supapress.reload('page_number', $(this).attr('data-page'));\n        });\n\n        // Add event listeners for next page\n        supapress.$next.on('click', function() {\n            if(supapress.current === supapress.total) {\n                supapress.reload('page_number', 1);\n            } else {\n                supapress.reload('page_number', supapress.current + 1);\n            }\n        });\n\n        supapress.$searchLayout.data('supapressInitialised', true);\n    };\n\n    $('div.supapress:not(.js-typesense-search-template) .search').supapressSearchInit();\n})(jQuery);"]}
  • supapress/trunk/includes/widget.php

    r3189443 r3268984  
    11<?php
     2
     3use Typesense\Client;
    24
    35if ( ! defined( 'ABSPATH' ) ) {
     
    374376            // Set additional params if they've been added as attributes of the shortcode
    375377            $params = $this->setAdditionalParams( $params, $this->properties );
    376             // Call Supafolio
    377             $result = $service !== null ? supapress_call_supafolio( $service, $params, $this->properties ) : "Something went wrong";
     378
     379            if( supapress_is_ts_api() && $service === 'search' ) {
     380                // Call TypeSense
     381                $result = supapress_call_typesense_search( $params, $this->properties );
     382            } else {
     383                // Call Supafolio
     384                $result = $service !== null ? supapress_call_supafolio( $service, $params, $this->properties ) : "Something went wrong";
     385            }
    378386        }
    379387
  • supapress/trunk/readme.txt

    r3246918 r3268984  
    33Tags: supadü, supadu, folio, books, publishers, supafolio, supadu for wordpress, supapress, supafolio for wordpress
    44Requires at least: 6.0
    5 Tested up to: 6.6.2
    6 Stable tag: 2.25.2
     5Tested up to: 6.7.2
     6Stable tag: 2.26.1
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    3838
    3939== Changelog ==
     40
     41= 2.26.1 =
     42Release Date: Apr 2024
     43* Update: edit functions to fetch TypeSense API
    4044
    4145= 2.25.2 =
  • supapress/trunk/settings.php

    r2389550 r3268984  
    44
    55require_once SUPAPRESS_PLUGIN_DIR . '/includes/functions.php';
     6require_once SUPAPRESS_PLUGIN_DIR . '/includes/typesense-functions.php';
    67require_once SUPAPRESS_PLUGIN_DIR . '/includes/widget-template.php';
    78require_once SUPAPRESS_PLUGIN_DIR . '/includes/widget.php';
  • supapress/trunk/supapress.php

    r3246918 r3268984  
    77 * Plugin URI: https://www.supadu.com
    88 * Description: Quickly and easily connect your book metadata (ONIX) to your WordPress site.
    9  * Version: 2.25.2
     9 * Version: 2.26.1
    1010 * Author: Supadü
    1111 * Author URI: https://www.supadu.com
     
    3737defined( 'ABSPATH' ) or die( 'Illegal Access!' );
    3838
    39 define( 'SUPAPRESS_VERSION', '2.25.2' );
     39define( 'SUPAPRESS_VERSION', '2.26.1' );
    4040
    4141define( 'SUPAPRESS_SITE_URL', get_site_url() );
     
    7575
    7676require_once SUPAPRESS_PLUGIN_DIR . '/settings.php';
     77
     78
     79function supapress_get_autoload_path() {
     80    // check where the autoload should come from
     81    if(file_exists(__DIR__ . '/vendor/autoload.php')) {
     82       return __DIR__ . '/vendor/autoload.php';
     83    } elseif(file_exists(ABSPATH . '/vendor/autoload.php')) {
     84       return ABSPATH . '/vendor/autoload.php';
     85    } else {
     86       // return if nothing is found
     87       return '';
     88    }
     89 }
     90
     91  // check where the autoload should come from
     92  $autoload_path = supapress_get_autoload_path();
     93
     94  if($autoload_path) {
     95     require_once $autoload_path;
     96  } else {
     97     // return if nothing is found
     98     return;
     99  }
  • supapress/trunk/uninstall.php

    r1330691 r3268984  
    1313    delete_option( 'no_book' );
    1414    delete_option( 'service_url' );
     15    delete_option( 'typesense_catalog' );
     16    delete_option( 'typesense_api_key' );
     17    delete_option( 'typesense_host' );
    1518    delete_option( 'widget_book_link_page' );
    1619    delete_option( 'widget_book_link_pattern' );
  • supapress/trunk/views/isbn-lookup-carousel.php

    r3160511 r3268984  
    3232                $supapress->the_author_bio();
    3333
     34                $supapress->the_series();
     35
    3436                $supapress->the_publisher();
    3537
  • supapress/trunk/views/isbn-lookup-grid.php

    r3160511 r3268984  
    3030            $supapress->the_author_bio();
    3131
     32            $supapress->the_series();
     33
    3234            $supapress->the_publisher();
    3335
  • supapress/trunk/views/isbn-lookup-list.php

    r3160511 r3268984  
    3232                $supapress->the_author_bio();
    3333
     34                $supapress->the_series();
     35
    3436                $supapress->the_publisher();
    3537
Note: See TracChangeset for help on using the changeset viewer.