geoblacklight 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +17 -48
  3. data/.rubocop.yml +1 -1
  4. data/.rubocop_todo.yml +11 -177
  5. data/app/assets/images/blacklight/arrow-circle-down.svg +1 -2
  6. data/app/assets/images/blacklight/baruch-cuny.svg +1 -4
  7. data/app/assets/images/blacklight/berkeley.svg +1 -4
  8. data/app/assets/images/blacklight/book.svg +1 -4
  9. data/app/assets/images/blacklight/bookmark.svg +1 -4
  10. data/app/assets/images/blacklight/cd-rom.svg +1 -4
  11. data/app/assets/images/blacklight/chicago.svg +1 -4
  12. data/app/assets/images/blacklight/citation.svg +3 -0
  13. data/app/assets/images/blacklight/collection.svg +3 -0
  14. data/app/assets/images/blacklight/columbia.svg +1 -4
  15. data/app/assets/images/blacklight/cornell.svg +1 -4
  16. data/app/assets/images/blacklight/dvd-rom.svg +1 -4
  17. data/app/assets/images/blacklight/email.svg +1 -4
  18. data/app/assets/images/blacklight/esri-globe.svg +1 -4
  19. data/app/assets/images/blacklight/globe.svg +1 -2
  20. data/app/assets/images/blacklight/harvard.svg +1 -4
  21. data/app/assets/images/blacklight/home.svg +1 -2
  22. data/app/assets/images/blacklight/illinois.svg +1 -4
  23. data/app/assets/images/blacklight/image.svg +1 -4
  24. data/app/assets/images/blacklight/indiana.svg +1 -4
  25. data/app/assets/images/blacklight/iowa.svg +1 -4
  26. data/app/assets/images/blacklight/leaf.svg +1 -4
  27. data/app/assets/images/blacklight/lewis-clark.svg +1 -4
  28. data/app/assets/images/blacklight/line.svg +1 -4
  29. data/app/assets/images/blacklight/map-marker.svg +1 -4
  30. data/app/assets/images/blacklight/map.svg +1 -4
  31. data/app/assets/images/blacklight/maryland.svg +1 -4
  32. data/app/assets/images/blacklight/massgis.svg +1 -4
  33. data/app/assets/images/blacklight/metadata.svg +1 -4
  34. data/app/assets/images/blacklight/michigan-state.svg +1 -4
  35. data/app/assets/images/blacklight/michigan.svg +1 -4
  36. data/app/assets/images/blacklight/minnesota.svg +1 -4
  37. data/app/assets/images/blacklight/mit.svg +1 -4
  38. data/app/assets/images/blacklight/mixed.svg +1 -4
  39. data/app/assets/images/blacklight/multilinestring.svg +1 -4
  40. data/app/assets/images/blacklight/multipoint.svg +1 -4
  41. data/app/assets/images/blacklight/multipolygon.svg +1 -4
  42. data/app/assets/images/blacklight/nyu.svg +1 -4
  43. data/app/assets/images/blacklight/ohio-state.svg +1 -4
  44. data/app/assets/images/blacklight/pagelines-brands.svg +1 -4
  45. data/app/assets/images/blacklight/paper-map.svg +1 -4
  46. data/app/assets/images/blacklight/penn-state.svg +1 -4
  47. data/app/assets/images/blacklight/point.svg +1 -4
  48. data/app/assets/images/blacklight/polygon.svg +1 -4
  49. data/app/assets/images/blacklight/polyline.svg +1 -4
  50. data/app/assets/images/blacklight/princeton.svg +1 -4
  51. data/app/assets/images/blacklight/public.svg +1 -4
  52. data/app/assets/images/blacklight/purdue.svg +1 -4
  53. data/app/assets/images/blacklight/raster.svg +1 -4
  54. data/app/assets/images/blacklight/restricted.svg +1 -4
  55. data/app/assets/images/blacklight/sms.svg +1 -4
  56. data/app/assets/images/blacklight/stanford.svg +1 -4
  57. data/app/assets/images/blacklight/table.svg +1 -4
  58. data/app/assets/images/blacklight/tags.svg +1 -2
  59. data/app/assets/images/blacklight/texas.svg +1 -4
  60. data/app/assets/images/blacklight/tufts.svg +1 -4
  61. data/app/assets/images/blacklight/ucla.svg +1 -4
  62. data/app/assets/images/blacklight/uva.svg +1 -4
  63. data/app/assets/images/blacklight/web_services.svg +1 -4
  64. data/app/assets/images/blacklight/wisconsin.svg +1 -4
  65. data/app/assets/javascripts/geoblacklight/modules/geosearch.js +1 -1
  66. data/app/assets/javascripts/geoblacklight/modules/home.js +1 -1
  67. data/app/assets/javascripts/geoblacklight/modules/item.js +20 -1
  68. data/app/assets/stylesheets/geoblacklight/_blacklight_overrides.scss +0 -9
  69. data/app/assets/stylesheets/geoblacklight/modules/item.scss +12 -0
  70. data/app/assets/stylesheets/geoblacklight/modules/results.scss +38 -29
  71. data/app/helpers/geoblacklight_helper.rb +16 -7
  72. data/app/models/concerns/geoblacklight/solr_document.rb +7 -2
  73. data/app/models/concerns/geoblacklight/solr_document/citation.rb +28 -0
  74. data/app/views/catalog/_citation.html.erb +11 -0
  75. data/app/views/catalog/_data_dictionary.html.erb +1 -1
  76. data/app/views/catalog/_document_action.html.erb +1 -1
  77. data/app/views/catalog/_document_split.html.erb +1 -1
  78. data/app/views/catalog/_home_text.html.erb +1 -1
  79. data/app/views/catalog/_index_split_default.html.erb +18 -10
  80. data/app/views/catalog/_show_default_viewer_container.html.erb +1 -1
  81. data/app/views/catalog/_web_services_wfs.html.erb +3 -3
  82. data/app/views/catalog/_web_services_wms.html.erb +3 -3
  83. data/app/views/catalog/metadata.html.erb +3 -1
  84. data/app/views/catalog/web_services.html.erb +9 -7
  85. data/app/views/relation/_ancestors.html.erb +1 -1
  86. data/app/views/relation/_descendants.html.erb +1 -1
  87. data/config/locales/geoblacklight.en.yml +43 -59
  88. data/lib/generators/geoblacklight/templates/catalog_controller.rb +1 -0
  89. data/lib/generators/geoblacklight/templates/geoblacklight.js +0 -1
  90. data/lib/generators/geoblacklight/templates/settings.yml +4 -0
  91. data/lib/geoblacklight/catalog_helper_override.rb +1 -1
  92. data/lib/geoblacklight/relation/ancestors.rb +1 -1
  93. data/lib/geoblacklight/relation/descendants.rb +1 -1
  94. data/lib/geoblacklight/version.rb +1 -1
  95. data/lib/geoblacklight/view_helper_override.rb +1 -1
  96. data/lib/tasks/geoblacklight.rake +1 -1
  97. data/spec/features/relations_spec.rb +2 -1
  98. data/spec/features/split_view.html.erb_spec.rb +1 -1
  99. data/spec/helpers/geoblacklight_helper_spec.rb +13 -0
  100. data/spec/javascripts/geoblacklight_spec.js +0 -4
  101. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +1 -1
  102. data/spec/lib/geoblacklight/relation/descendants_spec.rb +1 -1
  103. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +13 -0
  104. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +26 -0
  105. data/spec/support/fixtures.rb +7 -0
  106. data/spec/tasks/geoblacklight_spec.rb +18 -0
  107. data/vendor/assets/javascripts/readmore.js +0 -618
  108. data/vendor/assets/javascripts/readmore.min.js +0 -0
  109. data/vendor/assets/stylesheets/leaflet.css +0 -1
  110. metadata +13 -4
  111. data/app/assets/javascripts/geoblacklight/modules/collapse.js +0 -7
  112. data/vendor/assets/javascripts/readmore.js.map +0 -1
@@ -246,7 +246,6 @@
246
246
 
247
247
  .leaflet-container {
248
248
  background: #ddd;
249
- outline: 0;
250
249
  }
251
250
  .leaflet-container a {
252
251
  color: #0078A8;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geoblacklight
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Graves
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-04-01 00:00:00.000000000 Z
14
+ date: 2020-07-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -413,6 +413,8 @@ files:
413
413
  - app/assets/images/blacklight/bookmark.svg
414
414
  - app/assets/images/blacklight/cd-rom.svg
415
415
  - app/assets/images/blacklight/chicago.svg
416
+ - app/assets/images/blacklight/citation.svg
417
+ - app/assets/images/blacklight/collection.svg
416
418
  - app/assets/images/blacklight/columbia.svg
417
419
  - app/assets/images/blacklight/cornell.svg
418
420
  - app/assets/images/blacklight/dvd-rom.svg
@@ -474,7 +476,6 @@ files:
474
476
  - app/assets/javascripts/geoblacklight/downloaders/hgl_downloader.js
475
477
  - app/assets/javascripts/geoblacklight/geoblacklight.js
476
478
  - app/assets/javascripts/geoblacklight/modules.js
477
- - app/assets/javascripts/geoblacklight/modules/collapse.js
478
479
  - app/assets/javascripts/geoblacklight/modules/download.js
479
480
  - app/assets/javascripts/geoblacklight/modules/geosearch.js
480
481
  - app/assets/javascripts/geoblacklight/modules/help_text.js
@@ -534,10 +535,12 @@ files:
534
535
  - app/models/concerns/geoblacklight/solr_document.rb
535
536
  - app/models/concerns/geoblacklight/solr_document/arcgis.rb
536
537
  - app/models/concerns/geoblacklight/solr_document/carto.rb
538
+ - app/models/concerns/geoblacklight/solr_document/citation.rb
537
539
  - app/models/concerns/geoblacklight/solr_document/finder.rb
538
540
  - app/models/concerns/geoblacklight/solr_document/inspection.rb
539
541
  - app/models/concerns/geoblacklight/spatial_search_behavior.rb
540
542
  - app/presenters/geoblacklight/document_presenter.rb
543
+ - app/views/catalog/_citation.html.erb
541
544
  - app/views/catalog/_data_dictionary.html.erb
542
545
  - app/views/catalog/_document_action.html.erb
543
546
  - app/views/catalog/_document_split.html.erb
@@ -768,6 +771,7 @@ files:
768
771
  - spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb
769
772
  - spec/lib/geoblacklight/wms_layer_spec.rb
770
773
  - spec/models/concerns/geoblacklight/solr_document/carto_spec.rb
774
+ - spec/models/concerns/geoblacklight/solr_document/citation_spec.rb
771
775
  - spec/models/concerns/geoblacklight/solr_document/finder_spec.rb
772
776
  - spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb
773
777
  - spec/models/concerns/geoblacklight/solr_document_spec.rb
@@ -777,6 +781,8 @@ files:
777
781
  - spec/support/backport_test_helpers.rb
778
782
  - spec/support/features.rb
779
783
  - spec/support/features/session_helpers.rb
784
+ - spec/support/fixtures.rb
785
+ - spec/tasks/geoblacklight_spec.rb
780
786
  - spec/teaspoon_env.rb
781
787
  - spec/test_app_templates/Gemfile.extra
782
788
  - spec/test_app_templates/lib/generators/test_app_generator.rb
@@ -803,7 +809,7 @@ files:
803
809
  - vendor/assets/javascripts/leaflet.js.erb
804
810
  - vendor/assets/javascripts/native.history.js
805
811
  - vendor/assets/javascripts/readmore.js
806
- - vendor/assets/javascripts/readmore.js.map
812
+ - vendor/assets/javascripts/readmore.min.js
807
813
  - vendor/assets/stylesheets/leaflet-label.css
808
814
  - vendor/assets/stylesheets/leaflet.css
809
815
  homepage: http://github.com/geoblacklight/geoblacklight
@@ -943,6 +949,7 @@ test_files:
943
949
  - spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb
944
950
  - spec/lib/geoblacklight/wms_layer_spec.rb
945
951
  - spec/models/concerns/geoblacklight/solr_document/carto_spec.rb
952
+ - spec/models/concerns/geoblacklight/solr_document/citation_spec.rb
946
953
  - spec/models/concerns/geoblacklight/solr_document/finder_spec.rb
947
954
  - spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb
948
955
  - spec/models/concerns/geoblacklight/solr_document_spec.rb
@@ -952,6 +959,8 @@ test_files:
952
959
  - spec/support/backport_test_helpers.rb
953
960
  - spec/support/features.rb
954
961
  - spec/support/features/session_helpers.rb
962
+ - spec/support/fixtures.rb
963
+ - spec/tasks/geoblacklight_spec.rb
955
964
  - spec/teaspoon_env.rb
956
965
  - spec/test_app_templates/Gemfile.extra
957
966
  - spec/test_app_templates/lib/generators/test_app_generator.rb
@@ -1,7 +0,0 @@
1
- Blacklight.onLoad(function() {
2
- $('#content')
3
- .on('click', '#documents [data-layer-id]', function() {
4
- $(this).find('.collapse').collapse('toggle');
5
- $(this).find('.caret-toggle').toggleClass('open');
6
- });
7
- });
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://Readmore/webpack/universalModuleDefinition","webpack://Readmore/webpack/bootstrap","webpack://Readmore/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://Readmore/./node_modules/@babel/runtime/helpers/createClass.js","webpack://Readmore/./node_modules/@babel/runtime/helpers/typeof.js","webpack://Readmore/./src/readmore.js"],"names":["uniqueIdCounter","isCssEmbeddedFor","removePolyfill","arr","forEach","item","Object","prototype","hasOwnProperty","call","defineProperty","configurable","enumerable","writable","value","remove","parentNode","removeChild","Element","CharacterData","DocumentType","callback","scope","i","length","extend","objects","hasProp","child","parent","args","keys","key","push","c1","shift","p1","unshift","debounce","func","wait","immediate","timeout","debouncedFunc","callNow","later","apply","clearTimeout","setTimeout","uniqueId","setBoxHeights","element","style","height","expandedHeight","parseInt","getBoundingClientRect","cssMaxHeight","window","getComputedStyle","maxHeight","defaultHeight","readmore","collapsedHeight","createElementFromString","htmlString","div","document","createElement","innerHTML","firstChild","embedCSS","selector","options","styles","blockCSS","speed","d","u","css","type","styleSheet","cssText","appendChild","createTextNode","getElementsByTagName","buildToggle","link","clickHandler","event","toggle","text","toggleLink","setAttribute","id","addEventListener","bind","isEnvironmentSupported","querySelectorAll","resizeBoxes","elements","expanded","getAttribute","defaults","heightMargin","moreLink","lessLink","startOpen","sourceOrder","blockProcessed","beforeToggle","afterToggle","Readmore","nodeName","instanceSelector","classList","add","substr","toggleElement","insertBefore","nextSibling","el","trigger","querySelector","newHeight","shouldContinueToggle","transitionendHandler","transitionEvent","stopPropagation","removeEventListener","target","replaceChild","Error","preventDefault","indexOf","filter","removeAttribute","VERSION"],"mappings":"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","file":"readmore.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Readmore\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Readmore\"] = factory();\n\telse\n\t\troot[\"Readmore\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","let uniqueIdCounter = 0;\n\nconst isCssEmbeddedFor = [];\n\n// from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md\n((function removePolyfill(arr) {\n arr.forEach((item) => {\n if (Object.prototype.hasOwnProperty.call(item, 'remove')) {\n return;\n }\n Object.defineProperty(item, 'remove', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: function remove() {\n if (this.parentNode !== null) {\n this.parentNode.removeChild(this);\n }\n }\n });\n });\n})([Element.prototype, CharacterData.prototype, DocumentType.prototype]));\n\nfunction forEach(arr, callback, scope) {\n for (let i = 0; i < arr.length; i += 1) {\n callback.call(scope, arr[i], i);\n }\n}\n\nfunction extend(...objects) {\n const hasProp = {}.hasOwnProperty;\n let child = objects[0];\n let parent = objects[1];\n\n if (objects.length > 2) {\n const args = [];\n\n Object.keys(objects).forEach((key) => {\n args.push(objects[key]);\n });\n\n while (args.length > 2) {\n const c1 = args.shift();\n const p1 = args.shift();\n args.unshift(extend(c1, p1));\n }\n\n child = args.shift();\n parent = args.shift();\n }\n\n if (parent) {\n Object.keys(parent).forEach((key) => {\n if (hasProp.call(parent, key)) {\n if (typeof parent[key] === 'object') {\n child[key] = child[key] || {};\n child[key] = extend(child[key], parent[key]);\n } else {\n child[key] = parent[key];\n }\n }\n });\n }\n\n return child;\n}\n\nfunction debounce(func, wait, immediate) {\n let timeout;\n\n return function debouncedFunc(...args) {\n const callNow = immediate && !timeout;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) func.apply(this, args);\n };\n}\n\nfunction uniqueId() {\n uniqueIdCounter += 1;\n\n return `rmjs-${uniqueIdCounter}`;\n}\n\nfunction setBoxHeights(element) {\n element.style.height = 'auto';\n\n const expandedHeight = parseInt(element.getBoundingClientRect().height, 10);\n const cssMaxHeight = parseInt(window.getComputedStyle(element).maxHeight, 10);\n const defaultHeight = parseInt(element.readmore.defaultHeight, 10);\n\n // Store our measurements.\n element.readmore.expandedHeight = expandedHeight;\n element.readmore.maxHeight = cssMaxHeight;\n element.readmore.collapsedHeight = cssMaxHeight || element.readmore.collapsedHeight || defaultHeight;\n\n element.style.maxHeight = 'none';\n}\n\nfunction createElementFromString(htmlString) {\n const div = document.createElement('div');\n div.innerHTML = htmlString;\n\n return div.firstChild;\n}\n\nfunction embedCSS(selector, options) {\n if (!isCssEmbeddedFor[selector]) {\n let styles = '';\n\n if (options.embedCSS && options.blockCSS !== '') {\n styles += `${selector} + [data-readmore-toggle], ${selector}[data-readmore] {\n ${options.blockCSS}\n }`;\n }\n\n // Include the transition CSS even if embedCSS is false\n styles += `${selector}[data-readmore] {\n transition: height ${options.speed}ms;\n overflow: hidden;\n }`;\n\n (((d, u) => {\n const css = d.createElement('style');\n css.type = 'text/css';\n\n if (css.styleSheet) {\n css.styleSheet.cssText = u;\n } else {\n css.appendChild(d.createTextNode(u));\n }\n\n d.getElementsByTagName('head')[0].appendChild(css);\n })(document, styles));\n\n isCssEmbeddedFor[selector] = true;\n }\n}\n\nfunction buildToggle(link, element, scope) {\n function clickHandler(event) {\n this.toggle(element, event);\n }\n\n let text = link;\n if (typeof link === 'function') {\n text = link(element);\n }\n\n const toggleLink = createElementFromString(text);\n toggleLink.setAttribute('data-readmore-toggle', element.id);\n toggleLink.setAttribute('aria-controls', element.id);\n toggleLink.addEventListener('click', clickHandler.bind(scope));\n\n return toggleLink;\n}\n\nfunction isEnvironmentSupported() {\n return (typeof window !== 'undefined' && typeof document !== 'undefined')\n && !!document.querySelectorAll && !!window.addEventListener;\n}\n\nconst resizeBoxes = debounce(() => {\n const elements = document.querySelectorAll('[data-readmore]');\n\n forEach(elements, (element) => {\n const expanded = element.getAttribute('aria-expanded') === 'true';\n\n setBoxHeights(element);\n\n element.style.height = `${expanded ? element.readmore.expandedHeight : element.readmore.collapsedHeight}px`;\n });\n}, 100);\n\nconst defaults = {\n speed: 100,\n collapsedHeight: 200,\n heightMargin: 16,\n moreLink: '<a href=\"#\">Read More</a>',\n lessLink: '<a href=\"#\">Close</a>',\n embedCSS: true,\n blockCSS: 'display: block; width: 100%;',\n startOpen: false,\n sourceOrder: 'after',\n\n // callbacks\n blockProcessed: () => {},\n beforeToggle: () => {},\n afterToggle: () => {}\n};\n\nclass Readmore {\n constructor(...args) {\n if (!isEnvironmentSupported()) return;\n\n const [selector, options] = args;\n let elements;\n\n if (typeof selector === 'string') {\n elements = document.querySelectorAll(selector);\n } else if (selector.nodeName) {\n elements = [selector]; // emulate a NodeList by casting a single Node as an array\n } else {\n elements = selector;\n }\n\n // After all that, if we _still_ don't have iteratable NodeList, bail out.\n if (!elements.length) return;\n\n this.options = extend({}, defaults, options);\n\n if (typeof selector === 'string') {\n embedCSS(selector, this.options);\n } else {\n // Instances need distinct selectors so they don't stomp on each other.\n this.instanceSelector = `.${uniqueId()}`;\n embedCSS(this.instanceSelector, this.options);\n }\n\n // Need to resize boxes when the page has fully loaded.\n window.addEventListener('load', resizeBoxes);\n window.addEventListener('resize', resizeBoxes);\n\n this.elements = [];\n\n forEach(elements, (element) => {\n if (this.instanceSelector) {\n element.classList.add(this.instanceSelector.substr(1));\n }\n\n const expanded = this.options.startOpen;\n\n element.readmore = {\n defaultHeight: this.options.collapsedHeight,\n heightMargin: this.options.heightMargin\n };\n\n setBoxHeights(element);\n\n const { heightMargin } = element.readmore;\n\n if (element.getBoundingClientRect().height <= element.readmore.collapsedHeight + heightMargin) {\n if (typeof this.options.blockProcessed === 'function') {\n this.options.blockProcessed(element, false);\n }\n return;\n }\n\n element.setAttribute('data-readmore', '');\n element.setAttribute('aria-expanded', expanded);\n element.id = element.id || uniqueId();\n\n const toggleLink = expanded ? this.options.lessLink : this.options.moreLink;\n const toggleElement = buildToggle(toggleLink, element, this);\n\n element.parentNode.insertBefore(toggleElement, (this.options.sourceOrder === 'before') ? element : element.nextSibling);\n\n element.style.height = `${expanded ? element.readmore.expandedHeight : element.readmore.collapsedHeight}px`;\n\n if (typeof this.options.blockProcessed === 'function') {\n this.options.blockProcessed(element, true);\n }\n\n this.elements.push(element);\n });\n }\n\n // Signature when called internally by the toggleLink click handler:\n // toggle(element, event)\n //\n // When called externally by an instance,\n // e.g. readmoreDemo.toggle(document.querySelector('article:nth-of-type(1)')):\n // toggle(elementOrQuerySelector)\n toggle(...args) {\n let el = args[0];\n\n const toggleElement = (element) => {\n const trigger = document.querySelector(`[aria-controls=\"${element.id}\"]`);\n const expanded = element.getBoundingClientRect().height <= element.readmore.collapsedHeight;\n const newHeight = expanded ? element.readmore.expandedHeight : element.readmore.collapsedHeight;\n\n // Fire beforeToggle callback\n // Since we determined the new \"expanded\" state above we're now out of sync\n // with our true current state, so we need to flip the value of `expanded`\n if (typeof this.options.beforeToggle === 'function') {\n const shouldContinueToggle = this.options.beforeToggle(trigger, element, !expanded);\n\n // if the beforeToggle callback returns false, stop toggling\n if (shouldContinueToggle === false) {\n return;\n }\n }\n\n element.style.height = `${newHeight}px`;\n\n const transitionendHandler = (transitionEvent) => {\n // Fire afterToggle callback\n if (typeof this.options.afterToggle === 'function') {\n this.options.afterToggle(trigger, element, expanded);\n }\n\n transitionEvent.stopPropagation();\n\n element.setAttribute('aria-expanded', expanded);\n element.removeEventListener('transitionend', transitionendHandler, false);\n };\n\n element.addEventListener('transitionend', transitionendHandler, false);\n\n if (this.options.speed < 1) {\n transitionendHandler.call(this, { target: element });\n }\n\n const toggleLink = expanded ? this.options.lessLink : this.options.moreLink;\n\n if (!toggleLink) {\n trigger.remove();\n } else if (trigger && trigger.parentNode) {\n trigger.parentNode.replaceChild(buildToggle(toggleLink, element, this), trigger);\n }\n };\n\n if (typeof el === 'string') {\n el = document.querySelectorAll(el);\n }\n\n if (!el) {\n throw new Error('Element MUST be either an HTML node or querySelector string');\n }\n\n const event = args[1];\n\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (typeof el === 'object' && !el.nodeName) { // element is likely a NodeList\n forEach(el, toggleElement);\n } else {\n toggleElement(el);\n }\n }\n\n destroy(selector) {\n let elements;\n\n if (!selector) {\n elements = this.elements; // eslint-disable-line\n } else if (typeof selector === 'string') {\n elements = document.querySelectorAll(selector);\n } else if (selector.nodeName) {\n elements = [selector]; // emulate a NodeList by casting a single Node as an array\n } else {\n elements = selector;\n }\n\n forEach(elements, (element) => {\n if (this.elements.indexOf(element) === -1) {\n return;\n }\n\n this.elements = this.elements.filter((el) => el !== element);\n\n if (this.instanceSelector) {\n element.classList.remove(this.instanceSelector.substr(1));\n }\n\n delete element.readmore;\n\n element.style.height = 'initial';\n element.style.maxHeight = 'initial';\n\n element.removeAttribute('data-readmore');\n element.removeAttribute('aria-expanded');\n\n const trigger = document.querySelector(`[aria-controls=\"${element.id}\"]`);\n if (trigger) {\n trigger.remove();\n }\n\n if (element.id.indexOf('rmjs-') !== -1) {\n element.removeAttribute('id');\n }\n });\n\n delete this;\n }\n}\n\nReadmore.VERSION = __VERSION__;\n\nexport default Readmore;\n"],"sourceRoot":""}