// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
 * @fileoverview
 * 'settings-section' shows a paper material themed section with a header
 * which shows its page title.
 *
 * Example:
 *
 *    <settings-section page-title="[[pageTitle]]">
 *      <!-- Insert your section controls here -->
 *    </settings-section>
 */
import '//resources/cr_elements/cr_icon_button/cr_icon_button.js';
import '//resources/cr_elements/cr_shared_vars.css.js';
import { PolymerElement } from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import { getTemplate } from './settings_section.html.js';
export class SettingsSectionElement extends PolymerElement {
    static get is() {
        return 'settings-section';
    }
    static get template() {
        return getTemplate();
    }
    static get properties() {
        return {
            /**
             * Title for the section header. Initialize so we can use the
             * getTitleHiddenStatus_ method for accessibility.
             */
            pageTitle: {
                type: String,
                value: '',
            },
            /**
             * When this attribute is enabled, a send feedback button will be shown
             * that emits a 'send-feedback' event.
             */
            showSendFeedbackButton: {
                type: Boolean,
                value: false,
            },
        };
    }
    /**
     * Get the value to which to set the aria-hidden attribute of the section
     * heading.
     * @return A return value of false will not add aria-hidden while aria-hidden
     *    requires a string of 'true' to be hidden as per aria specs. This
     *    function ensures we have the right return type.
     */
    getTitleHiddenStatus_() {
        return this.pageTitle ? false : 'true';
    }
    focus() {
        this.shadowRoot.querySelector('.title').focus();
    }
    onSendFeedbackClick_() {
        this.dispatchEvent(new CustomEvent('send-feedback', { bubbles: true, composed: true }));
    }
}
customElements.define(SettingsSectionElement.is, SettingsSectionElement);
