Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: chrome/browser/resources/print_preview/settings/advanced_settings/advanced_settings_item.js

Issue 2861713004: Print Preview: Fix compile errors in settings/ directory (Closed)
Patch Set: Remove extra semis Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 /**
5 * Specifies a custom vendor capability.
6 * @typedef {{
7 * id: (string),
8 * display_name: (string),
9 * localized_display_name: (string | undefined),
10 * type: (string),
11 * select_cap: ({
12 * option: (Array<{
13 * display_name: (string),
14 * type: (string | undefined),
15 * value: (number | string | boolean),
16 * is_default: (boolean | undefined)
17 * }>|undefined)
18 * }|undefined)
19 * }}
20 */
21 print_preview.VendorCapability;
4 22
5 cr.define('print_preview', function() { 23 cr.define('print_preview', function() {
6 'use strict'; 24 'use strict';
7 25
8 /** 26 /**
9 * Component that renders a destination item in a destination list. 27 * Component that renders a destination item in a destination list.
10 * @param {!cr.EventTarget} eventTarget Event target to dispatch selection
11 * events to.
12 * @param {!print_preview.PrintTicketStore} printTicketStore Contains the 28 * @param {!print_preview.PrintTicketStore} printTicketStore Contains the
13 * print ticket to print. 29 * print ticket to print.
14 * @param {!Object} capability Capability to render. 30 * @param {!print_preview.VendorCapability} capability Capability to render.
15 * @constructor 31 * @constructor
16 * @extends {print_preview.Component} 32 * @extends {print_preview.Component}
17 */ 33 */
18 function AdvancedSettingsItem(eventTarget, printTicketStore, capability) { 34 function AdvancedSettingsItem(printTicketStore, capability) {
19 print_preview.Component.call(this); 35 print_preview.Component.call(this);
20 36
21 /** 37 /**
22 * Event target to dispatch selection events to.
23 * @private {!cr.EventTarget}
24 */
25 this.eventTarget_ = eventTarget;
26
27 /**
28 * Contains the print ticket to print. 38 * Contains the print ticket to print.
29 * @private {!print_preview.PrintTicketStore} 39 * @private {!print_preview.PrintTicketStore}
30 */ 40 */
31 this.printTicketStore_ = printTicketStore; 41 this.printTicketStore_ = printTicketStore;
32 42
33 /** 43 /**
34 * Capability this component renders. 44 * Capability this component renders.
35 * @private {!Object} 45 * @private {!print_preview.VendorCapability}
36 */ 46 */
37 this.capability_ = capability; 47 this.capability_ = capability;
38 48
39 /** 49 /**
40 * Value selected by user. {@code null}, if user has not changed the default 50 * Value selected by user. {@code null}, if user has not changed the default
41 * value yet (still, the value can be the default one, if it is what user 51 * value yet (still, the value can be the default one, if it is what user
42 * selected). 52 * selected).
43 * @private {?string} 53 * @private {?string}
44 */ 54 */
45 this.selectedValue_ = null; 55 this.selectedValue_ = null;
46 56
47 /** 57 /**
48 * Active filter query. 58 * Active filter query.
49 * @private {RegExp} 59 * @private {RegExp}
50 */ 60 */
51 this.query_ = null; 61 this.query_ = null;
52 62
53 /** 63 /**
54 * Search hint for the control. 64 * Search hint for the control.
55 * @private {print_preview.SearchBubble} 65 * @private {print_preview.SearchBubble}
56 */ 66 */
57 this.searchBubble_ = null; 67 this.searchBubble_ = null;
58 68
59 /** @private {!EventTracker} */ 69 /** @private {!EventTracker} */
60 this.tracker_ = new EventTracker(); 70 this.tracker_ = new EventTracker();
61 }; 71 }
62 72
63 AdvancedSettingsItem.prototype = { 73 AdvancedSettingsItem.prototype = {
64 __proto__: print_preview.Component.prototype, 74 __proto__: print_preview.Component.prototype,
65 75
66 /** @override */ 76 /** @override */
67 createDom: function() { 77 createDom: function() {
68 this.setElementInternal(this.cloneTemplateInternal( 78 this.setElementInternal(this.cloneTemplateInternal(
69 'advanced-settings-item-template')); 79 'advanced-settings-item-template'));
70 80
71 this.tracker_.add( 81 this.tracker_.add(
72 this.select_, 'change', this.onSelectChange_.bind(this)); 82 assert(this.select_), 'change', this.onSelectChange_.bind(this));
73 this.tracker_.add(this.text_, 'input', this.onTextInput_.bind(this)); 83 this.tracker_.add(
84 assert(this.text_), 'input', this.onTextInput_.bind(this));
74 85
75 this.initializeValue_(); 86 this.initializeValue_();
76 87
77 this.renderCapability_(); 88 this.renderCapability_();
78 }, 89 },
79 90
80 /** 91 /**
81 * ID of the corresponding vendor capability. 92 * ID of the corresponding vendor capability.
82 * @return {string} 93 * @return {string}
83 */ 94 */
(...skipping 25 matching lines...) Expand all
109 120
110 get searchBubbleShown() { 121 get searchBubbleShown() {
111 return getIsVisible(this.getElement()) && !!this.searchBubble_; 122 return getIsVisible(this.getElement()) && !!this.searchBubble_;
112 }, 123 },
113 124
114 /** 125 /**
115 * @return {HTMLSelectElement} Select element. 126 * @return {HTMLSelectElement} Select element.
116 * @private 127 * @private
117 */ 128 */
118 get select_() { 129 get select_() {
119 return this.getChildElement( 130 return /** @type {HTMLSelectElement} */(
120 '.advanced-settings-item-value-select-control'); 131 this.getChildElement('.advanced-settings-item-value-select-control'));
121 }, 132 },
122 133
123 /** 134 /**
124 * @return {HTMLSelectElement} Text element. 135 * @return {HTMLSelectElement} Text element.
125 * @private 136 * @private
126 */ 137 */
127 get text_() { 138 get text_() {
128 return this.getChildElement('.advanced-settings-item-value-text-control'); 139 return /** @type {HTMLSelectElement} */(
dpapad 2017/05/04 01:20:04 How about casting to !HTMLSelectElement here, and
rbpotter 2017/05/04 01:43:07 Done.
140 this.getChildElement('.advanced-settings-item-value-text-control'));
129 }, 141 },
130 142
131 /** 143 /**
132 * Called when the select element value is changed. 144 * Called when the select element value is changed.
133 * @private 145 * @private
134 */ 146 */
135 onSelectChange_: function() { 147 onSelectChange_: function() {
136 this.selectedValue_ = this.select_.value; 148 this.selectedValue_ = this.select_.value;
137 }, 149 },
138 150
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 this.initializeSelectValue_(); 261 this.initializeSelectValue_();
250 else 262 else
251 this.initializeTextValue_(); 263 this.initializeTextValue_();
252 }, 264 },
253 265
254 /** 266 /**
255 * Initializes the select element. 267 * Initializes the select element.
256 * @private 268 * @private
257 */ 269 */
258 initializeSelectValue_: function() { 270 initializeSelectValue_: function() {
259 setIsVisible( 271 setIsVisible(assert(this.getChildElement(
260 this.getChildElement('.advanced-settings-item-value-select'), true); 272 '.advanced-settings-item-value-select')), true);
261 var selectEl = this.select_; 273 var selectEl = this.select_;
262 var indexToSelect = 0; 274 var indexToSelect = 0;
263 this.capability_.select_cap.option.forEach(function(option, index) { 275 this.capability_.select_cap.option.forEach(function(option, index) {
264 var item = document.createElement('option'); 276 var item = document.createElement('option');
265 item.text = this.getEntityDisplayName_(option); 277 item.text = this.getEntityDisplayName_(option);
266 item.value = option.value; 278 item.value = option.value;
267 if (option.is_default) 279 if (option.is_default)
268 indexToSelect = index; 280 indexToSelect = index;
269 selectEl.appendChild(item); 281 selectEl.appendChild(item);
270 }, this); 282 }, this);
271 for (var i = 0, option; option = selectEl.options[i]; i++) { 283 for (var i = 0, option; option = selectEl.options[i]; i++) {
272 if (option.value == this.selectedValue_) { 284 if (option.value == this.selectedValue_) {
273 indexToSelect = i; 285 indexToSelect = i;
274 break; 286 break;
275 } 287 }
276 } 288 }
277 selectEl.selectedIndex = indexToSelect; 289 selectEl.selectedIndex = indexToSelect;
278 }, 290 },
279 291
280 /** 292 /**
281 * Initializes the text element. 293 * Initializes the text element.
282 * @private 294 * @private
283 */ 295 */
284 initializeTextValue_: function() { 296 initializeTextValue_: function() {
285 setIsVisible( 297 setIsVisible(assert(this.getChildElement(
286 this.getChildElement('.advanced-settings-item-value-text'), true); 298 '.advanced-settings-item-value-text')), true);
287 299
288 var defaultValue = null; 300 var defaultValue = null;
289 if (this.capability_.type == 'TYPED_VALUE' && 301 if (this.capability_.type == 'TYPED_VALUE' &&
290 this.capability_.typed_value_cap) { 302 this.capability_.typed_value_cap) {
291 defaultValue = this.capability_.typed_value_cap.default || null; 303 defaultValue = this.capability_.typed_value_cap.default || null;
292 } else if (this.capability_.type == 'RANGE' && 304 } else if (this.capability_.type == 'RANGE' &&
293 this.capability_.range_cap) { 305 this.capability_.range_cap) {
294 defaultValue = this.capability_.range_cap.default || null; 306 defaultValue = this.capability_.range_cap.default || null;
295 } 307 }
296 308
(...skipping 21 matching lines...) Expand all
318 } 330 }
319 }); 331 });
320 } 332 }
321 }; 333 };
322 334
323 // Export 335 // Export
324 return { 336 return {
325 AdvancedSettingsItem: AdvancedSettingsItem 337 AdvancedSettingsItem: AdvancedSettingsItem
326 }; 338 };
327 }); 339 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698