OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 | 4 |
5 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * 'cr-settings-drawer' holds the user card and navigation menu for settings | 7 * 'cr-settings-drawer' holds the user card and navigation menu for settings |
8 * pages. | 8 * pages. |
9 * | 9 * |
10 * Example: | 10 * Example: |
11 * | 11 * |
12 * <core-drawer-panel> | 12 * <paper-drawer-panel> |
13 * <cr-settings-drawer drawer selectedId="{{selectedId}}" | 13 * <cr-settings-drawer drawer selected-id="{{selectedId}}" |
14 * pages="{{pages}}"> | 14 * pages="[[pages]]"> |
15 * </cr-settings-drawer> | 15 * </cr-settings-drawer> |
16 * <cr-settings-main main selectedId="{{selectedId}}" pages="{{pages}}"> | 16 * <cr-settings-main main selected-id="{{selectedId}}" pages="[[pages]]"> |
17 * </cr-settings-main> | 17 * </cr-settings-main> |
18 * </core-drawer-panel> | 18 * </paper-drawer-panel> |
19 * | 19 * |
20 * @group Chrome Settings Elements | 20 * @group Chrome Settings Elements |
21 * @element cr-settings-drawer | 21 * @element cr-settings-drawer |
22 */ | 22 */ |
23 Polymer('cr-settings-drawer', { | 23 Polymer({ |
24 publish: { | 24 is: 'cr-settings-drawer', |
25 | |
26 properties: { | |
25 /** | 27 /** |
26 * Pages to include in the navigation. | 28 * Pages to include in the navigation. |
27 * | 29 * |
Kyle Horimoto
2015/05/12 18:14:55
nit/question: I've seen some files include a blank
michaelpg
2015/05/12 18:37:12
Good point. I generally don't include the blank li
| |
28 * @attribute pages | 30 * @type {Array<!Object>} |
Jeremy Klein
2015/05/12 18:06:41
nit: ?Array or initialize to [] and make non-null.
Kyle Horimoto
2015/05/12 18:14:55
IMO, let's always initialize to [] and make non-nu
michaelpg
2015/05/12 18:37:12
hmm, why bother? This element expects |pages| to b
Kyle Horimoto
2015/05/12 18:39:16
You're right - looks like this is a case where the
James Hawkins
2015/05/12 18:39:46
So you can make it non-null, which is safer than a
michaelpg
2015/05/12 19:37:52
Done.
| |
29 * @type Array<!Object> | |
30 * @default null | |
31 */ | 31 */ |
32 pages: null, | 32 pages: Array, |
33 | 33 |
34 /** | 34 /** |
35 * ID of the currently selected page. | 35 * ID of the currently selected page. |
36 * | 36 * |
37 * @attribute selectedId | 37 * @type {string} |
38 * @type string | |
39 * default '' | |
40 */ | 38 */ |
41 selectedId: '', | 39 selectedId: { |
40 type: String, | |
41 notify: true, | |
42 }, | |
42 }, | 43 }, |
43 | 44 |
44 /** @override */ | 45 ready: function() { |
45 created: function() { | 46 /** |
46 this.pages = []; | 47 * @type {Object} |
47 }, | 48 * TODO(michaelpg): Create custom element and data source for user card. |
48 | 49 */ |
49 /** | 50 this.user_ = { |
michaelpg
2015/05/12 15:05:17
How do I set user_ as a property on the object, wi
Jeremy Klein
2015/05/12 18:06:41
Advice from the Polymer team is just to put it in
michaelpg
2015/05/12 18:37:12
Done.
| |
50 * @type {Object} | 51 name: 'Chrome User', |
51 * TODO(michaelpg): Create custom element and data source for user card. | 52 email: 'user@example.com', |
52 */ | 53 iconUrl: 'chrome://theme/IDR_PROFILE_AVATAR_23@1x', |
53 user: { | 54 }; |
54 name: 'Chrome User', | |
55 email: 'user@example.com', | |
56 iconUrl: 'chrome://theme/IDR_PROFILE_AVATAR_23@1x', | |
57 }, | 55 }, |
58 }); | 56 }); |
OLD | NEW |