blacklight-spotlight 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (724) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -7
  3. data/app/assets/javascripts/spotlight/application.js +1 -1
  4. data/app/assets/javascripts/spotlight/blocks/featured_browse_categories_block.js +170 -0
  5. data/app/assets/javascripts/spotlight/blocks/item_grid_block.js +56 -0
  6. data/app/assets/javascripts/spotlight/blocks/rule_block.js +21 -0
  7. data/app/assets/javascripts/spotlight/blocks/search_result_block.js +4 -4
  8. data/app/assets/javascripts/spotlight/croppable.js +98 -0
  9. data/app/assets/javascripts/spotlight/jcrop.js +1696 -0
  10. data/app/assets/javascripts/spotlight/search_typeahead.js +18 -0
  11. data/app/assets/javascripts/spotlight/select_related_input.js +21 -0
  12. data/app/assets/stylesheets/spotlight/_catalog.scss +5 -0
  13. data/app/assets/stylesheets/spotlight/_exhibit_admin.scss +20 -0
  14. data/app/assets/stylesheets/spotlight/_featured_browse_categories_block.scss +136 -0
  15. data/app/assets/stylesheets/spotlight/_header.scss +65 -2
  16. data/app/assets/stylesheets/spotlight/_pages.scss +59 -1
  17. data/app/assets/stylesheets/spotlight/_spotlight.scss +1 -0
  18. data/app/controllers/spotlight/appearances_controller.rb +3 -3
  19. data/app/controllers/spotlight/application_controller.rb +4 -0
  20. data/app/controllers/spotlight/blacklight_configurations_controller.rb +20 -4
  21. data/app/controllers/spotlight/catalog_controller.rb +14 -5
  22. data/app/controllers/spotlight/dashboards_controller.rb +1 -1
  23. data/app/controllers/spotlight/exhibits_controller.rb +7 -2
  24. data/app/controllers/spotlight/home_pages_controller.rb +4 -2
  25. data/app/controllers/spotlight/pages_controller.rb +7 -2
  26. data/app/controllers/spotlight/resources/upload_controller.rb +23 -5
  27. data/app/controllers/spotlight/resources_controller.rb +8 -2
  28. data/app/controllers/spotlight/versions_controller.rb +33 -0
  29. data/app/forms/spotlight/appearance.rb +5 -32
  30. data/app/helpers/spotlight/application_helper.rb +33 -16
  31. data/app/helpers/spotlight/{appearances_helper.rb → blacklight_configurations_helper.rb} +3 -3
  32. data/app/helpers/spotlight/jcrop_helper.rb +14 -0
  33. data/app/helpers/spotlight/main_app_helpers.rb +24 -2
  34. data/app/helpers/spotlight/pages_helper.rb +1 -2
  35. data/app/jobs/spotlight/add_uploads_from_csv.rb +23 -0
  36. data/app/jobs/spotlight/reindex_job.rb +19 -0
  37. data/app/mailers/spotlight/indexing_complete_mailer.rb +10 -0
  38. data/app/models/concerns/spotlight/blacklight_configuration_defaults.rb +3 -3
  39. data/app/models/concerns/spotlight/image_derivatives.rb +59 -0
  40. data/app/models/concerns/spotlight/solr_document.rb +15 -7
  41. data/app/models/concerns/spotlight/solr_document/active_model_concern.rb +0 -4
  42. data/app/models/concerns/spotlight/solr_document/atomic_updates.rb +3 -12
  43. data/app/models/concerns/spotlight/solr_document/finder.rb +1 -1
  44. data/app/models/concerns/spotlight/solr_document/spotlight_images.rb +40 -0
  45. data/app/models/sir_trevor_rails/blocks/featured_browse_categories_block.rb +65 -0
  46. data/app/models/sir_trevor_rails/blocks/item_grid_block.rb +9 -0
  47. data/app/models/sir_trevor_rails/blocks/search_results_block.rb +15 -0
  48. data/app/models/spotlight/ability.rb +6 -3
  49. data/app/models/spotlight/analytics/ga.rb +72 -0
  50. data/app/models/spotlight/blacklight_configuration.rb +45 -9
  51. data/app/models/spotlight/exhibit.rb +38 -15
  52. data/app/models/spotlight/home_page.rb +1 -1
  53. data/app/models/spotlight/masthead.rb +18 -0
  54. data/app/models/spotlight/page.rb +9 -0
  55. data/app/models/spotlight/resource.rb +36 -14
  56. data/app/models/spotlight/resources/csv.rb +11 -3
  57. data/app/models/spotlight/resources/csv_upload.rb +7 -0
  58. data/app/models/spotlight/resources/upload.rb +53 -34
  59. data/app/models/spotlight/search.rb +10 -4
  60. data/app/models/spotlight/solr_document_sidecar.rb +15 -2
  61. data/app/serializers/spotlight/exhibit_export_serializer.rb +116 -48
  62. data/app/serializers/spotlight/page_representer.rb +25 -0
  63. data/app/uploaders/spotlight/avatar_uploader.rb +7 -0
  64. data/app/uploaders/spotlight/featured_image_uploader.rb +11 -0
  65. data/app/uploaders/spotlight/item_uploader.rb +2 -2
  66. data/app/uploaders/spotlight/masthead_uploader.rb +16 -0
  67. data/app/views/catalog/_save_search.html.erb +2 -2
  68. data/app/views/layouts/spotlight/spotlight.html.erb +4 -1
  69. data/app/views/shared/_analytics.html.erb +12 -0
  70. data/app/views/shared/_exhibit_masthead.html.erb +5 -1
  71. data/app/views/shared/_footer.html.erb +1 -0
  72. data/app/views/spotlight/about_pages/_contacts_form.html.erb +19 -0
  73. data/app/views/spotlight/about_pages/index.html.erb +2 -18
  74. data/app/views/spotlight/appearances/edit.html.erb +105 -102
  75. data/app/views/spotlight/blacklight_configurations/edit_sort_fields.html.erb +64 -0
  76. data/app/views/spotlight/catalog/_admin_header.html.erb +5 -0
  77. data/app/views/spotlight/catalog/_edit_default.html.erb +4 -2
  78. data/app/views/spotlight/catalog/edit.html.erb +3 -1
  79. data/app/views/spotlight/contacts/_form.html.erb +2 -2
  80. data/app/views/spotlight/dashboards/_analytics.html.erb +37 -0
  81. data/app/views/spotlight/dashboards/_page.html.erb +7 -2
  82. data/app/views/spotlight/exhibits/_form.html.erb +28 -0
  83. data/app/views/spotlight/exhibits/edit.html.erb +1 -24
  84. data/app/views/spotlight/exhibits/import.html.erb +4 -1
  85. data/app/views/spotlight/exhibits/new.html.erb +1 -13
  86. data/app/views/spotlight/home_pages/_edit_page_link.html.erb +1 -0
  87. data/app/views/spotlight/home_pages/_page_options.html.erb +7 -1
  88. data/app/views/spotlight/home_pages/_tophat.html.erb +2 -0
  89. data/app/views/spotlight/indexing_complete_mailer/documents_indexed.html.erb +3 -0
  90. data/app/views/spotlight/pages/_edit_page_link.html.erb +1 -0
  91. data/app/views/spotlight/pages/_form.html.erb +1 -1
  92. data/app/views/spotlight/pages/_tophat.html.erb +0 -0
  93. data/app/views/spotlight/pages/show.html.erb +7 -7
  94. data/app/views/spotlight/resources/upload/_multi_item_form.html.erb +9 -0
  95. data/app/views/spotlight/resources/upload/_single_item_form.html.erb +2 -2
  96. data/app/views/spotlight/resources/upload/new.html.erb +1 -1
  97. data/app/views/spotlight/shared/_admin_sidebar.html.erb +8 -0
  98. data/app/views/spotlight/shared/_curation_sidebar.html.erb +19 -8
  99. data/app/views/spotlight/sir_trevor/blocks/_featured_browse_categories_block.html.erb +19 -0
  100. data/app/views/spotlight/sir_trevor/blocks/_heading_block.html.erb +1 -1
  101. data/app/views/spotlight/sir_trevor/blocks/_item_grid_block.html.erb +24 -0
  102. data/app/views/spotlight/sir_trevor/blocks/_rule_block.html.erb +1 -0
  103. data/config/locales/spotlight.en.yml +70 -20
  104. data/config/routes.rb +19 -3
  105. data/db/migrate/20150127173245_add_featured_image_to_exhibit.rb +5 -0
  106. data/db/migrate/20150217111511_add_polymorphic_document_to_sidecars.rb +26 -0
  107. data/db/migrate/20150224071743_add_spotlight_mastheads.rb +17 -0
  108. data/lib/generators/spotlight/install_generator.rb +18 -4
  109. data/lib/spotlight.rb +1 -1
  110. data/lib/spotlight/base.rb +5 -3
  111. data/lib/spotlight/catalog.rb +1 -1
  112. data/lib/spotlight/catalog/access_controls_enforcement.rb +10 -3
  113. data/lib/spotlight/engine.rb +50 -8
  114. data/lib/spotlight/version.rb +1 -1
  115. data/lib/tasks/spotlight_tasks.rake +14 -1
  116. data/spec/controllers/spotlight/about_pages_controller_spec.rb +1 -0
  117. data/spec/controllers/spotlight/appearances_controller_spec.rb +0 -10
  118. data/spec/controllers/spotlight/blacklight_configurations_controller_spec.rb +33 -3
  119. data/spec/controllers/spotlight/catalog_controller_spec.rb +3 -2
  120. data/spec/controllers/spotlight/feature_pages_controller_spec.rb +1 -0
  121. data/spec/controllers/spotlight/home_pages_controller_spec.rb +9 -0
  122. data/spec/controllers/spotlight/resources/upload_controller_spec.rb +32 -1
  123. data/spec/controllers/spotlight/resources_controller_spec.rb +19 -0
  124. data/spec/controllers/spotlight/versions_controller_spec.rb +58 -0
  125. data/spec/factories/contacts.rb +1 -0
  126. data/spec/factories/resources.rb +11 -0
  127. data/spec/features/catalog_spec.rb +10 -5
  128. data/spec/features/create_exhibit_spec.rb +18 -0
  129. data/spec/features/edit_sort_fields_spec.rb +42 -0
  130. data/spec/features/home_page_spec.rb +19 -0
  131. data/spec/features/import_exhibit_spec.rb +1 -1
  132. data/spec/features/javascript/edit_in_place_spec.rb +12 -8
  133. data/spec/features/javascript/featured_browse_categories_block_spec.rb +36 -0
  134. data/spec/features/javascript/item_grid_block_spec.rb +46 -0
  135. data/spec/features/javascript/rule_block_spec.rb +23 -0
  136. data/spec/features/javascript/search_result_block_spec.rb +2 -2
  137. data/spec/features/site_mastehead_spec.rb +89 -0
  138. data/spec/features/update_appearance_spec.rb +4 -19
  139. data/spec/features/upload_non_repository_item_spec.rb +15 -5
  140. data/spec/fixtures/csv-upload-fixture.csv +1 -0
  141. data/spec/helpers/spotlight/application_helper_spec.rb +76 -27
  142. data/spec/helpers/spotlight/{appearances_helper_spec.rb → blacklight_configurations_helper_spec.rb} +1 -1
  143. data/spec/helpers/spotlight/main_app_helpers_spec.rb +50 -0
  144. data/spec/helpers/spotlight/pages_helper_spec.rb +2 -2
  145. data/spec/internal/Gemfile +1 -0
  146. data/spec/internal/Gemfile.lock +104 -40
  147. data/spec/internal/app/controllers/catalog_controller.rb +4 -6
  148. data/spec/internal/config/initializers/blacklight_initializer.rb +1 -1
  149. data/spec/internal/config/initializers/devise.rb +2 -2
  150. data/spec/internal/config/secrets.yml +2 -2
  151. data/spec/internal/config/solr.yml +3 -3
  152. data/spec/internal/db/development.sqlite3 +0 -0
  153. data/spec/internal/db/migrate/{20150120185710_devise_create_users.rb → 20150302231312_devise_create_users.rb} +0 -0
  154. data/spec/internal/db/migrate/{20150120185713_add_devise_guests_to_users.rb → 20150302231315_add_devise_guests_to_users.rb} +0 -0
  155. data/spec/internal/db/migrate/{20150120185715_create_searches.blacklight.rb → 20150302231317_create_searches.blacklight.rb} +0 -0
  156. data/spec/internal/db/migrate/{20150120185716_create_bookmarks.blacklight.rb → 20150302231318_create_bookmarks.blacklight.rb} +0 -0
  157. data/spec/internal/db/migrate/{20150120185717_add_polymorphic_type_to_bookmarks.blacklight.rb → 20150302231319_add_polymorphic_type_to_bookmarks.blacklight.rb} +0 -0
  158. data/spec/internal/db/migrate/{20150120185718_create_spotlight_pages.spotlight.rb → 20150302231320_create_spotlight_pages.spotlight.rb} +0 -0
  159. data/spec/internal/db/migrate/{20150120185719_create_spotlight_attachments.spotlight.rb → 20150302231321_create_spotlight_attachments.spotlight.rb} +0 -0
  160. data/spec/internal/db/migrate/{20150120185720_create_exhibits.spotlight.rb → 20150302231322_create_exhibits.spotlight.rb} +0 -0
  161. data/spec/internal/db/migrate/{20150120185721_create_roles.spotlight.rb → 20150302231323_create_roles.spotlight.rb} +0 -0
  162. data/spec/internal/db/migrate/{20150120185722_create_spotlight_searches.spotlight.rb → 20150302231324_create_spotlight_searches.spotlight.rb} +0 -0
  163. data/spec/internal/db/migrate/{20150120185723_create_spotlight_blacklight_configurations.spotlight.rb → 20150302231325_create_spotlight_blacklight_configurations.spotlight.rb} +0 -0
  164. data/spec/internal/db/migrate/{20150120185724_acts_as_taggable_on_migration.spotlight.rb → 20150302231326_acts_as_taggable_on_migration.spotlight.rb} +0 -0
  165. data/spec/internal/db/migrate/{20150120185725_add_missing_unique_indices.spotlight.rb → 20150302231327_add_missing_unique_indices.spotlight.rb} +0 -0
  166. data/spec/internal/db/migrate/{20150120185726_create_spotlight_custom_fields.spotlight.rb → 20150302231328_create_spotlight_custom_fields.spotlight.rb} +0 -0
  167. data/spec/internal/db/migrate/{20150120185727_create_spotlight_solr_document_sidecars.spotlight.rb → 20150302231329_create_spotlight_solr_document_sidecars.spotlight.rb} +0 -0
  168. data/spec/internal/db/migrate/{20150120185728_create_contacts.spotlight.rb → 20150302231330_create_contacts.spotlight.rb} +0 -0
  169. data/spec/internal/db/migrate/{20150120185729_create_contact_emails.spotlight.rb → 20150302231331_create_contact_emails.spotlight.rb} +0 -0
  170. data/spec/internal/db/migrate/{20150120185730_create_resources.spotlight.rb → 20150302231332_create_resources.spotlight.rb} +0 -0
  171. data/spec/internal/db/migrate/{20150120185731_change_featured_image_to_featured_image_id.spotlight.rb → 20150302231333_change_featured_image_to_featured_image_id.spotlight.rb} +0 -0
  172. data/spec/internal/db/migrate/{20150120185732_create_spotlight_main_navigations.spotlight.rb → 20150302231334_create_spotlight_main_navigations.spotlight.rb} +0 -0
  173. data/spec/internal/db/migrate/{20150120185733_create_locks.spotlight.rb → 20150302231335_create_locks.spotlight.rb} +0 -0
  174. data/spec/internal/db/migrate/{20150120185734_change_contact_details.spotlight.rb → 20150302231336_change_contact_details.spotlight.rb} +0 -0
  175. data/spec/internal/db/migrate/{20150120185735_add_avatar_to_contacts.spotlight.rb → 20150302231337_add_avatar_to_contacts.spotlight.rb} +0 -0
  176. data/spec/internal/db/migrate/{20150120185736_add_layout_options_to_exhibit.spotlight.rb → 20150302231338_add_layout_options_to_exhibit.spotlight.rb} +0 -0
  177. data/spec/internal/db/migrate/20150302231339_add_published_to_exhibit.spotlight.rb +16 -0
  178. data/spec/internal/db/migrate/20150302231340_add_featured_image_to_exhibit.spotlight.rb +6 -0
  179. data/spec/internal/db/migrate/20150302231341_add_polymorphic_document_to_sidecars.spotlight.rb +27 -0
  180. data/spec/internal/db/migrate/20150302231342_add_spotlight_mastheads.spotlight.rb +18 -0
  181. data/spec/internal/db/migrate/{20150120185737_create_friendly_id_slugs.rb → 20150302231343_create_friendly_id_slugs.rb} +0 -0
  182. data/spec/internal/db/migrate/20150302231344_create_versions.rb +13 -0
  183. data/spec/internal/db/schema.rb +38 -6
  184. data/spec/internal/db/test.sqlite3 +0 -0
  185. data/spec/internal/log/development.log +2237 -4642
  186. data/spec/internal/tmp/cache/assets/development/sass/{513ca6d16009aa0a57397c725dac7cc2030f09cc/_gallery.css.scssc → 007bfad038ba59a89adccfee876c3a437a06e89b/_gallery.scssc} +0 -0
  187. data/spec/internal/tmp/cache/assets/development/sass/{513ca6d16009aa0a57397c725dac7cc2030f09cc/_osd_viewer.css.scssc → 007bfad038ba59a89adccfee876c3a437a06e89b/_osd_viewer.scssc} +0 -0
  188. data/spec/internal/tmp/cache/assets/development/sass/{513ca6d16009aa0a57397c725dac7cc2030f09cc/_slideshow.css.scssc → 007bfad038ba59a89adccfee876c3a437a06e89b/_slideshow.scssc} +0 -0
  189. data/spec/internal/tmp/cache/assets/development/sass/{513ca6d16009aa0a57397c725dac7cc2030f09cc/default.css.scssc → 007bfad038ba59a89adccfee876c3a437a06e89b/default.scssc} +0 -0
  190. data/spec/internal/tmp/cache/assets/development/sass/3529a60026aa2dde5b2c6b7d71062694add268d6/social-share-button.scssc +0 -0
  191. data/spec/internal/tmp/cache/assets/development/sass/43158eb9cca1c3f80d7a5a14285196369a1a1942/sir-trevor-icons.cssc +0 -0
  192. data/spec/internal/tmp/cache/assets/development/sass/43158eb9cca1c3f80d7a5a14285196369a1a1942/sir-trevor.cssc +0 -0
  193. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_alerts.scssc +0 -0
  194. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_background-variant.scssc +0 -0
  195. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_border-radius.scssc +0 -0
  196. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_buttons.scssc +0 -0
  197. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_center-block.scssc +0 -0
  198. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_clearfix.scssc +0 -0
  199. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_forms.scssc +0 -0
  200. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_gradients.scssc +0 -0
  201. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_grid-framework.scssc +0 -0
  202. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_grid.scssc +0 -0
  203. data/spec/internal/tmp/cache/assets/development/sass/54af2da95440b92822408b49a00d588e22d47f59/_hide-text.scssc +0 -0
  204. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_image.scssc +0 -0
  205. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_labels.scssc +0 -0
  206. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_list-group.scssc +0 -0
  207. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_nav-divider.scssc +0 -0
  208. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_nav-vertical-align.scssc +0 -0
  209. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_opacity.scssc +0 -0
  210. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_pagination.scssc +0 -0
  211. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_panels.scssc +0 -0
  212. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_progress-bar.scssc +0 -0
  213. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_reset-filter.scssc +0 -0
  214. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_resize.scssc +0 -0
  215. data/spec/internal/tmp/cache/assets/development/sass/54af2da95440b92822408b49a00d588e22d47f59/_responsive-visibility.scssc +0 -0
  216. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_size.scssc +0 -0
  217. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_tab-focus.scssc +0 -0
  218. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_table-row.scssc +0 -0
  219. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_text-emphasis.scssc +0 -0
  220. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_text-overflow.scssc +0 -0
  221. data/spec/internal/tmp/cache/assets/development/sass/{76af9aec7560d04d963df40a45416b70ab2871c2 → 54af2da95440b92822408b49a00d588e22d47f59}/_vendor-prefixes.scssc +0 -0
  222. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_attachments.cssc +0 -0
  223. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_blacklight_configuration.scssc +0 -0
  224. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_bootstrap_overrides.scssc +0 -0
  225. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_browse.scssc +0 -0
  226. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_catalog.scssc +0 -0
  227. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_curation.scssc +0 -0
  228. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_edit_in_place.scssc +0 -0
  229. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_exhibit_admin.scssc +0 -0
  230. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_featured_browse_categories_block.scssc +0 -0
  231. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_footer.scssc +0 -0
  232. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_header.scssc +0 -0
  233. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_item_text_block.scssc +0 -0
  234. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_mixins.scssc +0 -0
  235. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_multi_image_selector.scssc +0 -0
  236. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_multi_up_item_grid.scssc +0 -0
  237. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_nestable.scssc +0 -0
  238. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_pages.scssc +0 -0
  239. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_report_a_problem.scssc +0 -0
  240. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_sir-trevor_overrides.scssc +0 -0
  241. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_slideshow_block.scssc +0 -0
  242. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_spotlight.scssc +0 -0
  243. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_upload.scssc +0 -0
  244. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_variables.scssc +0 -0
  245. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/_variables_bootstrap.scssc +0 -0
  246. data/spec/internal/tmp/cache/assets/development/sass/6ed822959e676d3d5757149889716c9b4de6ad94/typeahead.cssc +0 -0
  247. data/spec/internal/tmp/cache/assets/development/sass/{5cfec264a132491ae973b0f216243d45c17fcbf5 → 762cf9572d72fe147547233d28cf68415559f44d}/_bootstrap-sprockets.scssc +0 -0
  248. data/spec/internal/tmp/cache/assets/development/sass/{5cfec264a132491ae973b0f216243d45c17fcbf5 → 762cf9572d72fe147547233d28cf68415559f44d}/_bootstrap.scssc +0 -0
  249. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_alerts.scssc +0 -0
  250. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_badges.scssc +0 -0
  251. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_breadcrumbs.scssc +0 -0
  252. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_button-groups.scssc +0 -0
  253. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_buttons.scssc +0 -0
  254. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_carousel.scssc +0 -0
  255. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_close.scssc +0 -0
  256. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_code.scssc +0 -0
  257. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_component-animations.scssc +0 -0
  258. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_dropdowns.scssc +0 -0
  259. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_forms.scssc +0 -0
  260. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_glyphicons.scssc +0 -0
  261. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_grid.scssc +0 -0
  262. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_input-groups.scssc +0 -0
  263. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_jumbotron.scssc +0 -0
  264. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_labels.scssc +0 -0
  265. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_list-group.scssc +0 -0
  266. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_media.scssc +0 -0
  267. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_mixins.scssc +0 -0
  268. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_modals.scssc +0 -0
  269. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_navbar.scssc +0 -0
  270. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_navs.scssc +0 -0
  271. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_normalize.scssc +0 -0
  272. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_pager.scssc +0 -0
  273. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_pagination.scssc +0 -0
  274. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_panels.scssc +0 -0
  275. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_popovers.scssc +0 -0
  276. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_print.scssc +0 -0
  277. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_progress-bars.scssc +0 -0
  278. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_responsive-embed.scssc +0 -0
  279. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_responsive-utilities.scssc +0 -0
  280. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_scaffolding.scssc +0 -0
  281. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_tables.scssc +0 -0
  282. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_thumbnails.scssc +0 -0
  283. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_tooltip.scssc +0 -0
  284. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_type.scssc +0 -0
  285. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_utilities.scssc +0 -0
  286. data/spec/internal/tmp/cache/assets/development/sass/8173e89911935e5caa395fdf8bbeed2500d02570/_variables.scssc +0 -0
  287. data/spec/internal/tmp/cache/assets/development/sass/{a93d1aac56750aa34829d32164da13eee9c65c61 → 8173e89911935e5caa395fdf8bbeed2500d02570}/_wells.scssc +0 -0
  288. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_blacklight_base.scssc +0 -0
  289. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_bookmark.scssc +0 -0
  290. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_catalog.scssc +0 -0
  291. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_facets.scssc +0 -0
  292. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_group.scssc +0 -0
  293. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_header.scssc +0 -0
  294. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_layout.scssc +0 -0
  295. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_modal.scssc +0 -0
  296. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/_search_history.scssc +0 -0
  297. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/blacklight.scssc +0 -0
  298. data/spec/internal/tmp/cache/assets/development/sass/{e820a16ebd47355eda5090fcc006b0ac7e8109ed → d9a00d48bb7557ed6d9b0f19d12174743e8de5c5}/blacklight_defaults.scssc +0 -0
  299. data/spec/internal/tmp/cache/assets/development/sass/eb3afda7341cda1ccb7aa8373347fcb2351a74f9/blacklight.css.scssc +0 -0
  300. data/spec/internal/tmp/cache/assets/development/sass/eb3afda7341cda1ccb7aa8373347fcb2351a74f9/blacklight_gallery.css.scssc +0 -0
  301. data/spec/internal/tmp/cache/assets/development/sass/eb3afda7341cda1ccb7aa8373347fcb2351a74f9/blacklight_oembed.css.scssc +0 -0
  302. data/spec/internal/tmp/cache/assets/development/sass/eb3afda7341cda1ccb7aa8373347fcb2351a74f9/spotlight.scssc +0 -0
  303. data/spec/internal/tmp/cache/assets/development/sprockets/{94c410204e41f1b32311c39ec66a4f8c → 0000f05b17805469cfa9c53d63199a75} +0 -0
  304. data/spec/internal/tmp/cache/assets/development/sprockets/0094da53ef77f5672235764a2ad96d5a +0 -0
  305. data/spec/internal/tmp/cache/assets/development/sprockets/{84425cae919560368d90cece7cfe9eff → 00ea4281dfb032bfa9a4846fc03eb5f0} +0 -0
  306. data/spec/internal/tmp/cache/assets/development/sprockets/016465b8271cedcb7125dceb1eefcf40 +0 -0
  307. data/spec/internal/tmp/cache/assets/development/sprockets/01c2a3f52562f7edd2c4f97e74648940 +0 -0
  308. data/spec/internal/tmp/cache/assets/development/sprockets/029cab146b7dc59206200af11a6e0fea +0 -0
  309. data/spec/internal/tmp/cache/assets/development/sprockets/04acbe9d9b73677391afa00b3f51ccd3 +0 -0
  310. data/spec/internal/tmp/cache/assets/development/sprockets/04c7b02c5bf1dcd5ef745131737bba23 +0 -0
  311. data/spec/internal/tmp/cache/assets/development/sprockets/068b93b01defdd05b83bd6e85d294042 +0 -0
  312. data/spec/internal/tmp/cache/assets/development/sprockets/{23fe920b2d5f521233e92498c116c8db → 06bc7a1924a2d34427cb9394eb96cd26} +0 -0
  313. data/spec/internal/tmp/cache/assets/development/sprockets/07df7e5a813563f9136daac474ff9c1b +0 -0
  314. data/spec/internal/tmp/cache/assets/development/sprockets/082b8f454f3b3b9b43119dc95b481bcc +0 -0
  315. data/spec/internal/tmp/cache/assets/development/sprockets/{9899d41d6e1e5a68515666e4cdd96afa → 094a5efb92e462fe3c31890f66bf540c} +0 -0
  316. data/spec/internal/tmp/cache/assets/development/sprockets/0962b612819d514f3eccdcbe6583c525 +0 -0
  317. data/spec/internal/tmp/cache/assets/development/sprockets/{02ab8271e5f8ec522a32b5f008e067f1 → 0a6996ef3dfd1037cbce95226dbe77b2} +0 -0
  318. data/spec/internal/tmp/cache/assets/development/sprockets/0ac603422eb301f66a676ece9e09237b +0 -0
  319. data/spec/internal/tmp/cache/assets/development/sprockets/0b52c9779134a8e4aca07942b257d769 +0 -0
  320. data/spec/internal/tmp/cache/assets/development/sprockets/0d9506cd8f78eab965ae16d8ed369027 +0 -0
  321. data/spec/internal/tmp/cache/assets/development/sprockets/0e530b813de8cf2d475c85ca053f6494 +0 -0
  322. data/spec/internal/tmp/cache/assets/development/sprockets/0e90f2f4c5922c8d27e06bb4bad84f65 +0 -0
  323. data/spec/internal/tmp/cache/assets/development/sprockets/{ebb2e943933ce49c250efc9abc2f3c33 → 0eaf296b010509ffae2774901189bf85} +0 -0
  324. data/spec/internal/tmp/cache/assets/development/sprockets/0fc0dc453efeacf2f9c3eb2c2acbc842 +0 -0
  325. data/spec/internal/tmp/cache/assets/development/sprockets/0fc2f84889ae8b98ea4f58caa692cfa7 +0 -0
  326. data/spec/internal/tmp/cache/assets/development/sprockets/123a051478050745f07e1b922a82ab28 +0 -0
  327. data/spec/internal/tmp/cache/assets/development/sprockets/{1056702b02a88becf652b7551d33c9e2 → 12621220bba2924044a947da816d2dc3} +0 -0
  328. data/spec/internal/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  329. data/spec/internal/tmp/cache/assets/development/sprockets/{e5693011f5f18dd78160593b4f9c916a → 147028e9cdd292ec1e0505fd8ea542b6} +0 -0
  330. data/spec/internal/tmp/cache/assets/development/sprockets/1482ad001b55da17d2376fced762405c +0 -0
  331. data/spec/internal/tmp/cache/assets/development/sprockets/1517292da79ac90df1fa2684232b2d65 +0 -0
  332. data/spec/internal/tmp/cache/assets/development/sprockets/158bef2327faa0f54cddd976936e0993 +0 -0
  333. data/spec/internal/tmp/cache/assets/development/sprockets/{45ad9719bcc700fd6a15c755044dde05 → 15f1ab77f00ac4919c657309c2fbee2d} +0 -0
  334. data/spec/internal/tmp/cache/assets/development/sprockets/167610cea7134f6813c4eb945019732c +0 -0
  335. data/spec/internal/tmp/cache/assets/development/sprockets/16f34a9fd35811156ec4fffc97f40187 +0 -0
  336. data/spec/internal/tmp/cache/assets/development/sprockets/1764ba229384f42b983f2c63ce088d3a +0 -0
  337. data/spec/internal/tmp/cache/assets/development/sprockets/{8b11668cc84e0f1c25ab5b5500d11866 → 1895f35e28378b4706970ef777b1ab0d} +0 -0
  338. data/spec/internal/tmp/cache/assets/development/sprockets/18ff03fb85ea5c4077248fbf55a6cfc7 +0 -0
  339. data/spec/internal/tmp/cache/assets/development/sprockets/197ae4d993e7086d2eb6c9c1534c1338 +0 -0
  340. data/spec/internal/tmp/cache/assets/development/sprockets/1ab69aa2d1b843568bf369f7754427b3 +0 -0
  341. data/spec/internal/tmp/cache/assets/development/sprockets/1abfd4aad6602b582b8e1fe791f5c667 +0 -0
  342. data/spec/internal/tmp/cache/assets/development/sprockets/1b2aa683a66601e8766d0b18f527c30f +0 -0
  343. data/spec/internal/tmp/cache/assets/development/sprockets/{91bdc0177e680f386781941bcac51089 → 1c25833d79aca82fca8a4e47584a2705} +0 -0
  344. data/spec/internal/tmp/cache/assets/development/sprockets/1d250c80f0795f49e1b4835b0a2d0907 +0 -0
  345. data/spec/internal/tmp/cache/assets/development/sprockets/{004f69730ed4a9633507b2aa39f591be → 1e2c8bb222c29a9c3da65b2fd20c726b} +0 -0
  346. data/spec/internal/tmp/cache/assets/development/sprockets/1f63574a29edbe84d9d5b9dc07a02937 +0 -0
  347. data/spec/internal/tmp/cache/assets/development/sprockets/2055d3314dea0aacfb9a7f80c5b9737a +0 -0
  348. data/spec/internal/tmp/cache/assets/development/sprockets/{8fdb85b47bdb37e02e8f6dd098c76510 → 22b438ca239821be8c2ee64714cf950a} +0 -0
  349. data/spec/internal/tmp/cache/assets/development/sprockets/23d9c45a0d2bd8aa81371a6d9699d47f +0 -0
  350. data/spec/internal/tmp/cache/assets/development/sprockets/26d7989e05275d611cddd16311b9a914 +0 -0
  351. data/spec/internal/tmp/cache/assets/development/sprockets/{ccecc3c30104f40b3ca41e71ca748a7f → 27e2ab47233f1afa0a7898a58b707119} +0 -0
  352. data/spec/internal/tmp/cache/assets/development/sprockets/285bb215c08989a64c7b04c3d0b9416f +0 -0
  353. data/spec/internal/tmp/cache/assets/development/sprockets/28ed1c974057cd9b181f855ab7878909 +0 -0
  354. data/spec/internal/tmp/cache/assets/development/sprockets/29552ff7de6f7cf31a4ad3b487ed83b1 +0 -0
  355. data/spec/internal/tmp/cache/assets/development/sprockets/29975367f0e0349ad9a0e27d5344fcc9 +0 -0
  356. data/spec/internal/tmp/cache/assets/development/sprockets/29acde6f7ccf5ca5c6bd9832eb66357e +0 -0
  357. data/spec/internal/tmp/cache/assets/development/sprockets/2a1b90837d7deaa28cb0cd8fd48d46cd +0 -0
  358. data/spec/internal/tmp/cache/assets/development/sprockets/2a68011fea569f00cfb0491fabcedb89 +0 -0
  359. data/spec/internal/tmp/cache/assets/development/sprockets/2a75ccd35c2326a91542c9700e60593f +0 -0
  360. data/spec/internal/tmp/cache/assets/development/sprockets/2e74f2f097a9d0ce88e4a7645002a771 +0 -0
  361. data/spec/internal/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  362. data/spec/internal/tmp/cache/assets/development/sprockets/2f54cfac105dc13703d47627dad90b40 +0 -0
  363. data/spec/internal/tmp/cache/assets/development/sprockets/300249d24b8a5030d753de00b3e5d516 +0 -0
  364. data/spec/internal/tmp/cache/assets/development/sprockets/3186cecc46c31ceeb34a5a58495ea595 +0 -0
  365. data/spec/internal/tmp/cache/assets/development/sprockets/{6d8066e521fa53ab34df30d425311e8d → 31bd12514c70aa86f5f60f6551a3d5df} +0 -0
  366. data/spec/internal/tmp/cache/assets/development/sprockets/{ff20500b40f9d23f5b4cd1278ef6afbc → 328e16495fa5c251060d3c61f2424dea} +0 -0
  367. data/spec/internal/tmp/cache/assets/development/sprockets/3391ff2ad4c4a91175cb634898074ea2 +0 -0
  368. data/spec/internal/tmp/cache/assets/development/sprockets/33ea05936f25761d037149453ec4fc9d +0 -0
  369. data/spec/internal/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  370. data/spec/internal/tmp/cache/assets/development/sprockets/378bf9a1f6712da520e8509bb73a1359 +0 -0
  371. data/spec/internal/tmp/cache/assets/development/sprockets/3847d56c1069eb5713742bc5af1b16cd +0 -0
  372. data/spec/internal/tmp/cache/assets/development/sprockets/38f6972672b52d51c3ca51d2c04ee5b9 +0 -0
  373. data/spec/internal/tmp/cache/assets/development/sprockets/39e74f54cf48b808814131b5674da061 +0 -0
  374. data/spec/internal/tmp/cache/assets/development/sprockets/3a56862c7368e32d31eb3797bdf0dd1a +0 -0
  375. data/spec/internal/tmp/cache/assets/development/sprockets/3b11160774b94bc734e797a00fb44909 +0 -0
  376. data/spec/internal/tmp/cache/assets/development/sprockets/3c85aa12448df8a4422eea944b8884a7 +0 -0
  377. data/spec/internal/tmp/cache/assets/development/sprockets/3d493c85ea5995f29687c8711bd64adc +0 -0
  378. data/spec/internal/tmp/cache/assets/development/sprockets/{86d8a869d50087c4d6ec6d5a3226a50e → 3d50c3b49d6402f6412754f3b8f68dd2} +0 -0
  379. data/spec/internal/tmp/cache/assets/development/sprockets/3d5cf5c06bd13366e1529e29b9c9aab2 +0 -0
  380. data/spec/internal/tmp/cache/assets/development/sprockets/3f6512eecb81fc5109f8525b86ff0c39 +0 -0
  381. data/spec/internal/tmp/cache/assets/development/sprockets/3f6f0650640715349ce0933350e33da2 +0 -0
  382. data/spec/internal/tmp/cache/assets/development/sprockets/{d2dfcd47ce3adc86f47b449f24745b1a → 410fa392dccb92b749a49559fa86ff8c} +0 -0
  383. data/spec/internal/tmp/cache/assets/development/sprockets/41dfbffb6b2cdab33da9d85bb2763646 +0 -0
  384. data/spec/internal/tmp/cache/assets/development/sprockets/41e08d11cf290b312374f52f66646092 +0 -0
  385. data/spec/internal/tmp/cache/assets/development/sprockets/42aa296d7f6e3525e029fc1e59278012 +0 -0
  386. data/spec/internal/tmp/cache/assets/development/sprockets/43820e20c90643cf755735d0d6747662 +0 -0
  387. data/spec/internal/tmp/cache/assets/development/sprockets/44174c38552cc7d5ced165e1d0c3799f +0 -0
  388. data/spec/internal/tmp/cache/assets/development/sprockets/44808824cbd607d22270797a2d368a8d +0 -0
  389. data/spec/internal/tmp/cache/assets/development/sprockets/44b85da025c048e69be77ef23b9d0812 +0 -0
  390. data/spec/internal/tmp/cache/assets/development/sprockets/47b0b07eb2966676f7cafb883944b8ce +0 -0
  391. data/spec/internal/tmp/cache/assets/development/sprockets/47fde44f5cc949279070c66d11c299bc +0 -0
  392. data/spec/internal/tmp/cache/assets/development/sprockets/4830479bad768b73f66602e8597ba92f +0 -0
  393. data/spec/internal/tmp/cache/assets/development/sprockets/488922e5cf8a341f6aa2cfe039fe8203 +0 -0
  394. data/spec/internal/tmp/cache/assets/development/sprockets/48a76145f0ff893de99b3d4b147a8d0e +0 -0
  395. data/spec/internal/tmp/cache/assets/development/sprockets/{4761605829e0bf25912d89323f36bcf5 → 48eab918a936d36cf3154f7cf16742dd} +0 -0
  396. data/spec/internal/tmp/cache/assets/development/sprockets/49c105a8be35fc4290d59be5a1433911 +0 -0
  397. data/spec/internal/tmp/cache/assets/development/sprockets/{3c3580ecdde42529ab0a1904cbc21c01 → 4a77011960ed922d7b2feb8cb4c3a536} +0 -0
  398. data/spec/internal/tmp/cache/assets/development/sprockets/4aa239d5715945e0614c7c53727b4bb0 +0 -0
  399. data/spec/internal/tmp/cache/assets/development/sprockets/4b0f5e22f7da136a3a9bab43f65e275f +0 -0
  400. data/spec/internal/tmp/cache/assets/development/sprockets/4b78632f035b14c02c08dabe96c5719f +0 -0
  401. data/spec/internal/tmp/cache/assets/development/sprockets/4c09aa4c1f212b846b7bf452e7fd3c13 +0 -0
  402. data/spec/internal/tmp/cache/assets/development/sprockets/4c5c3e2c4998a25b08dbcad13d3fe5cb +0 -0
  403. data/spec/internal/tmp/cache/assets/development/sprockets/4ccbdd87f2c58d06e759b0170bd032c6 +0 -0
  404. data/spec/internal/tmp/cache/assets/development/sprockets/4d8faba557e30104496e0fc9ffbfcd84 +0 -0
  405. data/spec/internal/tmp/cache/assets/development/sprockets/4da01a28aa6b0c1b207c5b187cad3d01 +0 -0
  406. data/spec/internal/tmp/cache/assets/development/sprockets/4ddc7f7c1fbabcbba7dc27af04cd49bb +0 -0
  407. data/spec/internal/tmp/cache/assets/development/sprockets/4de1fedf2318096f3b698cb2191a3ee6 +0 -0
  408. data/spec/internal/tmp/cache/assets/development/sprockets/{c46514d856d34584848e48e83079b7f2 → 4dfadec407676d00200fb814b77a5f74} +0 -0
  409. data/spec/internal/tmp/cache/assets/development/sprockets/4e1aa225d51f87578e51fd8952a22f8f +0 -0
  410. data/spec/internal/tmp/cache/assets/development/sprockets/4e97c05116c6c88e4155778dc782a728 +0 -0
  411. data/spec/internal/tmp/cache/assets/development/sprockets/50b1062798389cc230e12d74dac8abfb +0 -0
  412. data/spec/internal/tmp/cache/assets/development/sprockets/5122b19dcad534ac732fa0c423ce6025 +0 -0
  413. data/spec/internal/tmp/cache/assets/development/sprockets/{f00bc5dd1fdfea0de5c68dbd96ab23ce → 513ee7b0676b026a04003eccf425e182} +0 -0
  414. data/spec/internal/tmp/cache/assets/development/sprockets/51c23e07a2d05145fd67545aee34cb7c +0 -0
  415. data/spec/internal/tmp/cache/assets/development/sprockets/{e6d08b3d99f32bdbd523c93aca049553 → 53d5aad39facbecb1bc442aaf5347410} +0 -0
  416. data/spec/internal/tmp/cache/assets/development/sprockets/{cf56ba81edfa490a7ab4e26c3dbb0c4a → 53f42c79069d00766940cf627ccb8fa1} +0 -0
  417. data/spec/internal/tmp/cache/assets/development/sprockets/569ea9e25342e930132882b8a33acb90 +0 -0
  418. data/spec/internal/tmp/cache/assets/development/sprockets/56c4f2c8b0f33093a14aa209e7096cae +0 -0
  419. data/spec/internal/tmp/cache/assets/development/sprockets/{e3a536ec0e35836c36e8c7eed6d9c9d0 → 56e398fba393e9ce38218c2f50891491} +0 -0
  420. data/spec/internal/tmp/cache/assets/development/sprockets/5762f5e65fb28301f6cb10f5a25c1f46 +0 -0
  421. data/spec/internal/tmp/cache/assets/development/sprockets/57fa4466f358fece6b37c12b28b3c54a +0 -0
  422. data/spec/internal/tmp/cache/assets/development/sprockets/58007042423d4d00d64b4783d4eb298f +0 -0
  423. data/spec/internal/tmp/cache/assets/development/sprockets/58d7eb11ce5bdb9feb18bcec0c40967e +0 -0
  424. data/spec/internal/tmp/cache/assets/development/sprockets/59074a780ceb9cddb029bbd0bbc87be5 +0 -0
  425. data/spec/internal/tmp/cache/assets/development/sprockets/598f37b6258fe8342c6ff6ef4cae3610 +0 -0
  426. data/spec/internal/tmp/cache/assets/development/sprockets/59b693ecdc1bb0178d477f9eec98af71 +0 -0
  427. data/spec/internal/tmp/cache/assets/development/sprockets/5aad21aaee69b8d94b91c742cbdd4eed +0 -0
  428. data/spec/internal/tmp/cache/assets/development/sprockets/5ac87ac38c1a33107476cbf7536b6c4e +0 -0
  429. data/spec/internal/tmp/cache/assets/development/sprockets/5c630c5021d61aa9c75198666cfe0c97 +0 -0
  430. data/spec/internal/tmp/cache/assets/development/sprockets/5d7c618214093d70287ec324bb0ebc79 +0 -0
  431. data/spec/internal/tmp/cache/assets/development/sprockets/5fce11d1861c4531209e84917b299da1 +0 -0
  432. data/spec/internal/tmp/cache/assets/development/sprockets/5fed6af1bbf83ecbffc4e93c896ef251 +0 -0
  433. data/spec/internal/tmp/cache/assets/development/sprockets/5ff6853554a80626bffe276de5104435 +0 -0
  434. data/spec/internal/tmp/cache/assets/development/sprockets/6396bf13e42704254c25d5d1d4971514 +0 -0
  435. data/spec/internal/tmp/cache/assets/development/sprockets/63982c992f5278c4b623231ef9ab0eef +0 -0
  436. data/spec/internal/tmp/cache/assets/development/sprockets/63c5aeb60881a6944e88aadffc888610 +0 -0
  437. data/spec/internal/tmp/cache/assets/development/sprockets/64a4f3ac595f36c281b2032e1b7859b7 +0 -0
  438. data/spec/internal/tmp/cache/assets/development/sprockets/64c891e8558ed68235f8e95fb3c4c46e +0 -0
  439. data/spec/internal/tmp/cache/assets/development/sprockets/65dbf1a1ca834a06156da31c3ebc3b72 +0 -0
  440. data/spec/internal/tmp/cache/assets/development/sprockets/6692f91d0a02728a48b216240b699340 +0 -0
  441. data/spec/internal/tmp/cache/assets/development/sprockets/66f8fc3b5bbf1829a95239083e9abdb9 +0 -0
  442. data/spec/internal/tmp/cache/assets/development/sprockets/69131c6d5efd662e3a881113aeaf1457 +0 -0
  443. data/spec/internal/tmp/cache/assets/development/sprockets/6affba8d045789379abbca581552721e +0 -0
  444. data/spec/internal/tmp/cache/assets/development/sprockets/{6c52a354f8b73f507365a2ff1d8080a6 → 6b339c204a99f2fc9cc7285a5cc724f8} +0 -0
  445. data/spec/internal/tmp/cache/assets/development/sprockets/{96c8ae4c00b9346f3a3b252b760edff2 → 6bd044fd99112623f7bbc0c0c72cfe5d} +0 -0
  446. data/spec/internal/tmp/cache/assets/development/sprockets/{6e5f821b276cff74fc025bc3854b93a2 → 6c0202b6f4ed910f48406a2c59b96910} +0 -0
  447. data/spec/internal/tmp/cache/assets/development/sprockets/6c4d1cfcea8ceb31e05fef0d21a676d1 +0 -0
  448. data/spec/internal/tmp/cache/assets/development/sprockets/6dcca103a05e7dec07d0109d76de5760 +0 -0
  449. data/spec/internal/tmp/cache/assets/development/sprockets/{5a4df8784eb7a65e02d580bd601ac799 → 6fb17549bc82b73aec4f860e8900cc4f} +0 -0
  450. data/spec/internal/tmp/cache/assets/development/sprockets/{cf5df53fab8424c4a8665b8e4d29f95b → 70224c23493d324eef970a2f561d8513} +0 -0
  451. data/spec/internal/tmp/cache/assets/development/sprockets/{5ebb0b22385b7eb737fa03365f6a0957 → 710cac84acbc3fbcdc31a9d72a20cbc5} +0 -0
  452. data/spec/internal/tmp/cache/assets/development/sprockets/718f92def8fdbd038b8ad41d90c0a03c +0 -0
  453. data/spec/internal/tmp/cache/assets/development/sprockets/730b1ab7ef91eceb501f8b5a2e16ceea +0 -0
  454. data/spec/internal/tmp/cache/assets/development/sprockets/74a0baf435dbaad6f7198d080f7b9cd7 +0 -0
  455. data/spec/internal/tmp/cache/assets/development/sprockets/7534f6b512681a563a114c9f019fae93 +0 -0
  456. data/spec/internal/tmp/cache/assets/development/sprockets/76b43bd6a99fa243324f7ab1745d0dad +0 -0
  457. data/spec/internal/tmp/cache/assets/development/sprockets/{8dc1275a17ff8cd14f8dce4dc0f50b07 → 76c6820496f9a826b0dc8dd92124cf9d} +0 -0
  458. data/spec/internal/tmp/cache/assets/development/sprockets/76e972672c2b2a321ca16d4a883bad21 +0 -0
  459. data/spec/internal/tmp/cache/assets/development/sprockets/783095ea9d7ae156a7fe4296d215c389 +0 -0
  460. data/spec/internal/tmp/cache/assets/development/sprockets/787c4cc124873317a02bf12b37125da3 +0 -0
  461. data/spec/internal/tmp/cache/assets/development/sprockets/78ec12dea3f6814541f1714f12a50cbe +0 -0
  462. data/spec/internal/tmp/cache/assets/development/sprockets/79453e286d34eec57491e2689f152576 +0 -0
  463. data/spec/internal/tmp/cache/assets/development/sprockets/79aacc65f1d9b5ed87e940b077cec624 +0 -0
  464. data/spec/internal/tmp/cache/assets/development/sprockets/79b434e80de65d438ac15f5741cf500a +0 -0
  465. data/spec/internal/tmp/cache/assets/development/sprockets/79bea20297d19c854fd89bec41627417 +0 -0
  466. data/spec/internal/tmp/cache/assets/development/sprockets/{98dce8d0da7c14fc18ee30372d97e1f3 → 79eb58feda9adc4c5d57d5835b8f6e96} +0 -0
  467. data/spec/internal/tmp/cache/assets/development/sprockets/{a8d7ba699e5d11b76ea93f04d57fd863 → 7bab8e39aeb9ad4b34a39647cbaaedef} +0 -0
  468. data/spec/internal/tmp/cache/assets/development/sprockets/7bacd667825c2fdb5478ac382b3ddbab +0 -0
  469. data/spec/internal/tmp/cache/assets/development/sprockets/{55be3abbdb43d2c9ec2ae66922f925e8 → 7e66d411aab2da7332f88f3d3c85def7} +0 -0
  470. data/spec/internal/tmp/cache/assets/development/sprockets/7f723d2ffff142395f84669fb576f674 +0 -0
  471. data/spec/internal/tmp/cache/assets/development/sprockets/7f9d183de3e3aaba2fb91a253c82e8ff +0 -0
  472. data/spec/internal/tmp/cache/assets/development/sprockets/8122b30c241cada8d0fd1ffe8ba5df97 +0 -0
  473. data/spec/internal/tmp/cache/assets/development/sprockets/818787a5167c6f5679f4728e4ed346c9 +0 -0
  474. data/spec/internal/tmp/cache/assets/development/sprockets/823cd4b1bbb97443e3c2af20947a63bd +0 -0
  475. data/spec/internal/tmp/cache/assets/development/sprockets/{b7b1c48db47848f47133c5764fa382cb → 82958330563e8740463f535c05e6e879} +0 -0
  476. data/spec/internal/tmp/cache/assets/development/sprockets/{b4bb179448b36f0034918dcfab12c926 → 82fd05b9c34737718d0f27d0cbd6ecc6} +0 -0
  477. data/spec/internal/tmp/cache/assets/development/sprockets/844a8fb22232011e4615da972bab9a18 +0 -0
  478. data/spec/internal/tmp/cache/assets/development/sprockets/854d66a63e05a3368d8755d2e05e044d +0 -0
  479. data/spec/internal/tmp/cache/assets/development/sprockets/855c7b53a2dbd3ca20fd13d68d61083b +0 -0
  480. data/spec/internal/tmp/cache/assets/development/sprockets/85b92289cf2d32ab46f22e2e9e594180 +0 -0
  481. data/spec/internal/tmp/cache/assets/development/sprockets/{730a4a6ac75e99962ad3b28ce6e9f0c5 → 85e3df2cf9d984eccba96f5c5fcb1fb5} +0 -0
  482. data/spec/internal/tmp/cache/assets/development/sprockets/8617a93f3627883914dd46896988d872 +0 -0
  483. data/spec/internal/tmp/cache/assets/development/sprockets/87207c4b2ac6febfa3e2346b3716ebef +0 -0
  484. data/spec/internal/tmp/cache/assets/development/sprockets/872b2a01f03690d0f86481b1e1a12d4f +0 -0
  485. data/spec/internal/tmp/cache/assets/development/sprockets/{ab238a0aefc54e7daaabf1e832532679 → 878997c85a72d912f5a037dca7b3f87c} +0 -0
  486. data/spec/internal/tmp/cache/assets/development/sprockets/884e7ea5ccf5caefb8651860538b96e5 +0 -0
  487. data/spec/internal/tmp/cache/assets/development/sprockets/885f0c17e1cf2ab01eb9b94e7954fc28 +0 -0
  488. data/spec/internal/tmp/cache/assets/development/sprockets/88ac23cb21a6625ef98c905ebf3bae36 +0 -0
  489. data/spec/internal/tmp/cache/assets/development/sprockets/88e2a32b7803c5c4fe6767abf9be22fe +0 -0
  490. data/spec/internal/tmp/cache/assets/development/sprockets/{d902d5226d28113d2e1bcb97ac495d2b → 896b6e4ab1e22764ea1204d6c45d14a7} +0 -0
  491. data/spec/internal/tmp/cache/assets/development/sprockets/8cbaa85a9ad4367edc004e66abea0764 +0 -0
  492. data/spec/internal/tmp/cache/assets/development/sprockets/{a564546134c2529455391150f783933b → 8cff103307078a5fcbc08fd369e13ea6} +0 -0
  493. data/spec/internal/tmp/cache/assets/development/sprockets/8d0cfbe7a6c0ba55b4929a05813fb460 +0 -0
  494. data/spec/internal/tmp/cache/assets/development/sprockets/8e0e1643243abb723143aa82d2e01b14 +0 -0
  495. data/spec/internal/tmp/cache/assets/development/sprockets/9107cdc4a4ab8e51362bfcc200838c59 +0 -0
  496. data/spec/internal/tmp/cache/assets/development/sprockets/912439ae82f977056111749fb5685544 +0 -0
  497. data/spec/internal/tmp/cache/assets/development/sprockets/9170af56c04f9ea63ea7c43ec943884d +0 -0
  498. data/spec/internal/tmp/cache/assets/development/sprockets/91b396b480293aaeec2ff599af929465 +0 -0
  499. data/spec/internal/tmp/cache/assets/development/sprockets/93aaa9231a32901266b05632f3d35ecd +0 -0
  500. data/spec/internal/tmp/cache/assets/development/sprockets/9567d876f8d154b64f16ffb8639f5143 +0 -0
  501. data/spec/internal/tmp/cache/assets/development/sprockets/95a8054a57ae6193f702bb36c6b0877a +0 -0
  502. data/spec/internal/tmp/cache/assets/development/sprockets/9637356c49c94756bd869040094d2819 +0 -0
  503. data/spec/internal/tmp/cache/assets/development/sprockets/{c87fa4ec7d618f5683dc6440471804c3 → 96b569f9b043f01befb531a01b40f12b} +0 -0
  504. data/spec/internal/tmp/cache/assets/development/sprockets/998b13c1c5b5a1d8f6db31ede1a666c1 +0 -0
  505. data/spec/internal/tmp/cache/assets/development/sprockets/9a57dd816852da1ffe3324a0ce5a382e +0 -0
  506. data/spec/internal/tmp/cache/assets/development/sprockets/{0fa8c0acf1ce2c16d2dee679e30b6fe7 → 9b012237694b7c582f730b0c5c1896a3} +0 -0
  507. data/spec/internal/tmp/cache/assets/development/sprockets/9c48e05da7c08d91d52b00fc3d012e76 +0 -0
  508. data/spec/internal/tmp/cache/assets/development/sprockets/9d3cc5d05005480d3924de075d049605 +0 -0
  509. data/spec/internal/tmp/cache/assets/development/sprockets/9d654f3385a46cd953a7ccb7e419361a +0 -0
  510. data/spec/internal/tmp/cache/assets/development/sprockets/9e10db4e4b7f36136227d3a3794ddeb6 +0 -0
  511. data/spec/internal/tmp/cache/assets/development/sprockets/9fa96555ddc92f08931c322212cbaaf7 +0 -0
  512. data/spec/internal/tmp/cache/assets/development/sprockets/9fb7b1122b855b6349caebd9560b1594 +0 -0
  513. data/spec/internal/tmp/cache/assets/development/sprockets/9ffd880bbb95946077cee20975a45334 +0 -0
  514. data/spec/internal/tmp/cache/assets/development/sprockets/a0c35895c526b4a7bec46d5e2f5e90f9 +0 -0
  515. data/spec/internal/tmp/cache/assets/development/sprockets/a17880a08f4630b5460312f5f2fb0bd8 +0 -0
  516. data/spec/internal/tmp/cache/assets/development/sprockets/{3bd99e00e6996462a312bb35737cd8cf → a19d3959f71213f505ed4e5c17b7fbfa} +0 -0
  517. data/spec/internal/tmp/cache/assets/development/sprockets/a25dd57735707013f18f5a3c33e85b6b +0 -0
  518. data/spec/internal/tmp/cache/assets/development/sprockets/a426ead2559fd41fb25e93e5e508b68b +0 -0
  519. data/spec/internal/tmp/cache/assets/development/sprockets/a6c43ee47213bd2e8ecf079f20213e99 +0 -0
  520. data/spec/internal/tmp/cache/assets/development/sprockets/a7c435b70cdea18fc37ef4232b7c242e +0 -0
  521. data/spec/internal/tmp/cache/assets/development/sprockets/a7d54f82dd80700f3415d29c0317eac3 +0 -0
  522. data/spec/internal/tmp/cache/assets/development/sprockets/a8f5d3fdc2cd9ed876be4e3f7ee01158 +0 -0
  523. data/spec/internal/tmp/cache/assets/development/sprockets/a9c6519419b33989eb895c3ec1c46b8c +0 -0
  524. data/spec/internal/tmp/cache/assets/development/sprockets/a9db6dfc37125977e8f1791206467ae5 +0 -0
  525. data/spec/internal/tmp/cache/assets/development/sprockets/ad4a54c43c2a4c3874bfde1c9f08c248 +0 -0
  526. data/spec/internal/tmp/cache/assets/development/sprockets/ad57e4dc2125299b0bf78368c3affe2d +0 -0
  527. data/spec/internal/tmp/cache/assets/development/sprockets/ae6f4c46a30db791cc072a3ea4a0b728 +0 -0
  528. data/spec/internal/tmp/cache/assets/development/sprockets/{8e538dcd838e13cd01df6232d3bbf6eb → ae7a3375e7492516ea717101bf30e70e} +0 -0
  529. data/spec/internal/tmp/cache/assets/development/sprockets/{a9a4eb69fc8dde12d85f70d527943e21 → aee3d21de73eff64a1d9a474b6f405f8} +0 -0
  530. data/spec/internal/tmp/cache/assets/development/sprockets/b00e3ec4959103e8d4c6c92155595a70 +0 -0
  531. data/spec/internal/tmp/cache/assets/development/sprockets/b03190a1a9d61e8337e69577410feab9 +0 -0
  532. data/spec/internal/tmp/cache/assets/development/sprockets/b09ca6acc36947638840365aca9a0937 +0 -0
  533. data/spec/internal/tmp/cache/assets/development/sprockets/b107afde229d969ef4aeba7c4975ed8a +0 -0
  534. data/spec/internal/tmp/cache/assets/development/sprockets/b170d80fcd8f2f6b71c72b185bda8144 +0 -0
  535. data/spec/internal/tmp/cache/assets/development/sprockets/{c4fecff193a29f9281bb3bdb2449b9d9 → b35c1d0dd13ec54c27d18f416099bd1c} +0 -0
  536. data/spec/internal/tmp/cache/assets/development/sprockets/b38ab7a08d6c7cc5844448045be30ef9 +0 -0
  537. data/spec/internal/tmp/cache/assets/development/sprockets/b53a1cb5b70050587ed90698a8d365c1 +0 -0
  538. data/spec/internal/tmp/cache/assets/development/sprockets/b5572ee76709f2b4b75d8bd788fee83a +0 -0
  539. data/spec/internal/tmp/cache/assets/development/sprockets/{a3a62c83e0c99b45aa7b77d8ebc26425 → b559fb879d30b762405fec75c9d13b61} +0 -0
  540. data/spec/internal/tmp/cache/assets/development/sprockets/{7f7b2409070f5385918fb9d16bbdd985 → b56be4d5d41d872e930e3cb3c12a6a21} +0 -0
  541. data/spec/internal/tmp/cache/assets/development/sprockets/b68ee86b3c392a0bc54dc07890df5aaf +0 -0
  542. data/spec/internal/tmp/cache/assets/development/sprockets/b6e9ada9452b3c8b5376de6b1fa18e48 +0 -0
  543. data/spec/internal/tmp/cache/assets/development/sprockets/{abc05951ab89698f62aa2277efbc2035 → b7162fef615f5627fc58d60b9505448f} +0 -0
  544. data/spec/internal/tmp/cache/assets/development/sprockets/b7cabb4f68d7eff8eab5cc65fe9f372f +0 -0
  545. data/spec/internal/tmp/cache/assets/development/sprockets/{0d7ae3cdb0de94aa2f3a1acd2ebebda3 → b833e8d24a512d9c662c2d5f6d0c3dc6} +0 -0
  546. data/spec/internal/tmp/cache/assets/development/sprockets/b89461ef450cbd9ee6c695fecb44fcc8 +0 -0
  547. data/spec/internal/tmp/cache/assets/development/sprockets/ba6c1dd16051d384e5a0f23b07b86d41 +0 -0
  548. data/spec/internal/tmp/cache/assets/development/sprockets/baca6a67fcb2c4c6372a5a862c61da3a +0 -0
  549. data/spec/internal/tmp/cache/assets/development/sprockets/bb2f13da626b86b42734cea8b8292eb7 +0 -0
  550. data/spec/internal/tmp/cache/assets/development/sprockets/bb9265f79a0c7e1d30eb7149227ae545 +0 -0
  551. data/spec/internal/tmp/cache/assets/development/sprockets/bbe56b1188e940f75968817b6ee5f328 +0 -0
  552. data/spec/internal/tmp/cache/assets/development/sprockets/{f7da43110228dfee54811d899a95948a → bc068a6e10ec2a22b5aef3628f3fb864} +0 -0
  553. data/spec/internal/tmp/cache/assets/development/sprockets/bfec4861bd590b7777783931014ec6c4 +0 -0
  554. data/spec/internal/tmp/cache/assets/development/sprockets/c106381e2f65fe22c7eb958a714eea00 +0 -0
  555. data/spec/internal/tmp/cache/assets/development/sprockets/c1bb841270448425a11db861d5808ed5 +0 -0
  556. data/spec/internal/tmp/cache/assets/development/sprockets/c1f5ac82ea62d639c127d16f92480b0d +0 -0
  557. data/spec/internal/tmp/cache/assets/development/sprockets/c371171e4e21eb6302744a58ba4533e1 +0 -0
  558. data/spec/internal/tmp/cache/assets/development/sprockets/c3aede55093bd529d609fd98bfc20ec0 +0 -0
  559. data/spec/internal/tmp/cache/assets/development/sprockets/c43f4b3870e7fde6355f1224bac27f57 +0 -0
  560. data/spec/internal/tmp/cache/assets/development/sprockets/{d8517199e3550fca93861a841693ffba → c700a806b55d260257bc83b66058990a} +0 -0
  561. data/spec/internal/tmp/cache/assets/development/sprockets/{6816323c113be456fae3d8ddde96a644 → c7cc8dfa30e1520ae2c33f22c3bb68e7} +0 -0
  562. data/spec/internal/tmp/cache/assets/development/sprockets/c852c7ccdafbb5db57f870e09c564b8f +0 -0
  563. data/spec/internal/tmp/cache/assets/development/sprockets/cb07c834edcc7d384725e40311e35f1a +0 -0
  564. data/spec/internal/tmp/cache/assets/development/sprockets/cb1a438619304801c1c7f6f10ff03edc +0 -0
  565. data/spec/internal/tmp/cache/assets/development/sprockets/{40738591614a3c4ba26691141278f7c8 → cb4e2b69e8bbee0043f5a96fbca086bd} +0 -0
  566. data/spec/internal/tmp/cache/assets/development/sprockets/cc902d6f19cf79ba5213a9cd71fdec89 +0 -0
  567. data/spec/internal/tmp/cache/assets/development/sprockets/cc9b1242f0b2bd5d696f6a2f2349ae8a +0 -0
  568. data/spec/internal/tmp/cache/assets/development/sprockets/{516d780b96988a5bf7f06f5e65c51f40 → ccd38ad082f6af80055b53a657fb24f7} +0 -0
  569. data/spec/internal/tmp/cache/assets/development/sprockets/cd293158b6896cfb3175bdb8f0edd216 +0 -0
  570. data/spec/internal/tmp/cache/assets/development/sprockets/cdf781a877c0d80e6aa980d590c9ea0e +0 -0
  571. data/spec/internal/tmp/cache/assets/development/sprockets/{7d18d1fb96a85ec2595ee8570565f96a → cf3c7598aa8759b0ae1484ba93c69220} +0 -0
  572. data/spec/internal/tmp/cache/assets/development/sprockets/cf60af83c803e52d6c06f0d562cdc238 +0 -0
  573. data/spec/internal/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  574. data/spec/internal/tmp/cache/assets/development/sprockets/d026a365a4229145fc07e10338ab6c34 +0 -0
  575. data/spec/internal/tmp/cache/assets/development/sprockets/d0358a6b91806c2bda2ec9cbd39355d3 +0 -0
  576. data/spec/internal/tmp/cache/assets/development/sprockets/d0bf34be191200493d602d0d1075abc4 +0 -0
  577. data/spec/internal/tmp/cache/assets/development/sprockets/d0d3aa8d8965189e0dd63de196811274 +0 -0
  578. data/spec/internal/tmp/cache/assets/development/sprockets/d116bf4dc1987a43dae4fd01682a7e96 +0 -0
  579. data/spec/internal/tmp/cache/assets/development/sprockets/d14672da1eb95bcb002940db40d8af2f +0 -0
  580. data/spec/internal/tmp/cache/assets/development/sprockets/d147f38a1b4f6afa0f3d0eb82d2cc2fe +0 -0
  581. data/spec/internal/tmp/cache/assets/development/sprockets/d21daa2e93d652c874b796e557c67af5 +0 -0
  582. data/spec/internal/tmp/cache/assets/development/sprockets/d22565106c6934760a7b30030d4d6218 +0 -0
  583. data/spec/internal/tmp/cache/assets/development/sprockets/d242948449b16ccf4cea1d4e3d27fa17 +0 -0
  584. data/spec/internal/tmp/cache/assets/development/sprockets/d26c008d41750ad1d89b6064cf840e53 +0 -0
  585. data/spec/internal/tmp/cache/assets/development/sprockets/{937ea6a25de11a7c53b17df494cc647c → d3735efda0f39e7f62f6a94f881e0fe0} +0 -0
  586. data/spec/internal/tmp/cache/assets/development/sprockets/d3934384e24282abe45892dac1926d06 +0 -0
  587. data/spec/internal/tmp/cache/assets/development/sprockets/d4a27d929aa833b31bac70ae08cac879 +0 -0
  588. data/spec/internal/tmp/cache/assets/development/sprockets/d5b10d40d34be6d971584e9c30858cb9 +0 -0
  589. data/spec/internal/tmp/cache/assets/development/sprockets/d680afa442c4247864f833541a432304 +0 -0
  590. data/spec/internal/tmp/cache/assets/development/sprockets/d7169f94145735839c5997e916f770b3 +0 -0
  591. data/spec/internal/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  592. data/spec/internal/tmp/cache/assets/development/sprockets/{051973966368b5da4bf9aa26faffb186 → d79f5c9d64b788ba459b1b3e97762bcf} +0 -0
  593. data/spec/internal/tmp/cache/assets/development/sprockets/d83d0b54ff07dec55904095f97c91923 +0 -0
  594. data/spec/internal/tmp/cache/assets/development/sprockets/d857d1ce7245aff3c08085a90f318d1b +0 -0
  595. data/spec/internal/tmp/cache/assets/development/sprockets/{eabee620cb946452a02ce89d4c4b63e2 → da80020da94ad40030812e6021256ed0} +0 -0
  596. data/spec/internal/tmp/cache/assets/development/sprockets/dbd348e834265fd900d1ad87ac526e0b +0 -0
  597. data/spec/internal/tmp/cache/assets/development/sprockets/dd1f54630bfc96a78c8d74354eaf5626 +0 -0
  598. data/spec/internal/tmp/cache/assets/development/sprockets/ddb0f76b24ea475ad84191b4d16f1c39 +0 -0
  599. data/spec/internal/tmp/cache/assets/development/sprockets/debfd40e67c933ffddd3985195bed1ae +0 -0
  600. data/spec/internal/tmp/cache/assets/development/sprockets/dee4c316960c81ad77d05ae71276731d +0 -0
  601. data/spec/internal/tmp/cache/assets/development/sprockets/df0714c7ed93b6f849d260a087eae958 +0 -0
  602. data/spec/internal/tmp/cache/assets/development/sprockets/df90d79d6f00cb8a29af9368d23f1357 +0 -0
  603. data/spec/internal/tmp/cache/assets/development/sprockets/dfddc683acafc4ba0743bbbffe383ebf +0 -0
  604. data/spec/internal/tmp/cache/assets/development/sprockets/e00f44d805fa88365074a4950bda932d +0 -0
  605. data/spec/internal/tmp/cache/assets/development/sprockets/e04d4c8557f581a2a609dee951b093cf +0 -0
  606. data/spec/internal/tmp/cache/assets/development/sprockets/{0e3209507516c9c9363f748ea9bfad32 → e0e248fc5ddfa19adca682cfabcd2e28} +0 -0
  607. data/spec/internal/tmp/cache/assets/development/sprockets/e147bd5ca7f7a8a7b87aef348c942738 +0 -0
  608. data/spec/internal/tmp/cache/assets/development/sprockets/e16312e2105b505177d87859413b2419 +0 -0
  609. data/spec/internal/tmp/cache/assets/development/sprockets/e17abe9c3aad2f81de9aa1f1d70d0ad6 +0 -0
  610. data/spec/internal/tmp/cache/assets/development/sprockets/e2e2a0f694d3526de7ca6b75f1457398 +0 -0
  611. data/spec/internal/tmp/cache/assets/development/sprockets/e31ff11cd01012ad5087fdc29a5f65f3 +0 -0
  612. data/spec/internal/tmp/cache/assets/development/sprockets/e379e74f9415448434485f855e740904 +0 -0
  613. data/spec/internal/tmp/cache/assets/development/sprockets/e4dce3b503ed6597144913c16e049162 +0 -0
  614. data/spec/internal/tmp/cache/assets/development/sprockets/e53aded534313c85cf4398326926986b +0 -0
  615. data/spec/internal/tmp/cache/assets/development/sprockets/{41d7b1a5038b16bafeb342bad8e48a2f → e5baf2ffca671001462c50d3785429ed} +0 -0
  616. data/spec/internal/tmp/cache/assets/development/sprockets/e777040938c8046fadb04b30e2bd3744 +0 -0
  617. data/spec/internal/tmp/cache/assets/development/sprockets/e7e24f9e9a94109161ca736960a76698 +0 -0
  618. data/spec/internal/tmp/cache/assets/development/sprockets/e8d5600e9fa8a57b06d87e08144cc0e2 +0 -0
  619. data/spec/internal/tmp/cache/assets/development/sprockets/e955e00016f25939765e2e0162be2de8 +0 -0
  620. data/spec/internal/tmp/cache/assets/development/sprockets/ea2e81d68271a1311a252e134e6a7420 +0 -0
  621. data/spec/internal/tmp/cache/assets/development/sprockets/ea7de405fbbd8e79e27ebce6a7460634 +0 -0
  622. data/spec/internal/tmp/cache/assets/development/sprockets/eb1d383518faa08f47c5bdf271ca1e10 +0 -0
  623. data/spec/internal/tmp/cache/assets/development/sprockets/{44cc193c3ee9969c7407c28a15fec9e7 → ec038e01405200984a7723d5515901a1} +0 -0
  624. data/spec/internal/tmp/cache/assets/development/sprockets/ecce95752935de663567612e362bb5af +0 -0
  625. data/spec/internal/tmp/cache/assets/development/sprockets/ee234c06a113124f3a40908d0b8a9529 +0 -0
  626. data/spec/internal/tmp/cache/assets/development/sprockets/ef34d43e05495673836bdd6e70514aa6 +0 -0
  627. data/spec/internal/tmp/cache/assets/development/sprockets/{5c5d1c4916c8d9521ca7b5edefae2886 → efcba5a34ce0c1bb05f8e1040c0778c9} +0 -0
  628. data/spec/internal/tmp/cache/assets/development/sprockets/f01bbab1fb0d73421661c5551aea1ad6 +0 -0
  629. data/spec/internal/tmp/cache/assets/development/sprockets/{10fc50ed964987afb63c9435dcaa21d4 → f16fd066eb3bf5d287ab8a38419ca2b2} +0 -0
  630. data/spec/internal/tmp/cache/assets/development/sprockets/f2a30a183248e8448b375637c4495617 +0 -0
  631. data/spec/internal/tmp/cache/assets/development/sprockets/f39a11a2a5f3f365b8a6ba53a74eca62 +0 -0
  632. data/spec/internal/tmp/cache/assets/development/sprockets/f4dd57625cf983b1687aed3f8d5f4630 +0 -0
  633. data/spec/internal/tmp/cache/assets/development/sprockets/f5bd213bb96dfd950c8a8669fdd2fee1 +0 -0
  634. data/spec/internal/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  635. data/spec/internal/tmp/cache/assets/development/sprockets/f83c23cb55a34edadc8d7d92c1e8aafe +0 -0
  636. data/spec/internal/tmp/cache/assets/development/sprockets/f97be24c0fdd87ba3dbf0b1e04b9d5ab +0 -0
  637. data/spec/internal/tmp/cache/assets/development/sprockets/fb8b6a2034268f322ffbe80e724a474a +0 -0
  638. data/spec/internal/tmp/cache/assets/development/sprockets/fbd571e08be9ae33fd5bffa200c6e191 +0 -0
  639. data/spec/internal/tmp/cache/assets/development/sprockets/fc691d7c0204f44b96ebb16cf7e1b7cf +0 -0
  640. data/spec/internal/tmp/cache/assets/development/sprockets/fd13c098303e9ae828e4af16762f7491 +0 -0
  641. data/spec/internal/tmp/cache/assets/development/sprockets/fed43bc1912cdb19dfa4ab32cf796814 +0 -0
  642. data/spec/internal/tmp/cache/assets/development/sprockets/fef61adda3a2e0ecc385e7ad990e64c5 +0 -0
  643. data/spec/internal/tmp/cache/assets/development/sprockets/ff59f2db79507800737f7d65923b20fb +0 -0
  644. data/spec/internal/tmp/cache/assets/development/sprockets/ff79224e9955773ad292fb8bf1bd8c6d +0 -0
  645. data/spec/jobs/spotlight/reindex_job_spec.rb +36 -0
  646. data/spec/lib/spotlight/catalog/access_controls_enforcement_spec.rb +26 -1
  647. data/spec/mailers/spotlight/indexing_complete_mailer_spec.rb +31 -0
  648. data/spec/models/solr_document_spec.rb +14 -2
  649. data/spec/models/spotlight/analytics/ga_spec.rb +7 -0
  650. data/spec/models/spotlight/appearance_spec.rb +8 -19
  651. data/spec/models/spotlight/blacklight_configuration_spec.rb +17 -6
  652. data/spec/models/spotlight/exhibit_spec.rb +61 -6
  653. data/spec/models/spotlight/home_page_spec.rb +5 -0
  654. data/spec/models/spotlight/masthead_spec.rb +26 -0
  655. data/spec/models/spotlight/page_spec.rb +13 -0
  656. data/spec/models/spotlight/resource_spec.rb +22 -6
  657. data/spec/models/spotlight/resources/csv_spec.rb +3 -4
  658. data/spec/models/spotlight/resources/open_graph_spec.rb +3 -1
  659. data/spec/models/spotlight/resources/upload_spec.rb +43 -11
  660. data/spec/models/spotlight/solr_document_images_spec.rb +35 -0
  661. data/spec/models/spotlight/solr_document_sidecar_spec.rb +1 -1
  662. data/spec/models/spotlight/solr_document_uploaded_resource_spec.rb +3 -3
  663. data/spec/models/spotlight/spotlight_image_derivatives_spec.rb +17 -0
  664. data/spec/serializers/spotlight/exhibit_export_serializer_spec.rb +135 -19
  665. data/spec/test_app_templates/catalog_controller.rb +1 -3
  666. data/spec/uploaders/item_uploader_spec.rb +1 -1
  667. data/spec/views/shared/_analytics.html.erb_spec.rb +19 -0
  668. data/spec/views/shared/_exhibit_masthead.html.erb_spec.rb +3 -2
  669. data/spec/views/shared/_footer.html.erb_spec.rb +11 -2
  670. data/spec/views/spotlight/about_pages/index.html.erb_spec.rb +1 -0
  671. data/spec/views/spotlight/blacklight_configuration/edit_sort_fields.html.erb_spec.rb +19 -0
  672. data/spec/views/spotlight/catalog/_edit_default.html.erb_spec.rb +14 -10
  673. data/spec/views/spotlight/catalog/admin.html.erb_spec.rb +2 -0
  674. data/spec/views/spotlight/catalog/edit.html.erb_spec.rb +5 -4
  675. data/spec/views/spotlight/dashboards/_analytics.html.erb_spec.rb +45 -0
  676. data/spec/views/spotlight/searches/index.html.erb_spec.rb +1 -1
  677. data/spec/views/spotlight/sir_trevor/blocks/_item_grid_block.html.erb_spec.rb +30 -0
  678. data/spec/views/spotlight/sir_trevor/blocks/_rule_block.html.erb_spec.rb +10 -0
  679. metadata +744 -437
  680. data/app/assets/javascripts/spotlight/contacts.js +0 -66
  681. data/app/uploaders/spotlight/configurable_uploader_versions.rb +0 -32
  682. data/app/views/catalog/_sort_and_per_page.html.erb +0 -9
  683. data/lib/spotlight/document_presenter.rb +0 -10
  684. data/lib/spotlight/utils.rb +0 -5
  685. data/spec/internal/tmp/cache/assets/development/sass/76af9aec7560d04d963df40a45416b70ab2871c2/_hide-text.scssc +0 -0
  686. data/spec/internal/tmp/cache/assets/development/sass/76af9aec7560d04d963df40a45416b70ab2871c2/_responsive-visibility.scssc +0 -0
  687. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_alerts.scssc +0 -0
  688. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_dropdowns.scssc +0 -0
  689. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_forms.scssc +0 -0
  690. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_glyphicons.scssc +0 -0
  691. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_jumbotron.scssc +0 -0
  692. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_media.scssc +0 -0
  693. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_panels.scssc +0 -0
  694. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_responsive-utilities.scssc +0 -0
  695. data/spec/internal/tmp/cache/assets/development/sass/a93d1aac56750aa34829d32164da13eee9c65c61/_variables.scssc +0 -0
  696. data/spec/internal/tmp/cache/assets/development/sprockets/075b2b1dd922b3b944e8a148266ea987 +0 -0
  697. data/spec/internal/tmp/cache/assets/development/sprockets/07cf2153ff7b442f6c51c2b9830d2b11 +0 -0
  698. data/spec/internal/tmp/cache/assets/development/sprockets/21bbeb02aacfe5271ad51165c036a90f +0 -0
  699. data/spec/internal/tmp/cache/assets/development/sprockets/279bb0afbf2ba418ad1dc6c27815c06a +0 -0
  700. data/spec/internal/tmp/cache/assets/development/sprockets/3414a667874d0d7d792c1ac7bb46dbd6 +0 -0
  701. data/spec/internal/tmp/cache/assets/development/sprockets/3806f3e92c91e3c1dc095b3fd992e280 +0 -0
  702. data/spec/internal/tmp/cache/assets/development/sprockets/3d834f38ce32201fae54a8c73520985a +0 -0
  703. data/spec/internal/tmp/cache/assets/development/sprockets/456a14c81ae802d3da639952ab5c67bb +0 -0
  704. data/spec/internal/tmp/cache/assets/development/sprockets/8e5377b9bfa6cc0ae3a38b6b60c9ba51 +0 -0
  705. data/spec/internal/tmp/cache/assets/development/sprockets/931163a8883a2de7e298b6a4b978bf19 +0 -0
  706. data/spec/internal/tmp/cache/assets/development/sprockets/983123facb21eb0a07ae4104dd9e43fb +0 -0
  707. data/spec/internal/tmp/cache/assets/development/sprockets/9e17a47718a5cf05e0d896544952a4a6 +0 -0
  708. data/spec/internal/tmp/cache/assets/development/sprockets/a193d89d4cb8946afb4d91de19bb833c +0 -0
  709. data/spec/internal/tmp/cache/assets/development/sprockets/a64b8d784ca28b2667126732d72a5a69 +0 -0
  710. data/spec/internal/tmp/cache/assets/development/sprockets/aae49c4428a8f622fa1e6ee516d69312 +0 -0
  711. data/spec/internal/tmp/cache/assets/development/sprockets/b220a3ad0a21879eb0c3e59fddae37a4 +0 -0
  712. data/spec/internal/tmp/cache/assets/development/sprockets/b9723f15f57ebd20834c4e290c276b31 +0 -0
  713. data/spec/internal/tmp/cache/assets/development/sprockets/bd77632e0824d3d4dcc013af97a3cef0 +0 -0
  714. data/spec/internal/tmp/cache/assets/development/sprockets/c8cb3077b9acf5a76cf984e9f86ddabf +0 -0
  715. data/spec/internal/tmp/cache/assets/development/sprockets/cd451ade16b60a6f5daa1bdb299a0101 +0 -0
  716. data/spec/internal/tmp/cache/assets/development/sprockets/ce3ffa1339c2217da7d36cc8a196b226 +0 -0
  717. data/spec/internal/tmp/cache/assets/development/sprockets/d4fe7297e63d0ef0f63724e6aa1d54f7 +0 -0
  718. data/spec/internal/tmp/cache/assets/development/sprockets/edf2de273b5cef49ff4481bbe50b63a0 +0 -0
  719. data/spec/internal/tmp/cache/assets/development/sprockets/ee58e8a9cabe7e86f4bb53982af86d7f +0 -0
  720. data/spec/internal/tmp/cache/assets/development/sprockets/f367d08171bd540648a3921c8f1ca873 +0 -0
  721. data/spec/internal/tmp/cache/assets/development/sprockets/f9abf537b679ffc2d9af4a15b1293bf7 +0 -0
  722. data/spec/internal/tmp/cache/assets/development/sprockets/fc4ad9c41b7d3c548ca3324b8a9aa2aa +0 -0
  723. data/spec/lib/spotlight/document_presenter_spec.rb +0 -29
  724. data/spec/views/spotlight/appearances/edit.html.erb_spec.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7804a1ca073fa41b52454ee8819a13934538b9b
4
- data.tar.gz: 304a43a49d75a5428eab6c7d4d2b431238cabf38
3
+ metadata.gz: b488b878587d376acabac98762c0b9d940fdf191
4
+ data.tar.gz: 81711ae28a72e816fd9230da8bb797b993b67881
5
5
  SHA512:
6
- metadata.gz: eb998380f5c4d6a87e8af83ccce236386d8830a8576059923797e43fd94350c2a6e40c6d253d04aa1da3f76a996ce8b4031f5b743853f6853bb21941b8d5d4e3
7
- data.tar.gz: 8abac5e56f43c4ca950c418c2ffc29f8bb7bf94784a83c66034ba7780c16d3cb87045f8fedee62206606d7fafdf95d00b7452812f994f4157a03c71b142428d2
6
+ metadata.gz: 2282e5bea2f830f5f090e0bd5eb315b3e221658f542039c17e48556d3d0d587fade151fbe36562fe72d413e78ea041569a9fabf317a8944aff85f7fe69cd31cf
7
+ data.tar.gz: ceb33c6b2a8e381ccfaeac1f9550fc744732a8d2455b57476ba14f992e708ad1850d1367a64c4e763f9ffcf242a290867595f831a2bf305da8586f5cdaa3debe
data/Rakefile CHANGED
@@ -24,6 +24,8 @@ RSpec::Core::RakeTask.new(:spec)
24
24
  require 'jettywrapper'
25
25
 
26
26
  require 'engine_cart/rake_task'
27
+ EngineCart.fingerprint_proc = EngineCart.rails_fingerprint_proc
28
+
27
29
  require 'spotlight/version'
28
30
  EngineCart.fingerprint = Spotlight::VERSION
29
31
  task :ci => ['engine_cart:generate', 'jetty:clean', 'spotlight:configure_jetty'] do
@@ -57,13 +59,7 @@ namespace :spotlight do
57
59
  end
58
60
 
59
61
  task :server do
60
- if File.exists? 'spec/internal'
61
- within_test_app do
62
- system "bundle update"
63
- end
64
- else
65
- Rake::Task['engine_cart:generate'].invoke
66
- end
62
+ Rake::Task['engine_cart:generate'].invoke
67
63
 
68
64
  unless File.exists? 'jetty'
69
65
  Rake::Task['jetty:clean'].invoke
@@ -21,5 +21,5 @@
21
21
  //= require bootstrap/carousel
22
22
  //= require bootstrap-tagsinput
23
23
  //= require social-share-button
24
- //= require jquery.jcrop
24
+
25
25
  //= require_tree .
@@ -0,0 +1,170 @@
1
+ /*
2
+ Block to get allow a user to choose browse
3
+ categories to feature on various pages.
4
+ */
5
+
6
+ SirTrevor.Blocks.FeaturedBrowseCategories = (function(){
7
+
8
+ return Spotlight.Block.extend({
9
+
10
+ searches_key: "featured-browse-categories",
11
+
12
+ blockGroup: 'Exhibit item widgets',
13
+
14
+ description: "This block visually highlights up to five browse categories, which are linked to the browse category results page.",
15
+
16
+ maxCategoriesAllowed: 5,
17
+
18
+ template: [
19
+ '<div class="featured-browse-categories-block-admin clearFix">',
20
+ '<div class="widget-header">',
21
+ '<%= description %>',
22
+ '</div>',
23
+ '<div class="col-sm-12">',
24
+ '<label for="<%= formId(searches_key) %>">Browse categories</label>',
25
+ '<div id="<%= formId(searches_key) %>" data-featured-browse-categories="true">',
26
+ '</div>',
27
+ '</div>',
28
+ '</div>'
29
+ ].join("\n"),
30
+
31
+ onBlockRender: function(data){
32
+ Spotlight.Block.prototype.onBlockRender.apply();
33
+ this.loadSearchOptions();
34
+ },
35
+
36
+ afterLoadData: function(data){
37
+ var selected = [];
38
+ $.each(data, function(k, v){
39
+ if(k != "display-item-counts" && !k.match(/^weight-/) && v) {
40
+ selected.push(k);
41
+ }
42
+ });
43
+ if(data["display-item-counts"]){
44
+ selected.push("display-item-counts");
45
+ }
46
+
47
+ this.$('#' + this.formId(this.searches_key)).data('sort-after-ajax', this.orderData(data));
48
+ this.$('#' + this.formId(this.searches_key)).data('select-after-ajax', selected);
49
+ },
50
+
51
+ orderData: function(data){
52
+ var sortData = [];
53
+ var sortOrder = [];
54
+ $.each(data, function(k, v){
55
+ if(k.match(/^weight-\S+/)){
56
+ sortData.push({
57
+ slug: k.replace('weight-', ''),
58
+ sort: v
59
+ });
60
+ }
61
+ });
62
+ $.each(sortData.sort(function(a,b) {return a['sort'] > b['sort']}), function(){
63
+ sortOrder.push($(this)[0]['slug']);
64
+ });
65
+ return sortOrder;
66
+ },
67
+
68
+ categoryTemplate: function(searches){
69
+ var block = this;
70
+ var output = '';
71
+ output += '<div class="col-sm-7 form-group form-inline panel-group dd nestable-featured-browse" data-behavior="nestable" data-max-depth="1">';
72
+ output += '<ol class="dd-list">';
73
+ $.each(block.sortedSearches(searches), function(i, search){
74
+ output += block.searchTemplate(i, search);
75
+ });
76
+ output += '</ol>';
77
+ output += '</div>';
78
+ return output;
79
+ },
80
+
81
+ sortedSearches: function(searches){
82
+ var sortOrder = this.$('#' + this.formId(this.searches_key)).data('sort-after-ajax') || [];
83
+ return searches.sort(function(a,b){
84
+ return sortOrder.indexOf(String(a.slug)) > sortOrder.indexOf(String(b.slug));
85
+ });
86
+ },
87
+
88
+ searchTemplate: function(i, search){
89
+ return [
90
+ '<li class="dd-item dd3-item" data-id="' + search.slug + '">',
91
+ '<div class="dd3-content panel panel-default">',
92
+ '<div class="dd-handle dd3-handle">Drag</div>',
93
+ '<div class="panel-heading item-grid">',
94
+ '<div class="checkbox">',
95
+ '<input data-nestable-limit-categories="true" id="' + this.formId(search.slug) + '" name="' + search.slug + '" type="checkbox" value="true" /> ',
96
+ '</div>',
97
+ '<div class="pic thumbnail">',
98
+ '<img src="' + search.featured_image + '" />',
99
+ '</div>',
100
+ '<div class="main">',
101
+ '<div class="title panel-title" data-panel-title="true">' + search.title + '</div>',
102
+ search.count + ' items',
103
+ '</div>',
104
+ '<input type="hidden" data-property="weight" value="' + i + '" name="weight-' + search.slug + '" />',
105
+ '</div>',
106
+ '</div>',
107
+ '</li>'
108
+ ].join("\n")
109
+ },
110
+
111
+ showCountsTemplate: function(){
112
+ return [
113
+ '<div class="col-sm-3 col-sm-offset-1">',
114
+ '<label>',
115
+ '<input type="checkbox" name="display-item-counts" value="true" checked />',
116
+ "Include item counts?",
117
+ '</label>',
118
+ '</div>'
119
+ ].join("\n")
120
+ },
121
+
122
+ applySelectedFeaturedCategories: function(){
123
+ var block = this;
124
+ var container = block.$('#' + block.formId(block.searches_key));
125
+ var selected = container.data('select-after-ajax') || [];
126
+ $.each(selected, function(i, name){
127
+ block.$('input[type="checkbox"][name="' + name + '"]', container).prop('checked', true)
128
+ });
129
+
130
+ if(selected.length > 0 && selected.indexOf("display-item-counts") < 0) {
131
+ block.$('input[type="checkbox"][name="display-item-counts"]', container).prop('checked', false)
132
+ }
133
+ },
134
+
135
+ applyMaxCategoryLimit: function(){
136
+ var block = this;
137
+ var selector = "[data-nestable-limit-categories='true']";
138
+ this.$(selector).click(function(){
139
+ if(block.$(selector + ":checked").length > block.maxCategoriesAllowed){
140
+ return false;
141
+ }
142
+ });
143
+ },
144
+
145
+ loadSearchOptions: function(){
146
+ var block = this;
147
+ var searches_url = $('form[data-searches-endpoint]').data('searches-endpoint');
148
+ var browseCategoryElement = this.$('#' + this.formId(this.searches_key));
149
+ $.ajax({
150
+ accepts: "json",
151
+ url: searches_url
152
+ }).success(function(data){
153
+ browseCategoryElement.append(block.categoryTemplate(data));
154
+ browseCategoryElement.append(block.showCountsTemplate());
155
+ block.applySelectedFeaturedCategories();
156
+ block.applyMaxCategoryLimit();
157
+ SpotlightNestable.init();
158
+ // re-serialze the form so the form observer
159
+ // knows about the new drop dwon options.
160
+ serializeFormStatus($('form[data-searches-endpoint]'));
161
+ });
162
+ },
163
+
164
+ type: "featured_browse_categories",
165
+
166
+ title: function() { return "Featured Browse Categories"; },
167
+
168
+ icon_name: 'featured_browse_categories',
169
+ });
170
+ })();
@@ -0,0 +1,56 @@
1
+ //= require 'spotlight/blocks/multi_up_item_grid.js'
2
+ SirTrevor.Blocks.ItemGrid = (function(){
3
+
4
+ return SirTrevor.Blocks.MultiUpItemGrid.extend({
5
+
6
+ type: "item-grid",
7
+
8
+ title: function() { return "Item Grid"; },
9
+
10
+ icon_name: "item-grid",
11
+
12
+ description: "This widget displays one to seven thumbnails of items in a grid.",
13
+
14
+ inputFieldsCount: 7,
15
+
16
+ text_key:"item-text",
17
+ heading_key: "title",
18
+ align_key:"text-align",
19
+
20
+ template: [
21
+ '<div class="form-horizontal <%= key %>-admin clearfix">',
22
+ '<div class="widget-header">',
23
+ '<%= description %>',
24
+ '</div>',
25
+ '<div class="col-sm-8">',
26
+ '<label for="<%= formId(id_key) %>_0" class="control-label">Selected items to display</label>',
27
+ '<div class="form-inline form-group panel-group dd nestable-item-grid" data-behavior="nestable" data-max-depth="1">',
28
+ '<ol class="dd-list">',
29
+ '<%= buildInputFields(inputFieldsCount) %>',
30
+ '</ol>',
31
+ '</div>',
32
+ '<div class="form-group">',
33
+ '<div class="field">',
34
+ '<label for="<%= formId(heading_key) %>" class="control-label">Heading</label>',
35
+ '<input type="text" class="form-control" id="<%= formId(heading_key) %>" name="<%= heading_key %>" />',
36
+ '</div>',
37
+ '<div class="field">',
38
+ '<label for="<%= formId(text_key) %>" class="control-label">Text</label>',
39
+ '<div id="<%= formId(text_key) %>" class="st-text-block form-control" contenteditable="true"></div>',
40
+ '</div>',
41
+ '</div>',
42
+ '</div>',
43
+ '<div class="col-sm-4">',
44
+ '<div class="text-align">',
45
+ '<p>Display text on:</p>',
46
+ '<input data-key="<%= align_key %>" type="radio" name="<%= formId(align_key) %>" id="<%= formId(align_key + "-right") %>" value="right" checked="true">',
47
+ '<label for="<%= formId(align_key + "-right") %>">Left</label>',
48
+ '<input data-key="<%= align_key %>" type="radio" name="<%= formId(align_key) %>" id="<%= formId(align_key + "-left") %>" value="left">',
49
+ '<label for="<%= formId(align_key + "-left") %>">Right</label>',
50
+ '</div>',
51
+ '</div>',
52
+ '<div class="clearFix"></div>',
53
+ '</div>'
54
+ ].join("\n")
55
+ });
56
+ })();;
@@ -0,0 +1,21 @@
1
+ /*
2
+ Sir Trevor ItemText Block.
3
+ This block takes an ID,
4
+ fetches the record from solr,
5
+ displays the image, title,
6
+ and any provided text
7
+ and displays them.
8
+ */
9
+
10
+ SirTrevor.Blocks.Rule = (function(){
11
+
12
+ return Spotlight.Block.extend({
13
+ type: "rule",
14
+
15
+ title: function() { return "Horizontal Rule"; },
16
+
17
+ icon_name: "rule",
18
+
19
+ template: '<hr />'
20
+ });
21
+ })();
@@ -6,7 +6,7 @@ SirTrevor.Blocks.SearchResults = (function(){
6
6
 
7
7
  return Spotlight.Block.extend({
8
8
 
9
- searches_key: "searches-options",
9
+ searches_key: "slug",
10
10
 
11
11
  view_types_key: '[data-behavior="result-view-types"]',
12
12
 
@@ -57,7 +57,7 @@ SirTrevor.Blocks.SearchResults = (function(){
57
57
  if($("option", searches_field).length == 1){
58
58
  var options = "";
59
59
  $.each(data, function(i, search){
60
- options += "<option value='" + search.id + "'>" + search.title + "</option>";
60
+ options += "<option value='" + search.slug + "'>" + search.title + "</option>";
61
61
  });
62
62
 
63
63
  searches_field.append(options);
@@ -71,7 +71,7 @@ SirTrevor.Blocks.SearchResults = (function(){
71
71
  },
72
72
 
73
73
  loadViewTypes: function(){
74
- var view_types_url = $('form[data-available-configurations-endpoint]').data('available-configurations-endpoint');
74
+ var view_types_url = $('form[data-available-search-views-endpoint]').data('available-search-views-endpoint');
75
75
  var selected_view_types = this.processSelectedViewTypes(this.viewTypesArea().data("select-after-ajax"));
76
76
  var block = this;
77
77
  $.ajax({
@@ -79,7 +79,7 @@ SirTrevor.Blocks.SearchResults = (function(){
79
79
  url: view_types_url
80
80
  }).success(function(data){
81
81
  var checkboxes = "";
82
- $.each(data.view, function(view_type, opts){
82
+ $.each(data, function(i, view_type){
83
83
  checkboxes += "<div>";
84
84
  checkboxes += "<label for='" + block.formId(view_type) + "'>";
85
85
  checkboxes += "<input id='" + block.formId(view_type) + "' name='" + view_type + "' type='checkbox' " + block.checkViewType(view_type) + " /> ";
@@ -0,0 +1,98 @@
1
+ Spotlight.onLoad(function() {
2
+ $('[data-croppable="true"]').croppable();
3
+ });
4
+
5
+
6
+ /*
7
+ Croppable plugin
8
+ Implements http://deepliquid.com/content/Jcrop.html
9
+ Add jcrop data-attributes to file input (with data-croppable='true') to instantiate.
10
+ */
11
+
12
+ (function($) {
13
+ $.fn.croppable = function(opts) {
14
+ var croppables = this;
15
+ var opts = opts;
16
+ var pluginDefults = {
17
+ setSelect: "[0,0,200,200]"
18
+ }
19
+
20
+ $(croppables).each(function() {
21
+ var fileUpload = $(this);
22
+ var cropid = fileUpload.data('selector') || this.id;
23
+ var cropinfo = $("#" + cropid + "_crop").val();
24
+ var cropbox = $("#" + cropid + "_cropbox");
25
+ var previewbox = $("#" + cropid + "_previewbox");
26
+
27
+ var defaults = {
28
+ setSelect: $.parseJSON(cropinfo || pluginDefults['setSelect']),
29
+ selector: cropid
30
+ }
31
+
32
+ var options = $.extend(defaults, fileUpload.data(), opts);
33
+
34
+ function updatePreview(coords) {
35
+ previewbox.css({
36
+ width: Math.round(100/coords.w * cropbox.width()) + 'px',
37
+ height: Math.round(100/coords.h * cropbox.height()) + 'px',
38
+ marginLeft: '-' + Math.round(100/coords.w * coords.x) + 'px',
39
+ marginTop: '-' + Math.round(100/coords.h * coords.y) + 'px'
40
+ });
41
+ };
42
+
43
+ function update(coords) {
44
+ $('#' + cropid + '_crop_x').val(coords.x);
45
+ $('#' + cropid + '_crop_y').val(coords.y);
46
+ $('#' + cropid + '_crop_w').val(coords.w);
47
+ $('#' + cropid + '_crop_h').val(coords.h);
48
+ updatePreview(coords);
49
+ };
50
+
51
+ if(!cropbox.data('jcropProcessed')){
52
+ cropbox.Jcrop(
53
+ $.extend(options, {
54
+ onSelect: update,
55
+ onChange: update
56
+ })
57
+ );
58
+ }
59
+ cropbox.data('jcropProcessed', 'true');
60
+
61
+ fileUpload.on('change', function() {
62
+ var jcrop_api = cropbox.data('Jcrop');
63
+ if(this.files){
64
+ var file = this.files[0];
65
+ var img = cropbox[0];
66
+
67
+ img.file = file;
68
+
69
+ var reader = new FileReader();
70
+
71
+ reader.onload = (function(aImg) { return function(e) {
72
+ jcrop_api.setImage(e.target.result);
73
+ cropbox.css({width: "", height: ""});
74
+ cropbox[0].src = e.target.result;
75
+ if(previewbox.length > 0) {
76
+ previewbox[0].src = e.target.result;
77
+ }
78
+ jcrop_api.setSelect(options['setSelect']);
79
+ }; })(img);
80
+ reader.readAsDataURL(file);
81
+ }else{
82
+ var url = $(this).attr('value');
83
+ jcrop_api.setImage(url);
84
+ cropbox.css({width: "", height: ""});
85
+ cropbox[0].src = url;
86
+ if(previewbox.length > 0) {
87
+ previewbox[0].src = url;
88
+ }
89
+ jcrop_api.setSelect(options['setSelect']);
90
+ }
91
+ cropbox.closest('.missing-croppable').removeClass('missing-croppable');
92
+ });
93
+
94
+ });
95
+
96
+ return this;
97
+ };
98
+ })(jQuery);
@@ -0,0 +1,1696 @@
1
+ /**
2
+ * jquery.Jcrop.js v0.9.12
3
+ * jQuery Image Cropping Plugin - released under MIT License
4
+ * Author: Kelly Hallman <khallman@gmail.com>
5
+ * http://github.com/tapmodo/Jcrop
6
+ * Copyright (c) 2008-2013 Tapmodo Interactive LLC {{{
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person
9
+ * obtaining a copy of this software and associated documentation
10
+ * files (the "Software"), to deal in the Software without
11
+ * restriction, including without limitation the rights to use,
12
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+ * copies of the Software, and to permit persons to whom the
14
+ * Software is furnished to do so, subject to the following
15
+ * conditions:
16
+ *
17
+ * The above copyright notice and this permission notice shall be
18
+ * included in all copies or substantial portions of the Software.
19
+ *
20
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
22
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
25
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27
+ * OTHER DEALINGS IN THE SOFTWARE.
28
+ *
29
+ * }}}
30
+ *
31
+ * This is a fork of the above mentioned code which is available at https://github.com/sul-dlss/Jcrop
32
+ */
33
+
34
+ (function ($) {
35
+
36
+ $.Jcrop = function (obj, opt) {
37
+ var options = $.extend({}, $.Jcrop.defaults),
38
+ docOffset,
39
+ _ua = navigator.userAgent.toLowerCase(),
40
+ is_msie = /msie/.test(_ua),
41
+ ie6mode = /msie [1-6]\./.test(_ua);
42
+
43
+ // Internal Methods {{{
44
+ function px(n) {
45
+ return Math.round(n) + 'px';
46
+ }
47
+ function cssClass(cl) {
48
+ return options.baseClass + '-' + cl;
49
+ }
50
+ function supportsColorFade() {
51
+ return $.fx.step.hasOwnProperty('backgroundColor');
52
+ }
53
+ function getPos(obj) //{{{
54
+ {
55
+ var pos = $(obj).offset();
56
+ return [pos.left, pos.top];
57
+ }
58
+ //}}}
59
+ function mouseAbs(e) //{{{
60
+ {
61
+ return [(e.pageX - docOffset[0]), (e.pageY - docOffset[1])];
62
+ }
63
+ //}}}
64
+ function setOptions(opt) //{{{
65
+ {
66
+ if (typeof(opt) !== 'object') opt = {};
67
+ options = $.extend(options, opt);
68
+
69
+ $.each(['onChange','onSelect','onRelease','onDblClick'],function(i,e) {
70
+ if (typeof(options[e]) !== 'function') options[e] = function () {};
71
+ });
72
+ }
73
+ //}}}
74
+ function startDragMode(mode, pos, touch) //{{{
75
+ {
76
+ docOffset = getPos($img);
77
+ Tracker.setCursor(mode === 'move' ? mode : mode + '-resize');
78
+
79
+ if (mode === 'move') {
80
+ return Tracker.activateHandlers(createMover(pos), doneSelect, touch);
81
+ }
82
+
83
+ var fc = Coords.getFixed();
84
+ var opp = oppLockCorner(mode);
85
+ var opc = Coords.getCorner(oppLockCorner(opp));
86
+
87
+ Coords.setPressed(Coords.getCorner(opp));
88
+ Coords.setCurrent(opc);
89
+
90
+ Tracker.activateHandlers(dragmodeHandler(mode, fc), doneSelect, touch);
91
+ }
92
+ //}}}
93
+ function dragmodeHandler(mode, f) //{{{
94
+ {
95
+ return function (pos) {
96
+ if (!options.aspectRatio) {
97
+ switch (mode) {
98
+ case 'e':
99
+ pos[1] = f.y2;
100
+ break;
101
+ case 'w':
102
+ pos[1] = f.y2;
103
+ break;
104
+ case 'n':
105
+ pos[0] = f.x2;
106
+ break;
107
+ case 's':
108
+ pos[0] = f.x2;
109
+ break;
110
+ }
111
+ } else {
112
+ switch (mode) {
113
+ case 'e':
114
+ pos[1] = f.y + 1;
115
+ break;
116
+ case 'w':
117
+ pos[1] = f.y + 1;
118
+ break;
119
+ case 'n':
120
+ pos[0] = f.x + 1;
121
+ break;
122
+ case 's':
123
+ pos[0] = f.x + 1;
124
+ break;
125
+ }
126
+ }
127
+ Coords.setCurrent(pos);
128
+ Selection.update();
129
+ };
130
+ }
131
+ //}}}
132
+ function createMover(pos) //{{{
133
+ {
134
+ var lloc = pos;
135
+ KeyManager.watchKeys();
136
+
137
+ return function (pos) {
138
+ Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]);
139
+ lloc = pos;
140
+
141
+ Selection.update();
142
+ };
143
+ }
144
+ //}}}
145
+ function oppLockCorner(ord) //{{{
146
+ {
147
+ switch (ord) {
148
+ case 'n':
149
+ return 'sw';
150
+ case 's':
151
+ return 'nw';
152
+ case 'e':
153
+ return 'nw';
154
+ case 'w':
155
+ return 'ne';
156
+ case 'ne':
157
+ return 'sw';
158
+ case 'nw':
159
+ return 'se';
160
+ case 'se':
161
+ return 'nw';
162
+ case 'sw':
163
+ return 'ne';
164
+ }
165
+ }
166
+ //}}}
167
+ function createDragger(ord) //{{{
168
+ {
169
+ return function (e) {
170
+ if (options.disabled) {
171
+ return false;
172
+ }
173
+ if ((ord === 'move') && !options.allowMove) {
174
+ return false;
175
+ }
176
+
177
+ // Fix position of crop area when dragged the very first time.
178
+ // Necessary when crop image is in a hidden element when page is loaded.
179
+ docOffset = getPos($img);
180
+
181
+ btndown = true;
182
+ startDragMode(ord, mouseAbs(e));
183
+ e.stopPropagation();
184
+ e.preventDefault();
185
+ return false;
186
+ };
187
+ }
188
+ //}}}
189
+ function presize($obj, w, h) //{{{
190
+ {
191
+ var nw = $obj.width(),
192
+ nh = $obj.height();
193
+ if ((nw > w) && w > 0) {
194
+ nw = w;
195
+ nh = (w / $obj.width()) * $obj.height();
196
+ }
197
+ if ((nh > h) && h > 0) {
198
+ nh = h;
199
+ nw = (h / $obj.height()) * $obj.width();
200
+ }
201
+ xscale = $obj.width() / nw;
202
+ yscale = $obj.height() / nh;
203
+ $obj.width(nw).height(nh);
204
+ }
205
+ //}}}
206
+ function unscale(c) //{{{
207
+ {
208
+ return {
209
+ x: c.x * xscale,
210
+ y: c.y * yscale,
211
+ x2: c.x2 * xscale,
212
+ y2: c.y2 * yscale,
213
+ w: c.w * xscale,
214
+ h: c.h * yscale
215
+ };
216
+ }
217
+ //}}}
218
+ function doneSelect(pos) //{{{
219
+ {
220
+ var c = Coords.getFixed();
221
+ if ((c.w > options.minSelect[0]) && (c.h > options.minSelect[1])) {
222
+ Selection.enableHandles();
223
+ Selection.done();
224
+ } else {
225
+ Selection.release();
226
+ }
227
+ Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default');
228
+ }
229
+ //}}}
230
+ function newSelection(e) //{{{
231
+ {
232
+ if (options.disabled) {
233
+ return;
234
+ }
235
+ if (!options.allowSelect) {
236
+ return;
237
+ }
238
+ btndown = true;
239
+ docOffset = getPos($img);
240
+ Selection.disableHandles();
241
+ Tracker.setCursor('crosshair');
242
+ var pos = mouseAbs(e);
243
+ Coords.setPressed(pos);
244
+ Selection.update();
245
+ Tracker.activateHandlers(selectDrag, doneSelect, e.type.substring(0,5)==='touch');
246
+ KeyManager.watchKeys();
247
+
248
+ e.stopPropagation();
249
+ e.preventDefault();
250
+ return false;
251
+ }
252
+ //}}}
253
+ function selectDrag(pos) //{{{
254
+ {
255
+ Coords.setCurrent(pos);
256
+ Selection.update();
257
+ }
258
+ //}}}
259
+ function newTracker() //{{{
260
+ {
261
+ var trk = $('<div></div>').addClass(cssClass('tracker'));
262
+ if (is_msie) {
263
+ trk.css({
264
+ opacity: 0,
265
+ backgroundColor: 'white'
266
+ });
267
+ }
268
+ return trk;
269
+ }
270
+ //}}}
271
+
272
+ // }}}
273
+ // Initialization {{{
274
+ // Sanitize some options {{{
275
+ if (typeof(obj) !== 'object') {
276
+ obj = $(obj)[0];
277
+ }
278
+ if (typeof(opt) !== 'object') {
279
+ opt = {};
280
+ }
281
+ // }}}
282
+ setOptions(opt);
283
+ // Initialize some jQuery objects {{{
284
+ // The values are SET on the image(s) for the interface
285
+ // If the original image has any of these set, they will be reset
286
+ // However, if you destroy() the Jcrop instance the original image's
287
+ // character in the DOM will be as you left it.
288
+ var img_css = {
289
+ border: 'none',
290
+ visibility: 'visible',
291
+ margin: 0,
292
+ padding: 0,
293
+ position: 'absolute',
294
+ top: 0,
295
+ left: 0
296
+ };
297
+
298
+ var $origimg = $(obj),
299
+ img_mode = true;
300
+
301
+ if (obj.tagName == 'IMG') {
302
+ // Fix size of crop image.
303
+ // Necessary when crop image is within a hidden element when page is loaded.
304
+ if ($origimg[0].width != 0 && $origimg[0].height != 0) {
305
+ // Obtain dimensions from contained img element.
306
+ $origimg.width($origimg[0].width);
307
+ $origimg.height($origimg[0].height);
308
+ } else {
309
+ // Obtain dimensions from temporary image in case the original is not loaded yet (e.g. IE 7.0).
310
+ var tempImage = new Image();
311
+ tempImage.src = $origimg[0].src;
312
+ $origimg.width(tempImage.width);
313
+ $origimg.height(tempImage.height);
314
+ }
315
+
316
+ var $img = $origimg.clone().removeAttr('id').css(img_css).show();
317
+
318
+ $img.width($origimg.width());
319
+ $img.height($origimg.height());
320
+ $origimg.after($img).hide();
321
+
322
+ } else {
323
+ $img = $origimg.css(img_css).show();
324
+ img_mode = false;
325
+ if (options.shade === null) { options.shade = true; }
326
+ }
327
+
328
+ presize($img, options.boxWidth, options.boxHeight);
329
+
330
+ var boundx = $img.width(),
331
+ boundy = $img.height(),
332
+
333
+
334
+ $div = $('<div />').width(boundx).height(boundy).addClass(cssClass('holder')).css({
335
+ position: 'relative',
336
+ backgroundColor: options.bgColor
337
+ }).insertAfter($origimg).append($img);
338
+
339
+ if (options.addClass) {
340
+ $div.addClass(options.addClass);
341
+ }
342
+
343
+ var $img2 = $('<div />'),
344
+
345
+ $img_holder = $('<div />')
346
+ .width('100%').height('100%').css({
347
+ zIndex: 310,
348
+ position: 'absolute',
349
+ overflow: 'hidden'
350
+ }),
351
+
352
+ $hdl_holder = $('<div />')
353
+ .width('100%').height('100%').css('zIndex', 320),
354
+
355
+ $sel = $('<div />')
356
+ .css({
357
+ position: 'absolute',
358
+ zIndex: 600
359
+ }).dblclick(function(){
360
+ var c = Coords.getFixed();
361
+ options.onDblClick.call(api,c);
362
+ }).insertBefore($img).append($img_holder, $hdl_holder);
363
+
364
+ if (img_mode) {
365
+
366
+ $img2 = $('<img />')
367
+ .attr('src', $img.attr('src')).css(img_css).width(boundx).height(boundy),
368
+
369
+ $img_holder.append($img2);
370
+
371
+ }
372
+
373
+ if (ie6mode) {
374
+ $sel.css({
375
+ overflowY: 'hidden'
376
+ });
377
+ }
378
+
379
+ var bound = options.boundary;
380
+ var $trk = newTracker().width(boundx + (bound * 2)).height(boundy + (bound * 2)).css({
381
+ position: 'absolute',
382
+ top: px(-bound),
383
+ left: px(-bound),
384
+ zIndex: 290
385
+ }).mousedown(newSelection);
386
+
387
+ /* }}} */
388
+ // Set more variables {{{
389
+ var bgcolor = options.bgColor,
390
+ bgopacity = options.bgOpacity,
391
+ xlimit, ylimit, xmin, ymin, xscale, yscale, enabled = true,
392
+ btndown, animating, shift_down;
393
+
394
+ docOffset = getPos($img);
395
+ // }}}
396
+ // }}}
397
+ // Internal Modules {{{
398
+ // Touch Module {{{
399
+ var Touch = (function () {
400
+ // Touch support detection function adapted (under MIT License)
401
+ // from code by Jeffrey Sambells - http://github.com/iamamused/
402
+ function hasTouchSupport() {
403
+ var support = {}, events = ['touchstart', 'touchmove', 'touchend'],
404
+ el = document.createElement('div'), i;
405
+
406
+ try {
407
+ for(i=0; i<events.length; i++) {
408
+ var eventName = events[i];
409
+ eventName = 'on' + eventName;
410
+ var isSupported = (eventName in el);
411
+ if (!isSupported) {
412
+ el.setAttribute(eventName, 'return;');
413
+ isSupported = typeof el[eventName] == 'function';
414
+ }
415
+ support[events[i]] = isSupported;
416
+ }
417
+ return support.touchstart && support.touchend && support.touchmove;
418
+ }
419
+ catch(err) {
420
+ return false;
421
+ }
422
+ }
423
+
424
+ function detectSupport() {
425
+ if ((options.touchSupport === true) || (options.touchSupport === false)) return options.touchSupport;
426
+ else return hasTouchSupport();
427
+ }
428
+ return {
429
+ createDragger: function (ord) {
430
+ return function (e) {
431
+ if (options.disabled) {
432
+ return false;
433
+ }
434
+ if ((ord === 'move') && !options.allowMove) {
435
+ return false;
436
+ }
437
+ docOffset = getPos($img);
438
+ btndown = true;
439
+ startDragMode(ord, mouseAbs(Touch.cfilter(e)), true);
440
+ e.stopPropagation();
441
+ e.preventDefault();
442
+ return false;
443
+ };
444
+ },
445
+ newSelection: function (e) {
446
+ return newSelection(Touch.cfilter(e));
447
+ },
448
+ cfilter: function (e){
449
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
450
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
451
+ return e;
452
+ },
453
+ isSupported: hasTouchSupport,
454
+ support: detectSupport()
455
+ };
456
+ }());
457
+ // }}}
458
+ // Coords Module {{{
459
+ var Coords = (function () {
460
+ var x1 = 0,
461
+ y1 = 0,
462
+ x2 = 0,
463
+ y2 = 0,
464
+ ox, oy;
465
+
466
+ function setPressed(pos) //{{{
467
+ {
468
+ pos = rebound(pos);
469
+ x2 = x1 = pos[0];
470
+ y2 = y1 = pos[1];
471
+ }
472
+ //}}}
473
+ function setCurrent(pos) //{{{
474
+ {
475
+ pos = rebound(pos);
476
+ ox = pos[0] - x2;
477
+ oy = pos[1] - y2;
478
+ x2 = pos[0];
479
+ y2 = pos[1];
480
+ }
481
+ //}}}
482
+ function getOffset() //{{{
483
+ {
484
+ return [ox, oy];
485
+ }
486
+ //}}}
487
+ function moveOffset(offset) //{{{
488
+ {
489
+ var ox = offset[0],
490
+ oy = offset[1];
491
+
492
+ if (0 > x1 + ox) {
493
+ ox -= ox + x1;
494
+ }
495
+ if (0 > y1 + oy) {
496
+ oy -= oy + y1;
497
+ }
498
+
499
+ if (boundy < y2 + oy) {
500
+ oy += boundy - (y2 + oy);
501
+ }
502
+ if (boundx < x2 + ox) {
503
+ ox += boundx - (x2 + ox);
504
+ }
505
+
506
+ x1 += ox;
507
+ x2 += ox;
508
+ y1 += oy;
509
+ y2 += oy;
510
+ }
511
+ //}}}
512
+ function getCorner(ord) //{{{
513
+ {
514
+ var c = getFixed();
515
+ switch (ord) {
516
+ case 'ne':
517
+ return [c.x2, c.y];
518
+ case 'nw':
519
+ return [c.x, c.y];
520
+ case 'se':
521
+ return [c.x2, c.y2];
522
+ case 'sw':
523
+ return [c.x, c.y2];
524
+ }
525
+ }
526
+ //}}}
527
+ function getFixed() //{{{
528
+ {
529
+ if (!options.aspectRatio) {
530
+ return getRect();
531
+ }
532
+ // This function could use some optimization I think...
533
+ var aspect = options.aspectRatio,
534
+ min_x = options.minSize[0] / xscale,
535
+
536
+
537
+ //min_y = options.minSize[1]/yscale,
538
+ max_x = options.maxSize[0] / xscale,
539
+ max_y = options.maxSize[1] / yscale,
540
+ rw = x2 - x1,
541
+ rh = y2 - y1,
542
+ rwa = Math.abs(rw),
543
+ rha = Math.abs(rh),
544
+ real_ratio = rwa / rha,
545
+ xx, yy, w, h;
546
+
547
+ if (max_x === 0) {
548
+ max_x = boundx * 10;
549
+ }
550
+ if (max_y === 0) {
551
+ max_y = boundy * 10;
552
+ }
553
+ if (real_ratio < aspect) {
554
+ yy = y2;
555
+ w = rha * aspect;
556
+ xx = rw < 0 ? x1 - w : w + x1;
557
+
558
+ if (xx < 0) {
559
+ xx = 0;
560
+ h = Math.abs((xx - x1) / aspect);
561
+ yy = rh < 0 ? y1 - h : h + y1;
562
+ } else if (xx > boundx) {
563
+ xx = boundx;
564
+ h = Math.abs((xx - x1) / aspect);
565
+ yy = rh < 0 ? y1 - h : h + y1;
566
+ }
567
+ } else {
568
+ xx = x2;
569
+ h = rwa / aspect;
570
+ yy = rh < 0 ? y1 - h : y1 + h;
571
+ if (yy < 0) {
572
+ yy = 0;
573
+ w = Math.abs((yy - y1) * aspect);
574
+ xx = rw < 0 ? x1 - w : w + x1;
575
+ } else if (yy > boundy) {
576
+ yy = boundy;
577
+ w = Math.abs(yy - y1) * aspect;
578
+ xx = rw < 0 ? x1 - w : w + x1;
579
+ }
580
+ }
581
+
582
+ // Magic %-)
583
+ if (xx > x1) { // right side
584
+ if (xx - x1 < min_x) {
585
+ xx = x1 + min_x;
586
+ } else if (xx - x1 > max_x) {
587
+ xx = x1 + max_x;
588
+ }
589
+ if (yy > y1) {
590
+ yy = y1 + (xx - x1) / aspect;
591
+ } else {
592
+ yy = y1 - (xx - x1) / aspect;
593
+ }
594
+ } else if (xx < x1) { // left side
595
+ if (x1 - xx < min_x) {
596
+ xx = x1 - min_x;
597
+ } else if (x1 - xx > max_x) {
598
+ xx = x1 - max_x;
599
+ }
600
+ if (yy > y1) {
601
+ yy = y1 + (x1 - xx) / aspect;
602
+ } else {
603
+ yy = y1 - (x1 - xx) / aspect;
604
+ }
605
+ }
606
+
607
+ if (xx < 0) {
608
+ x1 -= xx;
609
+ xx = 0;
610
+ } else if (xx > boundx) {
611
+ x1 -= xx - boundx;
612
+ xx = boundx;
613
+ }
614
+
615
+ if (yy < 0) {
616
+ y1 -= yy;
617
+ yy = 0;
618
+ } else if (yy > boundy) {
619
+ y1 -= yy - boundy;
620
+ yy = boundy;
621
+ }
622
+
623
+ return makeObj(flipCoords(x1, y1, xx, yy));
624
+ }
625
+ //}}}
626
+ function rebound(p) //{{{
627
+ {
628
+ if (p[0] < 0) p[0] = 0;
629
+ if (p[1] < 0) p[1] = 0;
630
+
631
+ if (p[0] > boundx) p[0] = boundx;
632
+ if (p[1] > boundy) p[1] = boundy;
633
+
634
+ return [Math.round(p[0]), Math.round(p[1])];
635
+ }
636
+ //}}}
637
+ function flipCoords(x1, y1, x2, y2) //{{{
638
+ {
639
+ var xa = x1,
640
+ xb = x2,
641
+ ya = y1,
642
+ yb = y2;
643
+ if (x2 < x1) {
644
+ xa = x2;
645
+ xb = x1;
646
+ }
647
+ if (y2 < y1) {
648
+ ya = y2;
649
+ yb = y1;
650
+ }
651
+ return [xa, ya, xb, yb];
652
+ }
653
+ //}}}
654
+ function getRect() //{{{
655
+ {
656
+ var xsize = x2 - x1,
657
+ ysize = y2 - y1,
658
+ delta;
659
+
660
+ if (xlimit && (Math.abs(xsize) > xlimit / xscale)) {
661
+ x2 = (xsize > 0) ? (x1 + xlimit / xscale) : (x1 - xlimit / xscale);
662
+ }
663
+ if (ylimit && (Math.abs(ysize) > ylimit / yscale)) {
664
+ y2 = (ysize > 0) ? (y1 + ylimit / yscale) : (y1 - ylimit / yscale);
665
+ }
666
+
667
+ if (ymin / yscale && (Math.abs(ysize) < ymin / yscale)) {
668
+ y2 = (ysize > 0) ? (y1 + ymin / yscale) : (y1 - ymin / yscale);
669
+ }
670
+ if (xmin / xscale && (Math.abs(xsize) < xmin / xscale)) {
671
+ x2 = (xsize > 0) ? (x1 + xmin / xscale) : (x1 - xmin / xscale);
672
+ }
673
+
674
+ if (x1 < 0) {
675
+ x2 -= x1;
676
+ x1 -= x1;
677
+ }
678
+ if (y1 < 0) {
679
+ y2 -= y1;
680
+ y1 -= y1;
681
+ }
682
+ if (x2 < 0) {
683
+ x1 -= x2;
684
+ x2 -= x2;
685
+ }
686
+ if (y2 < 0) {
687
+ y1 -= y2;
688
+ y2 -= y2;
689
+ }
690
+ if (x2 > boundx) {
691
+ delta = x2 - boundx;
692
+ x1 -= delta;
693
+ x2 -= delta;
694
+ }
695
+ if (y2 > boundy) {
696
+ delta = y2 - boundy;
697
+ y1 -= delta;
698
+ y2 -= delta;
699
+ }
700
+ if (x1 > boundx) {
701
+ delta = x1 - boundy;
702
+ y2 -= delta;
703
+ y1 -= delta;
704
+ }
705
+ if (y1 > boundy) {
706
+ delta = y1 - boundy;
707
+ y2 -= delta;
708
+ y1 -= delta;
709
+ }
710
+
711
+ return makeObj(flipCoords(x1, y1, x2, y2));
712
+ }
713
+ //}}}
714
+ function makeObj(a) //{{{
715
+ {
716
+ return {
717
+ x: a[0],
718
+ y: a[1],
719
+ x2: a[2],
720
+ y2: a[3],
721
+ w: a[2] - a[0],
722
+ h: a[3] - a[1]
723
+ };
724
+ }
725
+ //}}}
726
+
727
+ return {
728
+ flipCoords: flipCoords,
729
+ setPressed: setPressed,
730
+ setCurrent: setCurrent,
731
+ getOffset: getOffset,
732
+ moveOffset: moveOffset,
733
+ getCorner: getCorner,
734
+ getFixed: getFixed
735
+ };
736
+ }());
737
+
738
+ //}}}
739
+ // Shade Module {{{
740
+ var Shade = (function() {
741
+ var enabled = false,
742
+ holder = $('<div />').css({
743
+ position: 'absolute',
744
+ zIndex: 240,
745
+ opacity: 0
746
+ }),
747
+ shades = {
748
+ top: createShade(),
749
+ left: createShade().height(boundy),
750
+ right: createShade().height(boundy),
751
+ bottom: createShade()
752
+ };
753
+
754
+ function resizeShades(w,h) {
755
+ shades.left.css({ height: px(h) });
756
+ shades.right.css({ height: px(h) });
757
+ }
758
+ function updateAuto()
759
+ {
760
+ return updateShade(Coords.getFixed());
761
+ }
762
+ function updateShade(c)
763
+ {
764
+ shades.top.css({
765
+ left: px(c.x),
766
+ width: px(c.w),
767
+ height: px(c.y)
768
+ });
769
+ shades.bottom.css({
770
+ top: px(c.y2),
771
+ left: px(c.x),
772
+ width: px(c.w),
773
+ height: px(boundy-c.y2)
774
+ });
775
+ shades.right.css({
776
+ left: px(c.x2),
777
+ width: px(boundx-c.x2)
778
+ });
779
+ shades.left.css({
780
+ width: px(c.x)
781
+ });
782
+ }
783
+ function createShade() {
784
+ return $('<div />').css({
785
+ position: 'absolute',
786
+ backgroundColor: options.shadeColor||options.bgColor
787
+ }).appendTo(holder);
788
+ }
789
+ function enableShade() {
790
+ if (!enabled) {
791
+ enabled = true;
792
+ holder.insertBefore($img);
793
+ updateAuto();
794
+ Selection.setBgOpacity(1,0,1);
795
+ $img2.hide();
796
+
797
+ setBgColor(options.shadeColor||options.bgColor,1);
798
+ if (Selection.isAwake())
799
+ {
800
+ setOpacity(options.bgOpacity,1);
801
+ }
802
+ else setOpacity(1,1);
803
+ }
804
+ }
805
+ function setBgColor(color,now) {
806
+ colorChangeMacro(getShades(),color,now);
807
+ }
808
+ function disableShade() {
809
+ if (enabled) {
810
+ holder.remove();
811
+ $img2.show();
812
+ enabled = false;
813
+ if (Selection.isAwake()) {
814
+ Selection.setBgOpacity(options.bgOpacity,1,1);
815
+ } else {
816
+ Selection.setBgOpacity(1,1,1);
817
+ Selection.disableHandles();
818
+ }
819
+ colorChangeMacro($div,0,1);
820
+ }
821
+ }
822
+ function setOpacity(opacity,now) {
823
+ if (enabled) {
824
+ if (options.bgFade && !now) {
825
+ holder.animate({
826
+ opacity: 1-opacity
827
+ },{
828
+ queue: false,
829
+ duration: options.fadeTime
830
+ });
831
+ }
832
+ else holder.css({opacity:1-opacity});
833
+ }
834
+ }
835
+ function refreshAll() {
836
+ options.shade ? enableShade() : disableShade();
837
+ if (Selection.isAwake()) setOpacity(options.bgOpacity);
838
+ }
839
+ function getShades() {
840
+ return holder.children();
841
+ }
842
+
843
+ return {
844
+ update: updateAuto,
845
+ updateRaw: updateShade,
846
+ getShades: getShades,
847
+ setBgColor: setBgColor,
848
+ enable: enableShade,
849
+ disable: disableShade,
850
+ resize: resizeShades,
851
+ refresh: refreshAll,
852
+ opacity: setOpacity
853
+ };
854
+ }());
855
+ // }}}
856
+ // Selection Module {{{
857
+ var Selection = (function () {
858
+ var awake,
859
+ hdep = 370,
860
+ borders = {},
861
+ handle = {},
862
+ dragbar = {},
863
+ seehandles = false;
864
+
865
+ // Private Methods
866
+ function insertBorder(type) //{{{
867
+ {
868
+ var jq = $('<div />').css({
869
+ position: 'absolute',
870
+ opacity: options.borderOpacity
871
+ }).addClass(cssClass(type));
872
+ $img_holder.append(jq);
873
+ return jq;
874
+ }
875
+ //}}}
876
+ function dragDiv(ord, zi) //{{{
877
+ {
878
+ var jq = $('<div />').mousedown(createDragger(ord)).css({
879
+ cursor: ord + '-resize',
880
+ position: 'absolute',
881
+ zIndex: zi
882
+ }).addClass('ord-'+ord);
883
+
884
+ if (Touch.support) {
885
+ jq.bind('touchstart.jcrop', Touch.createDragger(ord));
886
+ }
887
+
888
+ $hdl_holder.append(jq);
889
+ return jq;
890
+ }
891
+ //}}}
892
+ function insertHandle(ord) //{{{
893
+ {
894
+ var hs = options.handleSize,
895
+
896
+ div = dragDiv(ord, hdep++).css({
897
+ opacity: options.handleOpacity
898
+ }).addClass(cssClass('handle'));
899
+
900
+ if (hs) { div.width(hs).height(hs); }
901
+
902
+ return div;
903
+ }
904
+ //}}}
905
+ function insertDragbar(ord) //{{{
906
+ {
907
+ return dragDiv(ord, hdep++).addClass('jcrop-dragbar');
908
+ }
909
+ //}}}
910
+ function createDragbars(li) //{{{
911
+ {
912
+ var i;
913
+ for (i = 0; i < li.length; i++) {
914
+ dragbar[li[i]] = insertDragbar(li[i]);
915
+ }
916
+ }
917
+ //}}}
918
+ function createBorders(li) //{{{
919
+ {
920
+ var cl,i;
921
+ for (i = 0; i < li.length; i++) {
922
+ switch(li[i]){
923
+ case'n': cl='hline'; break;
924
+ case's': cl='hline bottom'; break;
925
+ case'e': cl='vline right'; break;
926
+ case'w': cl='vline'; break;
927
+ }
928
+ borders[li[i]] = insertBorder(cl);
929
+ }
930
+ }
931
+ //}}}
932
+ function createHandles(li) //{{{
933
+ {
934
+ var i;
935
+ for (i = 0; i < li.length; i++) {
936
+ handle[li[i]] = insertHandle(li[i]);
937
+ }
938
+ }
939
+ //}}}
940
+ function moveto(x, y) //{{{
941
+ {
942
+ if (!options.shade) {
943
+ $img2.css({
944
+ top: px(-y),
945
+ left: px(-x)
946
+ });
947
+ }
948
+ $sel.css({
949
+ top: px(y),
950
+ left: px(x)
951
+ });
952
+ }
953
+ //}}}
954
+ function resize(w, h) //{{{
955
+ {
956
+ $sel.width(Math.round(w)).height(Math.round(h));
957
+ }
958
+ //}}}
959
+ function refresh() //{{{
960
+ {
961
+ var c = Coords.getFixed();
962
+
963
+ Coords.setPressed([c.x, c.y]);
964
+ Coords.setCurrent([c.x2, c.y2]);
965
+
966
+ updateVisible();
967
+ }
968
+ //}}}
969
+
970
+ // Internal Methods
971
+ function updateVisible(select) //{{{
972
+ {
973
+ if (awake) {
974
+ return update(select);
975
+ }
976
+ }
977
+ //}}}
978
+ function update(select) //{{{
979
+ {
980
+ var c = Coords.getFixed();
981
+
982
+ resize(c.w, c.h);
983
+ moveto(c.x, c.y);
984
+ if (options.shade) Shade.updateRaw(c);
985
+
986
+ awake || show();
987
+
988
+ if (select) {
989
+ options.onSelect.call(api, unscale(c));
990
+ } else {
991
+ options.onChange.call(api, unscale(c));
992
+ }
993
+ }
994
+ //}}}
995
+ function setBgOpacity(opacity,force,now) //{{{
996
+ {
997
+ if (!awake && !force) return;
998
+ if (options.bgFade && !now) {
999
+ $img.animate({
1000
+ opacity: opacity
1001
+ },{
1002
+ queue: false,
1003
+ duration: options.fadeTime
1004
+ });
1005
+ } else {
1006
+ $img.css('opacity', opacity);
1007
+ }
1008
+ }
1009
+ //}}}
1010
+ function show() //{{{
1011
+ {
1012
+ $sel.show();
1013
+
1014
+ if (options.shade) Shade.opacity(bgopacity);
1015
+ else setBgOpacity(bgopacity,true);
1016
+
1017
+ awake = true;
1018
+ }
1019
+ //}}}
1020
+ function release() //{{{
1021
+ {
1022
+ disableHandles();
1023
+ $sel.hide();
1024
+
1025
+ if (options.shade) Shade.opacity(1);
1026
+ else setBgOpacity(1);
1027
+
1028
+ awake = false;
1029
+ options.onRelease.call(api);
1030
+ }
1031
+ //}}}
1032
+ function showHandles() //{{{
1033
+ {
1034
+ if (seehandles) {
1035
+ $hdl_holder.show();
1036
+ }
1037
+ }
1038
+ //}}}
1039
+ function enableHandles() //{{{
1040
+ {
1041
+ seehandles = true;
1042
+ if (options.allowResize) {
1043
+ $hdl_holder.show();
1044
+ return true;
1045
+ }
1046
+ }
1047
+ //}}}
1048
+ function disableHandles() //{{{
1049
+ {
1050
+ seehandles = false;
1051
+ $hdl_holder.hide();
1052
+ }
1053
+ //}}}
1054
+ function animMode(v) //{{{
1055
+ {
1056
+ if (v) {
1057
+ animating = true;
1058
+ disableHandles();
1059
+ } else {
1060
+ animating = false;
1061
+ enableHandles();
1062
+ }
1063
+ }
1064
+ //}}}
1065
+ function done() //{{{
1066
+ {
1067
+ animMode(false);
1068
+ refresh();
1069
+ }
1070
+ //}}}
1071
+ // Insert draggable elements {{{
1072
+ // Insert border divs for outline
1073
+
1074
+ if (options.dragEdges && $.isArray(options.createDragbars))
1075
+ createDragbars(options.createDragbars);
1076
+
1077
+ if ($.isArray(options.createHandles))
1078
+ createHandles(options.createHandles);
1079
+
1080
+ if (options.drawBorders && $.isArray(options.createBorders))
1081
+ createBorders(options.createBorders);
1082
+
1083
+ //}}}
1084
+
1085
+ // This is a hack for iOS5 to support drag/move touch functionality
1086
+ $(document).bind('touchstart.jcrop-ios',function(e) {
1087
+ if ($(e.currentTarget).hasClass('jcrop-tracker')) e.stopPropagation();
1088
+ });
1089
+
1090
+ var $track = newTracker().mousedown(createDragger('move')).css({
1091
+ cursor: 'move',
1092
+ position: 'absolute',
1093
+ zIndex: 360
1094
+ });
1095
+
1096
+ if (Touch.support) {
1097
+ $track.bind('touchstart.jcrop', Touch.createDragger('move'));
1098
+ }
1099
+
1100
+ $img_holder.append($track);
1101
+ disableHandles();
1102
+
1103
+ return {
1104
+ updateVisible: updateVisible,
1105
+ update: update,
1106
+ release: release,
1107
+ refresh: refresh,
1108
+ isAwake: function () {
1109
+ return awake;
1110
+ },
1111
+ setCursor: function (cursor) {
1112
+ $track.css('cursor', cursor);
1113
+ },
1114
+ enableHandles: enableHandles,
1115
+ enableOnly: function () {
1116
+ seehandles = true;
1117
+ },
1118
+ showHandles: showHandles,
1119
+ disableHandles: disableHandles,
1120
+ animMode: animMode,
1121
+ setBgOpacity: setBgOpacity,
1122
+ done: done
1123
+ };
1124
+ }());
1125
+
1126
+ //}}}
1127
+ // Tracker Module {{{
1128
+ var Tracker = (function () {
1129
+ var onMove = function () {},
1130
+ onDone = function () {},
1131
+ trackDoc = options.trackDocument;
1132
+
1133
+ function toFront(touch) //{{{
1134
+ {
1135
+ $trk.css({
1136
+ zIndex: 450
1137
+ });
1138
+
1139
+ if (touch)
1140
+ $(document)
1141
+ .bind('touchmove.jcrop', trackTouchMove)
1142
+ .bind('touchend.jcrop', trackTouchEnd);
1143
+
1144
+ else if (trackDoc)
1145
+ $(document)
1146
+ .bind('mousemove.jcrop',trackMove)
1147
+ .bind('mouseup.jcrop',trackUp);
1148
+ }
1149
+ //}}}
1150
+ function toBack() //{{{
1151
+ {
1152
+ $trk.css({
1153
+ zIndex: 290
1154
+ });
1155
+ $(document).unbind('.jcrop');
1156
+ }
1157
+ //}}}
1158
+ function trackMove(e) //{{{
1159
+ {
1160
+ onMove(mouseAbs(e));
1161
+ return false;
1162
+ }
1163
+ //}}}
1164
+ function trackUp(e) //{{{
1165
+ {
1166
+ e.preventDefault();
1167
+ e.stopPropagation();
1168
+
1169
+ if (btndown) {
1170
+ btndown = false;
1171
+
1172
+ onDone(mouseAbs(e));
1173
+
1174
+ if (Selection.isAwake()) {
1175
+ options.onSelect.call(api, unscale(Coords.getFixed()));
1176
+ }
1177
+
1178
+ toBack();
1179
+ onMove = function () {};
1180
+ onDone = function () {};
1181
+ }
1182
+
1183
+ return false;
1184
+ }
1185
+ //}}}
1186
+ function activateHandlers(move, done, touch) //{{{
1187
+ {
1188
+ btndown = true;
1189
+ onMove = move;
1190
+ onDone = done;
1191
+ toFront(touch);
1192
+ return false;
1193
+ }
1194
+ //}}}
1195
+ function trackTouchMove(e) //{{{
1196
+ {
1197
+ onMove(mouseAbs(Touch.cfilter(e)));
1198
+ return false;
1199
+ }
1200
+ //}}}
1201
+ function trackTouchEnd(e) //{{{
1202
+ {
1203
+ return trackUp(Touch.cfilter(e));
1204
+ }
1205
+ //}}}
1206
+ function setCursor(t) //{{{
1207
+ {
1208
+ $trk.css('cursor', t);
1209
+ }
1210
+ //}}}
1211
+
1212
+ if (!trackDoc) {
1213
+ $trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp);
1214
+ }
1215
+
1216
+ $img.before($trk);
1217
+ return {
1218
+ activateHandlers: activateHandlers,
1219
+ setCursor: setCursor
1220
+ };
1221
+ }());
1222
+ //}}}
1223
+ // KeyManager Module {{{
1224
+ var KeyManager = (function () {
1225
+ var $keymgr = $('<input type="radio" />').css({
1226
+ position: 'fixed',
1227
+ left: '-120px',
1228
+ width: '12px'
1229
+ }).addClass('jcrop-keymgr'),
1230
+
1231
+ $keywrap = $('<div />').css({
1232
+ position: 'absolute',
1233
+ overflow: 'hidden'
1234
+ }).append($keymgr);
1235
+
1236
+ function watchKeys() //{{{
1237
+ {
1238
+ if (options.keySupport) {
1239
+ $keymgr.show();
1240
+ $keymgr.focus();
1241
+ }
1242
+ }
1243
+ //}}}
1244
+ function onBlur(e) //{{{
1245
+ {
1246
+ $keymgr.hide();
1247
+ }
1248
+ //}}}
1249
+ function doNudge(e, x, y) //{{{
1250
+ {
1251
+ if (options.allowMove) {
1252
+ Coords.moveOffset([x, y]);
1253
+ Selection.updateVisible(true);
1254
+ }
1255
+ e.preventDefault();
1256
+ e.stopPropagation();
1257
+ }
1258
+ //}}}
1259
+ function parseKey(e) //{{{
1260
+ {
1261
+ if (e.ctrlKey || e.metaKey) {
1262
+ return true;
1263
+ }
1264
+ shift_down = e.shiftKey ? true : false;
1265
+ var nudge = shift_down ? 10 : 1;
1266
+
1267
+ switch (e.keyCode) {
1268
+ case 37:
1269
+ doNudge(e, -nudge, 0);
1270
+ break;
1271
+ case 39:
1272
+ doNudge(e, nudge, 0);
1273
+ break;
1274
+ case 38:
1275
+ doNudge(e, 0, -nudge);
1276
+ break;
1277
+ case 40:
1278
+ doNudge(e, 0, nudge);
1279
+ break;
1280
+ case 27:
1281
+ if (options.allowSelect) Selection.release();
1282
+ break;
1283
+ case 9:
1284
+ return true;
1285
+ }
1286
+
1287
+ return false;
1288
+ }
1289
+ //}}}
1290
+
1291
+ if (options.keySupport) {
1292
+ $keymgr.keydown(parseKey).blur(onBlur);
1293
+ if (ie6mode || !options.fixedSupport) {
1294
+ $keymgr.css({
1295
+ position: 'absolute',
1296
+ left: '-20px'
1297
+ });
1298
+ $keywrap.append($keymgr).insertBefore($img);
1299
+ } else {
1300
+ $keymgr.insertBefore($img);
1301
+ }
1302
+ }
1303
+
1304
+
1305
+ return {
1306
+ watchKeys: watchKeys
1307
+ };
1308
+ }());
1309
+ //}}}
1310
+ // }}}
1311
+ // API methods {{{
1312
+ function setClass(cname) //{{{
1313
+ {
1314
+ $div.removeClass().addClass(cssClass('holder')).addClass(cname);
1315
+ }
1316
+ //}}}
1317
+ function animateTo(a, callback) //{{{
1318
+ {
1319
+ var x1 = a[0] / xscale,
1320
+ y1 = a[1] / yscale,
1321
+ x2 = a[2] / xscale,
1322
+ y2 = a[3] / yscale;
1323
+
1324
+ if (animating) {
1325
+ return;
1326
+ }
1327
+
1328
+ var animto = Coords.flipCoords(x1, y1, x2, y2),
1329
+ c = Coords.getFixed(),
1330
+ initcr = [c.x, c.y, c.x2, c.y2],
1331
+ animat = initcr,
1332
+ interv = options.animationDelay,
1333
+ ix1 = animto[0] - initcr[0],
1334
+ iy1 = animto[1] - initcr[1],
1335
+ ix2 = animto[2] - initcr[2],
1336
+ iy2 = animto[3] - initcr[3],
1337
+ pcent = 0,
1338
+ velocity = options.swingSpeed;
1339
+
1340
+ x1 = animat[0];
1341
+ y1 = animat[1];
1342
+ x2 = animat[2];
1343
+ y2 = animat[3];
1344
+
1345
+ Selection.animMode(true);
1346
+ var anim_timer;
1347
+
1348
+ function queueAnimator() {
1349
+ window.setTimeout(animator, interv);
1350
+ }
1351
+ var animator = (function () {
1352
+ return function () {
1353
+ pcent += (100 - pcent) / velocity;
1354
+
1355
+ animat[0] = Math.round(x1 + ((pcent / 100) * ix1));
1356
+ animat[1] = Math.round(y1 + ((pcent / 100) * iy1));
1357
+ animat[2] = Math.round(x2 + ((pcent / 100) * ix2));
1358
+ animat[3] = Math.round(y2 + ((pcent / 100) * iy2));
1359
+
1360
+ if (pcent >= 99.8) {
1361
+ pcent = 100;
1362
+ }
1363
+ if (pcent < 100) {
1364
+ setSelectRaw(animat);
1365
+ queueAnimator();
1366
+ } else {
1367
+ Selection.done();
1368
+ Selection.animMode(false);
1369
+ if (typeof(callback) === 'function') {
1370
+ callback.call(api);
1371
+ }
1372
+ }
1373
+ };
1374
+ }());
1375
+ queueAnimator();
1376
+ }
1377
+ //}}}
1378
+ function setSelect(rect) //{{{
1379
+ {
1380
+ setSelectRaw([rect[0] / xscale, rect[1] / yscale, rect[2] / xscale, rect[3] / yscale]);
1381
+ options.onSelect.call(api, unscale(Coords.getFixed()));
1382
+ Selection.enableHandles();
1383
+ }
1384
+ //}}}
1385
+ function setSelectRaw(l) //{{{
1386
+ {
1387
+ Coords.setPressed([l[0], l[1]]);
1388
+ Coords.setCurrent([l[2], l[3]]);
1389
+ Selection.update();
1390
+ }
1391
+ //}}}
1392
+ function tellSelect() //{{{
1393
+ {
1394
+ return unscale(Coords.getFixed());
1395
+ }
1396
+ //}}}
1397
+ function tellScaled() //{{{
1398
+ {
1399
+ return Coords.getFixed();
1400
+ }
1401
+ //}}}
1402
+ function setOptionsNew(opt) //{{{
1403
+ {
1404
+ setOptions(opt);
1405
+ interfaceUpdate();
1406
+ }
1407
+ //}}}
1408
+ function disableCrop() //{{{
1409
+ {
1410
+ options.disabled = true;
1411
+ Selection.disableHandles();
1412
+ Selection.setCursor('default');
1413
+ Tracker.setCursor('default');
1414
+ }
1415
+ //}}}
1416
+ function enableCrop() //{{{
1417
+ {
1418
+ options.disabled = false;
1419
+ interfaceUpdate();
1420
+ }
1421
+ //}}}
1422
+ function cancelCrop() //{{{
1423
+ {
1424
+ Selection.done();
1425
+ Tracker.activateHandlers(null, null);
1426
+ }
1427
+ //}}}
1428
+ function destroy() //{{{
1429
+ {
1430
+ $div.remove();
1431
+ $origimg.show();
1432
+ $origimg.css('visibility','visible');
1433
+ $(obj).removeData('Jcrop');
1434
+ }
1435
+ //}}}
1436
+ function setImage(src, callback) //{{{
1437
+ {
1438
+ Selection.release();
1439
+ disableCrop();
1440
+ var img = new Image();
1441
+ img.onload = function () {
1442
+ var iw = img.width;
1443
+ var ih = img.height;
1444
+ var bw = options.boxWidth;
1445
+ var bh = options.boxHeight;
1446
+ $img.width(iw).height(ih);
1447
+ $img.attr('src', src);
1448
+ $img2.attr('src', src);
1449
+ presize($img, bw, bh);
1450
+ boundx = $img.width();
1451
+ boundy = $img.height();
1452
+ $img2.width(boundx).height(boundy);
1453
+ $trk.width(boundx + (bound * 2)).height(boundy + (bound * 2));
1454
+ $div.width(boundx).height(boundy);
1455
+ Shade.resize(boundx,boundy);
1456
+ enableCrop();
1457
+
1458
+ if (typeof(callback) === 'function') {
1459
+ callback.call(api);
1460
+ }
1461
+ };
1462
+ img.src = src;
1463
+ }
1464
+ //}}}
1465
+ function colorChangeMacro($obj,color,now) {
1466
+ var mycolor = color || options.bgColor;
1467
+ if (options.bgFade && supportsColorFade() && options.fadeTime && !now) {
1468
+ $obj.animate({
1469
+ backgroundColor: mycolor
1470
+ }, {
1471
+ queue: false,
1472
+ duration: options.fadeTime
1473
+ });
1474
+ } else {
1475
+ $obj.css('backgroundColor', mycolor);
1476
+ }
1477
+ }
1478
+ function interfaceUpdate(alt) //{{{
1479
+ // This method tweaks the interface based on options object.
1480
+ // Called when options are changed and at end of initialization.
1481
+ {
1482
+ if (options.allowResize) {
1483
+ if (alt) {
1484
+ Selection.enableOnly();
1485
+ } else {
1486
+ Selection.enableHandles();
1487
+ }
1488
+ } else {
1489
+ Selection.disableHandles();
1490
+ }
1491
+
1492
+ Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default');
1493
+ Selection.setCursor(options.allowMove ? 'move' : 'default');
1494
+
1495
+ if (options.hasOwnProperty('trueSize')) {
1496
+ xscale = options.trueSize[0] / boundx;
1497
+ yscale = options.trueSize[1] / boundy;
1498
+ }
1499
+
1500
+ if (options.hasOwnProperty('setSelect')) {
1501
+ setSelect(options.setSelect);
1502
+ Selection.done();
1503
+ delete(options.setSelect);
1504
+ }
1505
+
1506
+ Shade.refresh();
1507
+
1508
+ if (options.bgColor != bgcolor) {
1509
+ colorChangeMacro(
1510
+ options.shade? Shade.getShades(): $div,
1511
+ options.shade?
1512
+ (options.shadeColor || options.bgColor):
1513
+ options.bgColor
1514
+ );
1515
+ bgcolor = options.bgColor;
1516
+ }
1517
+
1518
+ if (bgopacity != options.bgOpacity) {
1519
+ bgopacity = options.bgOpacity;
1520
+ if (options.shade) Shade.refresh();
1521
+ else Selection.setBgOpacity(bgopacity);
1522
+ }
1523
+
1524
+ xlimit = options.maxSize[0] || 0;
1525
+ ylimit = options.maxSize[1] || 0;
1526
+ xmin = options.minSize[0] || 0;
1527
+ ymin = options.minSize[1] || 0;
1528
+
1529
+ if (options.hasOwnProperty('outerImage')) {
1530
+ $img.attr('src', options.outerImage);
1531
+ delete(options.outerImage);
1532
+ }
1533
+
1534
+ Selection.refresh();
1535
+ }
1536
+ //}}}
1537
+ //}}}
1538
+
1539
+ if (Touch.support) $trk.bind('touchstart.jcrop', Touch.newSelection);
1540
+
1541
+ $hdl_holder.hide();
1542
+ interfaceUpdate(true);
1543
+
1544
+ var api = {
1545
+ setImage: setImage,
1546
+ animateTo: animateTo,
1547
+ setSelect: setSelect,
1548
+ setOptions: setOptionsNew,
1549
+ tellSelect: tellSelect,
1550
+ tellScaled: tellScaled,
1551
+ setClass: setClass,
1552
+
1553
+ disable: disableCrop,
1554
+ enable: enableCrop,
1555
+ cancel: cancelCrop,
1556
+ release: Selection.release,
1557
+ destroy: destroy,
1558
+
1559
+ focus: KeyManager.watchKeys,
1560
+
1561
+ getBounds: function () {
1562
+ return [boundx * xscale, boundy * yscale];
1563
+ },
1564
+ getWidgetSize: function () {
1565
+ return [boundx, boundy];
1566
+ },
1567
+ getScaleFactor: function () {
1568
+ return [xscale, yscale];
1569
+ },
1570
+ getOptions: function() {
1571
+ // careful: internal values are returned
1572
+ return options;
1573
+ },
1574
+
1575
+ ui: {
1576
+ holder: $div,
1577
+ selection: $sel
1578
+ }
1579
+ };
1580
+
1581
+ if (is_msie) $div.bind('selectstart', function () { return false; });
1582
+
1583
+ $origimg.data('Jcrop', api);
1584
+ return api;
1585
+ };
1586
+ $.fn.Jcrop = function (options, callback) //{{{
1587
+ {
1588
+ var api;
1589
+ // Iterate over each object, attach Jcrop
1590
+ this.each(function () {
1591
+ // If we've already attached to this object
1592
+ if ($(this).data('Jcrop')) {
1593
+ // The API can be requested this way (undocumented)
1594
+ if (options === 'api') return $(this).data('Jcrop');
1595
+ // Otherwise, we just reset the options...
1596
+ else $(this).data('Jcrop').setOptions(options);
1597
+ }
1598
+ // If we haven't been attached, preload and attach
1599
+ else {
1600
+ if (this.tagName == 'IMG')
1601
+ $.Jcrop.Loader(this,function(){
1602
+ $(this).css({display:'block',visibility:'hidden'});
1603
+ api = $.Jcrop(this, options);
1604
+ if ($.isFunction(callback)) callback.call(api);
1605
+ });
1606
+ else {
1607
+ $(this).css({display:'block',visibility:'hidden'});
1608
+ api = $.Jcrop(this, options);
1609
+ if ($.isFunction(callback)) callback.call(api);
1610
+ }
1611
+ }
1612
+ });
1613
+
1614
+ // Return "this" so the object is chainable (jQuery-style)
1615
+ return this;
1616
+ };
1617
+ //}}}
1618
+ // $.Jcrop.Loader - basic image loader {{{
1619
+
1620
+ $.Jcrop.Loader = function(imgobj,success,error){
1621
+ var $img = $(imgobj), img = $img[0];
1622
+
1623
+ function completeCheck(){
1624
+ if (img.complete) {
1625
+ $img.unbind('.jcloader');
1626
+ if ($.isFunction(success)) success.call(img);
1627
+ }
1628
+ else window.setTimeout(completeCheck,50);
1629
+ }
1630
+
1631
+ $img
1632
+ .bind('load.jcloader',completeCheck)
1633
+ .bind('error.jcloader',function(e){
1634
+ $img.unbind('.jcloader');
1635
+ if ($.isFunction(error)) error.call(img);
1636
+ });
1637
+
1638
+ if (img.complete && $.isFunction(success)){
1639
+ $img.unbind('.jcloader');
1640
+ success.call(img);
1641
+ }
1642
+ };
1643
+
1644
+ //}}}
1645
+ // Global Defaults {{{
1646
+ $.Jcrop.defaults = {
1647
+
1648
+ // Basic Settings
1649
+ allowSelect: true,
1650
+ allowMove: true,
1651
+ allowResize: true,
1652
+
1653
+ trackDocument: true,
1654
+
1655
+ // Styling Options
1656
+ baseClass: 'jcrop',
1657
+ addClass: null,
1658
+ bgColor: 'black',
1659
+ bgOpacity: 0.6,
1660
+ bgFade: false,
1661
+ borderOpacity: 0.4,
1662
+ handleOpacity: 0.5,
1663
+ handleSize: null,
1664
+
1665
+ aspectRatio: 0,
1666
+ keySupport: true,
1667
+ createHandles: ['n','s','e','w','nw','ne','se','sw'],
1668
+ createDragbars: ['n','s','e','w'],
1669
+ createBorders: ['n','s','e','w'],
1670
+ drawBorders: true,
1671
+ dragEdges: true,
1672
+ fixedSupport: true,
1673
+ touchSupport: null,
1674
+
1675
+ shade: null,
1676
+
1677
+ boxWidth: 0,
1678
+ boxHeight: 0,
1679
+ boundary: 2,
1680
+ fadeTime: 400,
1681
+ animationDelay: 20,
1682
+ swingSpeed: 3,
1683
+
1684
+ minSelect: [0, 0],
1685
+ maxSize: [0, 0],
1686
+ minSize: [0, 0],
1687
+
1688
+ // Callbacks / Event Handlers
1689
+ onChange: function () {},
1690
+ onSelect: function () {},
1691
+ onDblClick: function () {},
1692
+ onRelease: function () {}
1693
+ };
1694
+
1695
+ // }}}
1696
+ }(jQuery));