blob: e0134790c7d6cd3ec26d8dee659473c99ec2e01c [file] [log] [blame]
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/html/assert.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_pref_behavior.html">
<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_pref_indicator.html">
<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html">
<link rel="import" href="pref_control_behavior.html">
<link rel="import" href="../i18n_setup.html">
<link rel="import" href="../settings_shared_css.html">
<dom-module id="controlled-button">
<template>
<style include="settings-shared">
:host {
--justify-margin: 8px;
-webkit-margin-end: calc(var(--cr-button-edge-spacing) * -1);
-webkit-margin-start: calc(var(--cr-button-edge-spacing) * -1);
align-items: center;
display: flex;
}
:host([enforced_]) {
/* Disable pointer events for this whole element, as outer on-tap gets
* triggered when clicking/tapping anywhere in :host. */
pointer-events: none;
}
cr-policy-pref-indicator {
/* Enable pointer events for the indicator so :hover works. Disable
* clicks/taps via onIndicatorTap_ so outer on-tap doesn't trigger. */
pointer-events: all;
}
:host(:not([end-justified])) cr-policy-pref-indicator {
-webkit-margin-end: calc(
var(--cr-controlled-by-spacing) - var(--justify-margin));
-webkit-margin-start: var(--cr-controlled-by-spacing);
}
:host([end-justified]) cr-policy-pref-indicator {
-webkit-margin-end: var(--cr-controlled-by-spacing);
-webkit-margin-start: calc(
var(--cr-controlled-by-spacing) - var(--justify-margin));
order: -1;
}
</style>
<paper-button disabled="[[enforced_]]">[[label]]</paper-button>
<template is="dom-if" if="[[hasPrefPolicyIndicator(pref.*)]]" restamp>
<cr-policy-pref-indicator pref="[[pref]]" on-tap="onIndicatorTap_"
icon-aria-label="[[label]]">
</cr-policy-pref-indicator>
</template>
</template>
<script src="controlled_button.js"></script>
</dom-module>