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 |