Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <link rel="import" href="chrome://resources/html/polymer.html"> | 1 <link rel="import" href="chrome://resources/html/polymer.html"> |
| 2 <link rel="import" href="chrome://resources/polymer/v1_0/paper-radio-button/pape r-radio-button.html"> | 2 <link rel="import" href="chrome://resources/polymer/v1_0/paper-radio-button/pape r-radio-button.html"> |
|
dpapad
2017/04/13 00:35:09
No longer needed?
Dan Beam
2017/04/13 00:59:01
Done. (with pleasure)
| |
| 3 <link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_pref_in dicator.html"> | 3 <link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_pref_in dicator.html"> |
| 4 <link rel="import" href="pref_control_behavior.html"> | 4 <link rel="import" href="pref_control_behavior.html"> |
| 5 <link rel="import" href="../prefs/pref_util.html"> | 5 <link rel="import" href="../prefs/pref_util.html"> |
| 6 <link rel="import" href="../settings_shared_css.html"> | 6 <link rel="import" href="../settings_shared_css.html"> |
| 7 | 7 |
| 8 <dom-module id="controlled-radio-button"> | 8 <dom-module id="controlled-radio-button"> |
| 9 <template> | 9 <template> |
| 10 <style include="settings-shared"> | 10 <style include="settings-shared"> |
| 11 :host { | 11 :host { |
| 12 --ink-to-circle: calc((var(--paper-radio-button-ink-size) - | |
| 13 var(--paper-radio-button-size)) / 2); | |
| 12 align-items: center; | 14 align-items: center; |
| 13 display: flex; | 15 display: flex; |
| 14 outline: none; | 16 outline: none; |
| 15 } | 17 } |
| 16 | 18 |
| 17 #radioButton { | 19 #labelWrapper { |
| 20 -webkit-margin-start: var(--paper-radio-button-label-spacing, 10px); | |
| 18 flex: 1; | 21 flex: 1; |
| 19 } | 22 } |
| 20 | 23 |
| 24 #label { | |
| 25 color: var(--paper-radio-button-label-color, var(--primary-text-color)); | |
| 26 } | |
| 27 | |
| 28 .circle, | |
| 29 .disc, | |
| 30 .disc-wrapper, | |
| 31 paper-ripple { | |
| 32 border-radius: 50%; | |
| 33 } | |
| 34 | |
| 35 .disc-wrapper { | |
| 36 height: var(--paper-radio-button-ink-size); | |
| 37 margin: 0 calc(-1 * var(--ink-to-circle)); | |
| 38 position: relative; | |
| 39 width: var(--paper-radio-button-ink-size); | |
| 40 } | |
| 41 | |
| 42 .circle, | |
| 43 .disc { | |
| 44 box-sizing: border-box; | |
| 45 height: var(--paper-radio-button-size); | |
| 46 left: var(--ink-to-circle); | |
| 47 position: absolute; | |
| 48 top: var(--ink-to-circle); | |
| 49 width: var(--paper-radio-button-size); | |
| 50 } | |
| 51 | |
| 52 .circle { | |
| 53 border: 2px solid var(--paper-radio-button-unchecked-color, | |
| 54 --primary-text-color); | |
| 55 } | |
| 56 | |
| 57 :host([checked]) .circle { | |
| 58 border-color: var(--paper-radio-button-checked-color, --primary-color); | |
| 59 } | |
| 60 | |
| 61 .disc { | |
| 62 background-color: var(--paper-radio-button-unchecked-background-color, | |
| 63 transparent); | |
| 64 transform: scale(0); | |
| 65 transition: border-color 200ms, transform 200ms; | |
| 66 } | |
| 67 | |
| 68 :host([checked]) .disc { | |
| 69 background-color: var(--paper-radio-button-checked-color, | |
| 70 --primary-color); | |
| 71 transform: scale(0.5); | |
| 72 } | |
| 73 | |
| 74 paper-ripple { | |
| 75 color: var(--paper-radio-button-unchecked-ink-color, | |
| 76 --primary-text-color); | |
| 77 opacity: .6; | |
| 78 } | |
| 79 | |
| 80 :host([checked]) paper-ripple { | |
| 81 color: var(--paper-radio-button-checked-ink-color, | |
| 82 --primary-text-color); | |
| 83 } | |
| 84 | |
| 21 :host([controlled_]) { | 85 :host([controlled_]) { |
| 22 /* Disable pointer events for this whole element, as outer on-tap gets | 86 /* Disable pointer events for this whole element, as outer on-tap gets |
| 23 * triggered when clicking/tapping anywhere in :host. */ | 87 * triggered when clicking/tapping anywhere in :host. */ |
| 24 pointer-events: none; | 88 pointer-events: none; |
| 25 } | 89 } |
| 26 | 90 |
| 91 :host([controlled_]) :-webkit-any(.circle, .disc) { | |
| 92 opacity: .5; | |
| 93 } | |
| 94 | |
| 95 :host([controlled_]) .circle { | |
| 96 border-color: var(--paper-radio-button-unchecked-color, | |
| 97 --primary-text-color); | |
| 98 } | |
| 99 | |
| 100 :host([controlled_][checked]) .disc { | |
| 101 background-color: var(--paper-radio-button-unchecked-color, | |
| 102 --primary-text-color); | |
| 103 } | |
| 104 | |
| 105 :host([controlled_]) #labelWrapper { | |
| 106 opacity: .65; | |
| 107 } | |
| 108 | |
| 27 cr-policy-pref-indicator { | 109 cr-policy-pref-indicator { |
| 28 -webkit-margin-start: var(--settings-control-spacing); | 110 -webkit-margin-start: var(--settings-control-spacing); |
| 29 /* Enable pointer events for the indicator so :hover works. Disable | 111 /* Enable pointer events for the indicator so :hover works. Disable |
| 30 * clicks/taps via onIndicatorTap_ so outer on-tap doesn't trigger. */ | 112 * clicks/taps via onIndicatorTap_ so outer on-tap doesn't trigger. */ |
| 31 pointer-events: all; | 113 pointer-events: all; |
| 32 } | 114 } |
| 33 </style> | 115 </style> |
| 34 | 116 |
| 35 <paper-radio-button id="radioButton" name="{{name}}" checked="{{checked}}" | 117 <div class="disc-wrapper"> |
| 36 disabled="[[controlled_]]" tabindex$="[[tabindex]]"> | 118 <div class="circle"></div> |
| 37 [[label]] <content></content> | 119 <div class="disc"></div> |
| 38 </paper-radio-button> | 120 <paper-ripple center hold-down="[[pressed_]]"></paper-ripple> |
| 121 </div> | |
| 122 | |
| 123 <div id="labelWrapper"> | |
| 124 <span id="label" hidden$="[[!label]]">[[label]]</span> | |
| 125 <content></content> | |
| 126 </div> | |
| 39 | 127 |
| 40 <template is="dom-if" if="[[showIndicator_(controlled_, name, pref.*)]]"> | 128 <template is="dom-if" if="[[showIndicator_(controlled_, name, pref.*)]]"> |
| 41 <cr-policy-pref-indicator pref="[[pref]]" on-tap="onIndicatorTap_" | 129 <cr-policy-pref-indicator pref="[[pref]]" on-tap="onIndicatorTap_" |
| 42 icon-aria-label="[[label]]"> | 130 icon-aria-label="[[label]]"> |
| 43 </cr-policy-pref-indicator> | 131 </cr-policy-pref-indicator> |
| 44 </template> | 132 </template> |
| 45 | 133 |
| 46 </template> | 134 </template> |
| 47 <script src="controlled_radio_button.js"></script> | 135 <script src="controlled_radio_button.js"></script> |
| 48 </dom-module> | 136 </dom-module> |
| OLD | NEW |