60 lines
1.5 KiB
JavaScript
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);
|