drupal/core/misc/details-summarized-content.js

44 lines
1.6 KiB
JavaScript

/**
* DO NOT EDIT THIS FILE.
* See the following change record for more information,
* https://www.drupal.org/node/2815083
* @preserve
**/
(function ($, Drupal) {
function DetailsSummarizedContent(node) {
this.$node = $(node);
this.setupSummary();
}
$.extend(DetailsSummarizedContent, {
instances: []
});
$.extend(DetailsSummarizedContent.prototype, {
setupSummary: function setupSummary() {
this.$detailsSummarizedContentWrapper = $(Drupal.theme('detailsSummarizedContentWrapper'));
this.$node.on('summaryUpdated', $.proxy(this.onSummaryUpdated, this)).trigger('summaryUpdated').find('> summary').append(this.$detailsSummarizedContentWrapper);
},
onSummaryUpdated: function onSummaryUpdated() {
var text = $.trim(this.$node.drupalGetSummary());
this.$detailsSummarizedContentWrapper.html(Drupal.theme('detailsSummarizedContentText', text));
}
});
Drupal.behaviors.detailsSummary = {
attach: function attach(context) {
var $detailsElements = $(context).find('details').once('details');
DetailsSummarizedContent.instances = DetailsSummarizedContent.instances.concat($detailsElements.map(function (index, details) {
return new DetailsSummarizedContent(details);
}).get());
}
};
Drupal.DetailsSummarizedContent = DetailsSummarizedContent;
Drupal.theme.detailsSummarizedContentWrapper = function () {
return "<span class=\"summary\"></span>";
};
Drupal.theme.detailsSummarizedContentText = function (text) {
return text ? " (".concat(text, ")") : '';
};
})(jQuery, Drupal);