drupal/core/modules/contextual/js/views/AuralView.js

60 lines
1.5 KiB
JavaScript

/**
* @file
* A Backbone View that provides the aural view of a contextual link.
*/
(function (Drupal, Backbone) {
/**
* @deprecated in drupal:9.4.0 and is removed from drupal:12.0.0. There is no
* replacement.
*/
Drupal.contextual.AuralView = Backbone.View.extend(
/** @lends Drupal.contextual.AuralView# */ {
/**
* Renders the aural view of a contextual link (i.e. screen reader support).
*
* @constructs
*
* @augments Backbone.View
*
* @param {object} options
* Options for the view.
*/
initialize(options) {
this.options = options;
this.listenTo(this.model, 'change', this.render);
// Initial render.
this.render();
},
/**
* {@inheritdoc}
*/
render() {
const isOpen = this.model.get('isOpen');
// Set the hidden property of the links.
this.$el.find('.contextual-links').prop('hidden', !isOpen);
// Update the view of the trigger.
const $trigger = this.$el.find('.trigger');
$trigger
.each((index, element) => {
element.textContent = Drupal.t(
'@action @title configuration options',
{
'@action': !isOpen
? this.options.strings.open
: this.options.strings.close,
'@title': this.model.get('title'),
},
);
})
.attr('aria-pressed', isOpen);
},
},
);
})(Drupal, Backbone);