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: bower_components/core-meta/core-meta.html

Issue 786953007: npm_modules: Fork bower_components into Polymer 0.4.0 and 0.5.0 versions (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « bower_components/core-meta/bower.json ('k') | bower_components/core-meta/demo.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!--
2 Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
3 This code may only be used under the BSD style license found at http://polymer.g ithub.io/LICENSE.txt
4 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5 The complete set of contributors may be found at http://polymer.github.io/CONTRI BUTORS.txt
6 Code distributed by Google as part of the polymer project is also
7 subject to an additional IP rights grant found at http://polymer.github.io/PATEN TS.txt
8 -->
9
10 <!--
11 `core-meta` provides a method of constructing a self-organizing database.
12 It is useful to collate element meta-data for things like catalogs and for
13 designer.
14
15 Example, an element folder has a `metadata.html` file in it, that contains a
16 `core-meta`, something like this:
17
18 <core-meta id="my-element" label="My Element">
19 <property name="color" value="blue"></property>
20 </core-meta>
21
22 An application can import as many of these files as it wants, and then use
23 `core-meta` again to access the collected data.
24
25 <script>
26 var meta = document.createElement('core-meta');
27 console.log(meta.list); // dump a list of all meta-data elements that have been created
28 </script>
29
30 Use `byId(id)` to retrive a specific core-meta.
31
32 <script>
33 var meta = document.createElement('core-meta');
34 console.log(meta.byId('my-element'));
35 </script>
36
37 By default all meta-data are stored in a single databse. If your meta-data
38 have different types and want them to be stored separately, use `type` to
39 differentiate them.
40
41 Example:
42
43 <core-meta id="x-foo" type="xElt"></core-meta>
44 <core-meta id="x-bar" type="xElt"></core-meta>
45 <core-meta id="y-bar" type="yElt"></core-meta>
46
47 <script>
48 var meta = document.createElement('core-meta');
49 meta.type = 'xElt';
50 console.log(meta.list);
51 </script>
52
53 @group Polymer Core Elements
54 @element core-meta
55 @homepage github.io
56 -->
57
58 <link rel="import" href="../polymer/polymer.html">
59
60 <polymer-element name="core-meta" attributes="label type" hidden>
61 <script>
62
63 (function() {
64
65 var SKIP_ID = 'meta';
66 var metaData = {}, metaArray = {};
67
68 Polymer('core-meta', {
69
70 /**
71 * The type of meta-data. All meta-data with the same type with be
72 * stored together.
73 *
74 * @attribute type
75 * @type string
76 * @default 'default'
77 */
78 type: 'default',
79
80 alwaysPrepare: true,
81
82 ready: function() {
83 this.register(this.id);
84 },
85
86 get metaArray() {
87 var t = this.type;
88 if (!metaArray[t]) {
89 metaArray[t] = [];
90 }
91 return metaArray[t];
92 },
93
94 get metaData() {
95 var t = this.type;
96 if (!metaData[t]) {
97 metaData[t] = {};
98 }
99 return metaData[t];
100 },
101
102 register: function(id, old) {
103 if (id && id !== SKIP_ID) {
104 this.unregister(this, old);
105 this.metaData[id] = this;
106 this.metaArray.push(this);
107 }
108 },
109
110 unregister: function(meta, id) {
111 delete this.metaData[id || meta.id];
112 var i = this.metaArray.indexOf(meta);
113 if (i >= 0) {
114 this.metaArray.splice(i, 1);
115 }
116 },
117
118 /**
119 * Returns a list of all meta-data elements with the same type.
120 *
121 * @property list
122 * @type array
123 * @default []
124 */
125 get list() {
126 return this.metaArray;
127 },
128
129 /**
130 * Retrieves meta-data by ID.
131 *
132 * @method byId
133 * @param {String} id The ID of the meta-data to be returned.
134 * @returns Returns meta-data.
135 */
136 byId: function(id) {
137 return this.metaData[id];
138 }
139
140 });
141
142 })();
143
144 </script>
145 </polymer-element>
OLDNEW
« no previous file with comments | « bower_components/core-meta/bower.json ('k') | bower_components/core-meta/demo.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698