| <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> |