';
61 | $(sessionMenu).append(item);
62 | }
63 | }
64 |
65 | function loadDefaults() {
66 | defaultAccount = getUserObj(default_account_name);
67 | defaultSession = getSessionObj(default_session_name);
68 | if( defaultSession !== null && defaultAccount !== null ) {
69 | log("loaded default account: " + defaultAccount.name + " and default session: " + defaultSession.name);
70 | USE_DEFAULTS = true;
71 | }
72 | if (defaultSession == null) {
73 | log("default session is null!");
74 | }
75 | if(defaultAccount == null) {
76 | log("default account is null!");
77 | }
78 |
79 | }
80 |
81 | $(window).load(function() {
82 |
83 | /**
84 | * Loading UI informations
85 | */
86 |
87 | get_hostname();
88 |
89 | fetchUserList();
90 | fetchSessionList();
91 | loadDefaults();
92 | printDebugInfo();
93 |
94 | //if possible - start authentication with default session
95 | if(USE_DEFAULTS) {
96 | startDefaultAuthentication();
97 | }
98 |
99 | // submit the password when enter is pressed
100 | $(document).keydown(function (e) {
101 | checkKey(e);
102 | });
103 |
104 | $('#loading_button_area').hide();
105 | $('#wrongpass').hide();
106 | $('#pass').focus();
107 |
108 | });
109 |
110 | function get_hostname() {
111 | var hostname = lightdm.hostname;
112 | log("hostname: " + hostname);
113 | //in case the name should be visible
114 | //var hostname_span = document.getElementById('FIELD_ID');
115 | //$(hostname_span).append(hostname);
116 | }
117 |
118 | function checkKey(event) {
119 | var action;
120 | if(event.which == 13) {
121 | action = authPending ? submitPassword() : 0;
122 | log(action);
123 | }
124 | }
125 |
126 | window.handleAction = function (id) {
127 | log("handleAction(" + id + ")");
128 | eval("lightdm." + id + "()");
129 | };
130 |
131 | function getUserObj(username) {
132 | var user = null;
133 | for (var i = 0; i < lightdm.users.length; ++i) {
134 | if(lightdm.users[i].name == username) {
135 | user = lightdm.users[i];
136 | break;
137 | }
138 | }
139 | return user;
140 | }
141 |
142 | function getSessionObj(sessionname) {
143 | var session = null;
144 | for(var i = 0; i < lightdm.sessions.length; ++i) {
145 | if(lightdm.sessions[i].name == sessionname) {
146 | session = lightdm.sessions[i];
147 | break;
148 | }
149 | }
150 | return session;
151 | }
152 |
153 | function printDebugInfo() {
154 | log("-- debug info --");
155 | log("total users found: " + lightdm.users.length);
156 | log("total sessions found: " + lightdm.sessions.length);
157 | //print the user names
158 | for(var i = 0; i < lightdm.users.length; i++) {
159 | var usr = lightdm.users[i];
160 | log("username found: " + usr.name);
161 | }
162 | for(var y = 0; y < lightdm.sessions.length; y++) {
163 | var sn = lightdm.sessions[y];
164 | log("session found: " + sn.name);
165 | }
166 | log("-- end debug info --");
167 | }
168 |
169 | function startDefaultAuthentication() {
170 | log("start default authentication for: " + defaultAccount.name);
171 | var userNameLabel = document.getElementById("user_current");
172 | userNameLabel.innerHTML = defaultAccount.display_name;
173 | $('#session-area').hide();
174 | $('#switch_user').hide();
175 | authPending = true;
176 | lightdm.start_authentication(defaultAccount.name);
177 | }
178 |
179 | window.startAuthentication = function (userId) {
180 | log("startAuthentication(" + userId + ")");
181 |
182 | var sessionButton = $('#session-list-btn');
183 | var userLabel = $('#user-current');
184 |
185 | if(selectedUser !== null) {
186 | lightdm.cancel_authentication();
187 | localStorage.setItem('selUser', null);
188 | log("authentication cancelled for " + selectedUser);
189 | }
190 |
191 | localStorage.setItem('selUser', userId);
192 | log(userList);
193 | var usrSession = localStorage.getItem(userId);
194 | log("usrSession: " + usrSession);
195 | var usrSessionEl = "[data-session-id=" + usrSession + "]";
196 | var usrSessionName = $(usrSessionEl).html();
197 | $(userLabel).html(usrSessionName);
198 | $(sessionButton).attr('data-session-id', usrSession);
199 | authPending = true;
200 | lightdm.start_authentication(userId);
201 | };
202 |
203 | window.cancelAuthentication = function () {
204 | log("authentication cancelled for " + selectedUser);
205 | lightdm.cancel_authentication();
206 | selectedUser = null;
207 | authPending = false;
208 | return true;
209 | };
210 |
211 | window.submitPassword = function () {
212 | $('#login_button_area').hide();
213 | $('#loading_button_area').show();
214 | log("provide_secret -> called! value: " + $('#pass').val());
215 | if(USE_DEFAULTS) log("-> called for default authentication!");
216 | lightdm.provide_secret($('#pass').val());
217 | //todo: maybe hide password field and show progress circle
218 | log("provide_secret -> done!");
219 | };
220 |
221 | window.sessionToggle = function(el) {
222 | var selectedText = $(el).text();
223 | var selectedID = $(el).attr('data-session-id');
224 | var selUser = localStorage.getItem('selUser');
225 | $('#session-list-btn').attr('data-session-id', selectedID);
226 | $('#session-list-btn').html(selectedText);
227 | localStorage.setItem(selUser, selectedID);
228 | };
229 |
230 | });
231 |
232 | /**
233 | * Lightdm Callbacks
234 | */
235 | function show_prompt(text) {
236 | log("show_prompt(" + text + ")");
237 | $('#pass').val("");
238 | $('#pass').focus();
239 | }
240 |
241 | function authentication_complete() {
242 | log("authentication_complete()");
243 | $('#loading_button_area').hide();
244 | $('#login_button_area').show();
245 | authPending = false;
246 | if(USE_DEFAULTS) {
247 | if(lightdm.is_authenticated) {
248 | log("-> authenticated with defaults!");
249 | lightdm.login(lightdm.authentication_user, defaultSession.key);
250 | } else {
251 | log("-> unable to authenticate with defaults!");
252 | $('#wrongpass').show();
253 | }
254 | } else {
255 | var selSession = $('#session-list-btn').attr('data-session-id');
256 | if(lightdm.is_authenticated) {
257 | log("-> authenticated !");
258 | lightdm.login(lightdm.authentication_user, selSession);
259 | } else {
260 | //show error
261 | log("-> not authenticated !");
262 | $('#wrongpass').show();
263 | }
264 | }
265 | }
266 |
267 | function show_message(text) {
268 | log(text);
269 | }
270 |
271 | function show_error(text) {
272 | show_message(text);
273 | }
274 |
--------------------------------------------------------------------------------
/style.css:
--------------------------------------------------------------------------------
1 | @import url(http://fonts.googleapis.com/css?family=Roboto);
2 |
3 | html {
4 | height: 100%;
5 | }
6 | body {
7 | background: #bcdee7 url("./profile/profile_bg.jpg") no-repeat center center fixed;
8 | background-size: 120% auto;
9 | position: fixed;
10 | padding: 0px;
11 | margin: 0px;
12 | width: 100%;
13 | height: 100%;
14 | font: normal 14px/1.618em "Roboto", sans-serif;
15 | -webkit-font-smoothing: antialiased;
16 | }
17 | body:before {
18 | content: "";
19 | height: 0px;
20 | padding: 0px;
21 | border: 110em solid #607D8B;
22 | position: absolute;
23 | left: 50%;
24 | top: 100%;
25 | z-index: 2;
26 | display: block;
27 | -webkit-border-radius: 50%;
28 | border-radius: 50%;
29 | -webkit-transform: translate(-50%, -50%);
30 | transform: translate(-50%, -50%);
31 | -webkit-animation: puff 0.5s 1.8s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, borderRadius 0.2s 2.3s linear forwards;
32 | animation: puff 0.5s 1.8s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, borderRadius 0.2s 2.3s linear forwards;
33 | }
34 | h1, h2 {
35 | font-weight: 500;
36 | margin: 0px 0px 5px 0px;
37 | }
38 | h1 {
39 | font-size: 24px;
40 | }
41 | h2 {
42 | font-size: 16px;
43 | }
44 | p {
45 | margin: 0px;
46 | }
47 | .profile-card {
48 | background: #82B1FF;
49 | width: 56px;
50 | height: 56px;
51 | position: absolute;
52 | left: 50%;
53 | top: 50%;
54 | z-index: 2;
55 | overflow: hidden;
56 | opacity: 0;
57 | margin-top: 70px;
58 | -webkit-transform: translate(-50%, -50%);
59 | transform: translate(-50%, -50%);
60 | -webkit-border-radius: 50%;
61 | border-radius: 50%;
62 | -webkit-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16), 0px 3px 6px rgba(0, 0, 0, 0.23);
63 | box-shadow: 0px 3px 6px rgba(0 ,0, 0, 0.16), 0px 3px 6px rgba(0, 0, 0, 0.23);
64 | -webkit-animation: init 0.5s 0.2s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, moveDown 1s 0.8s cubic-bezier(0.6, -0.28, 0.735, 0.045) forwards, moveUp 1s 1.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards, materia 0.5s 2.7s cubic-bezier(0.86, 0, 0.07, 1) forwards;
65 | animation: init 0.5s 0.2s cubic-bezier(0.55, 0.055, 0.675, 0.19) forwards, moveDown 1s 0.8s cubic-bezier(0.6, -0.28, 0.735, 0.045) forwards, moveUp 1s 1.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards, materia 0.5s 2.7s cubic-bezier(0.86, 0, 0.07, 1) forwards;
66 | }
67 | .profile-card header {
68 | width: 179px;
69 | height: 280px;
70 | padding: 40px 20px 30px 20px;
71 | display: inline-block;
72 | float: left;
73 | border-right: 2px dashed #EEEEEE;
74 | background: #FFFFFF;
75 | color: #000000;
76 | margin-top: 50px;
77 | opacity: 0;
78 | text-align: center;
79 | -webkit-animation: moveIn 1s 3.1s ease forwards;
80 | animation: moveIn 1s 3.1s ease forwards;
81 | }
82 | .profile-card header h1 {
83 | color: #FF5722;
84 | }
85 | .profile-card header a {
86 | display: inline-block;
87 | text-align: center;
88 | position: relative;
89 | margin: 25px 30px;
90 | }
91 | .profile-card header a > img {
92 | width: 120px;
93 | max-width: 100%;
94 | -webkit-border-radius: 50%;
95 | border-radius: 50%;
96 | -webkit-transition: -webkit-box-shadow 0.3s ease;
97 | transition: box-shadow 0.3s ease;
98 | -webkit-box-shadow: 0px 0px 0px 8px rgba(0, 0, 0, 0.06);
99 | box-shadow: 0px 0px 0px 8px rgba(0, 0, 0, 0.06);
100 | }
101 | .profile-card header a:hover > img {
102 | -webkit-box-shadow: 0px 0px 0px 12px rgba(0, 0, 0, 0.1);
103 | box-shadow: 0px 0px 0px 12px rgba(0, 0, 0, 0.1);
104 | }
105 | .profile-card .profile-bio {
106 | width: 175px;
107 | height: 180px;
108 | display: inline-block;
109 | float: right;
110 | padding: 50px 20px 30px 20px;
111 | background: #FFFFFF;
112 | color: #333333;
113 | margin-top: 50px;
114 | text-align: center;
115 | opacity: 0;
116 | -webkit-animation: moveIn 1s 3.1s ease forwards;
117 | animation: moveIn 1s 3.1s ease forwards;
118 | }
119 | .profile-social-links {
120 | width: 218px;
121 | display: inline-block;
122 | float: right;
123 | margin: 0px;
124 | padding: 15px 20px;
125 | background: #FFFFFF;
126 | margin-top: 50px;
127 | text-align: center;
128 | opacity: 0;
129 | -webkit-box-sizing: border-box;
130 | box-sizing: border-box;
131 | -webkit-animation: moveIn 1s 3.1s ease forwards;
132 | animation: moveIn 1s 3.1s ease forwards;
133 | }
134 | .profile-social-links li {
135 | list-style: none;
136 | margin: -5px 0px 0px 0px;
137 | padding: 0px;
138 | float: left;
139 | width: 33.3%;
140 | text-align: center;
141 | }
142 | .profile-social-links li a {
143 | display: inline-block;
144 | width: 24px;
145 | height: 24px;
146 | padding: 6px;
147 | position: relative;
148 | overflow: hidden!important;
149 | -webkit-border-radius: 50%;
150 | border-radius: 50%;
151 | }
152 | .profile-social-links li a img {
153 | position: relative;
154 | z-index: 1;
155 | }
156 | .profile-social-links li a:before {
157 | display: block;
158 | content: "";
159 | background: rgba(0, 0, 0, 0.3);
160 | position: absolute;
161 | left: 0px;
162 | top: 0px;
163 | width: 36px;
164 | height: 36px;
165 | opacity: 1;
166 | -webkit-transition: transform 0.4s ease, opacity 1s ease-out;
167 | transition: transform 0.4s ease, opacity 1s ease-out;
168 | -webkit-transform: scale3d(0, 0, 1);
169 | transform: scale3d(0, 0, 1);
170 | -webkit-border-radius: 50%;
171 | border-radius: 50%;
172 | }
173 | .profile-social-links li a:hover:before {
174 | -webkit-animation: ripple 1s ease forwards;
175 | animation: ripple 1s ease forwards;
176 | }
177 | .profile-social-links li a img,
178 | .profile-social-links li a svg {
179 | width: 24px;
180 | }
181 |
182 | @-webkit-keyframes init {
183 | 0% {
184 | width: 0px;
185 | height: 0px;
186 | }
187 | 100% {
188 | width: 56px;
189 | height: 56px;
190 | margin-top: 0px;
191 | opacity: 1;
192 | }
193 | }
194 | @keyframes init {
195 | 0% {
196 | width: 0px;
197 | height: 0px;
198 | }
199 | 100% {
200 | width: 56px;
201 | height: 56px;
202 | margin-top: 0px;
203 | opacity: 1;
204 | }
205 | }
206 | @-webkit-keyframes puff {
207 | 0% {
208 | top: 100%;
209 | height: 0px;
210 | padding: 0px;
211 | }
212 | 100% {
213 | top: 50%;
214 | height: 100%;
215 | padding: 0px 100%;
216 | }
217 | }
218 | @keyframes puff {
219 | 0% {
220 | top: 100%;
221 | height: 0px;
222 | padding: 0px;
223 | }
224 | 100% {
225 | top: 50%;
226 | height: 100%;
227 | padding: 0px 100%;
228 | }
229 | }
230 | @-webkit-keyframes borderRadius {
231 | 0% {
232 | -webkit-border-radius: 50%;
233 | }
234 | 100% {
235 | -webkit-border-radius: 0px;
236 | }
237 | }
238 | @keyframes borderRadius {
239 | 0% {
240 | -webkit-border-radius: 50%;
241 | }
242 | 100% {
243 | border-radius: 0px;
244 | }
245 | }
246 | @-webkit-keyframes moveDown {
247 | 0% {
248 | top: 50%;
249 | }
250 | 50% {
251 | top: 40%;
252 | }
253 | 100% {
254 | top: 100%;
255 | }
256 | }
257 | @keyframes moveDown {
258 | 0% {
259 | top: 50%;
260 | }
261 | 50% {
262 | top: 40%;
263 | }
264 | 100% {
265 | top: 100%;
266 | }
267 | }
268 | @-webkit-keyframes moveUp {
269 | 0% {
270 | background: #82B1FF;
271 | top: 100%;
272 | }
273 | 50% {
274 | top: 40%;
275 | }
276 | 100% {
277 | top: 50%;
278 | background: #E0E0E0;
279 | }
280 | }
281 | @keyframes moveUp {
282 | 0% {
283 | background: #82B1FF;
284 | top: 100%;
285 | }
286 | 50% {
287 | top: 40%;
288 | }
289 | 100% {
290 | top: 50%;
291 | background: #E0E0E0;
292 | }
293 | }
294 | @-webkit-keyframes materia {
295 | 0% {
296 | background: #E0E0E0;
297 | }
298 | 50% {
299 | -webkit-border-radius: 4px;
300 | }
301 | 100% {
302 | width: 440px;
303 | height: 280px;
304 | background: #FFFFFF;
305 | -webkit-border-radius: 4px;
306 | }
307 | }
308 | @keyframes materia {
309 | 0% {
310 | background: #E0E0E0;
311 | }
312 | 50% {
313 | border-radius: 4px;
314 | }
315 | 100% {
316 | width: 440px;
317 | height: 280px;
318 | background: #FFFFFF;
319 | border-radius: 4px;
320 | }
321 | }
322 | @-webkit-keyframes moveIn {
323 | 0% {
324 | margin-top: 50px;
325 | opacity: 0;
326 | }
327 | 100% {
328 | opacity: 1;
329 | margin-top: -20px;
330 | }
331 | }
332 | @keyframes moveIn {
333 | 0% {
334 | margin-top: 50px;
335 | opacity: 0;
336 | }
337 | 100% {
338 | opacity: 1;
339 | margin-top: -20px;
340 | }
341 | }
342 | @-webkit-keyframes scaleIn {
343 | 0% {
344 | -webkit-transform: scale(0);
345 | }
346 | 100% {
347 | -webkit-transform: scale(1);
348 | }
349 | }
350 | @keyframes scaleIn {
351 | 0% {
352 | transform: scale(0);
353 | }
354 | 100% {
355 | transform: scale(1);
356 | }
357 | }
358 | @-webkit-keyframes ripple {
359 | 0% {
360 | transform: scale3d(0, 0, 0);
361 | }
362 | 50%, 100% {
363 | -webkit-transform: scale3d(1, 1, 1);
364 | }
365 | 100% {
366 | opacity: 0;
367 | }
368 | }
369 | @keyframes ripple {
370 | 0% {
371 | transform: scale3d(0, 0, 0);
372 | }
373 | 50%, 100% {
374 | transform: scale3d(1, 1, 1);
375 | }
376 | 100% {
377 | opacity: 0;
378 | }
379 | }
380 | @media screen and (min-aspect-ratio: 4/3) {
381 | body {
382 | background-size: 100% auto;
383 | }
384 | body:before {
385 | width: 0px;
386 | }
387 | @-webkit-keyframes puff {
388 | 0% {
389 | top: 100%;
390 | width: 0px;
391 | padding-bottom: 0px;
392 | }
393 | 100% {
394 | top: 50%;
395 | width: 100%;
396 | padding-bottom: 100%;
397 | }
398 | }
399 | @keyframes puff {
400 | 0% {
401 | top: 100%;
402 | width: 0px;
403 | padding-bottom: 0px;
404 | }
405 | 100% {
406 | top: 50%;
407 | width: 100%;
408 | padding-bottom: 100%;
409 | }
410 | }
411 | }
412 | @media screen and (min-height: 480px) {
413 | .profile-card header {
414 | width: auto;
415 | height: auto;
416 | padding: 30px 20px;
417 | display: block;
418 | float: none;
419 | border-right: none;
420 | }
421 | .profile-card .profile-bio {
422 | width: auto;
423 | height: auto;
424 | padding: 15px 20px 30px 20px;
425 | display: block;
426 | float: none;
427 | }
428 | .profile-social-links {
429 | width: 100%;
430 | display: block;
431 | float: none;
432 | }
433 | @-webkit-keyframes materia {
434 | 0% {
435 | background: #E0E0E0;
436 | }
437 | 50% {
438 | -webkit-border-radius: 4px;
439 | }
440 | 100% {
441 | width: 280px;
442 | height: 440px;
443 | background: #FFFFFF;
444 | -webkit-border-radius: 4px;
445 | }
446 | }
447 | @keyframes materia {
448 | 0% {
449 | background: #E0E0E0;
450 | }
451 | 50% {
452 | border-radius: 4px;
453 | }
454 | 100% {
455 | width: 280px;
456 | height: 440px;
457 | background: #FFFFFF;
458 | border-radius: 4px;
459 | }
460 | }
461 | }
462 |
--------------------------------------------------------------------------------
/mdl/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | Apache License
3 | Version 2.0, January 2004
4 | http://www.apache.org/licenses/
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | 2. Grant of Copyright License. Subject to the terms and conditions of
68 | this License, each Contributor hereby grants to You a perpetual,
69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 | copyright license to reproduce, prepare Derivative Works of,
71 | publicly display, publicly perform, sublicense, and distribute the
72 | Work and such Derivative Works in Source or Object form.
73 |
74 | 3. Grant of Patent License. Subject to the terms and conditions of
75 | this License, each Contributor hereby grants to You a perpetual,
76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 | (except as stated in this section) patent license to make, have made,
78 | use, offer to sell, sell, import, and otherwise transfer the Work,
79 | where such license applies only to those patent claims licensable
80 | by such Contributor that are necessarily infringed by their
81 | Contribution(s) alone or by combination of their Contribution(s)
82 | with the Work to which such Contribution(s) was submitted. If You
83 | institute patent litigation against any entity (including a
84 | cross-claim or counterclaim in a lawsuit) alleging that the Work
85 | or a Contribution incorporated within the Work constitutes direct
86 | or contributory patent infringement, then any patent licenses
87 | granted to You under this License for that Work shall terminate
88 | as of the date such litigation is filed.
89 |
90 | 4. Redistribution. You may reproduce and distribute copies of the
91 | Work or Derivative Works thereof in any medium, with or without
92 | modifications, and in Source or Object form, provided that You
93 | meet the following conditions:
94 |
95 | (a) You must give any other recipients of the Work or
96 | Derivative Works a copy of this License; and
97 |
98 | (b) You must cause any modified files to carry prominent notices
99 | stating that You changed the files; and
100 |
101 | (c) You must retain, in the Source form of any Derivative Works
102 | that You distribute, all copyright, patent, trademark, and
103 | attribution notices from the Source form of the Work,
104 | excluding those notices that do not pertain to any part of
105 | the Derivative Works; and
106 |
107 | (d) If the Work includes a "NOTICE" text file as part of its
108 | distribution, then any Derivative Works that You distribute must
109 | include a readable copy of the attribution notices contained
110 | within such NOTICE file, excluding those notices that do not
111 | pertain to any part of the Derivative Works, in at least one
112 | of the following places: within a NOTICE text file distributed
113 | as part of the Derivative Works; within the Source form or
114 | documentation, if provided along with the Derivative Works; or,
115 | within a display generated by the Derivative Works, if and
116 | wherever such third-party notices normally appear. The contents
117 | of the NOTICE file are for informational purposes only and
118 | do not modify the License. You may add Your own attribution
119 | notices within Derivative Works that You distribute, alongside
120 | or as an addendum to the NOTICE text from the Work, provided
121 | that such additional attribution notices cannot be construed
122 | as modifying the License.
123 |
124 | You may add Your own copyright statement to Your modifications and
125 | may provide additional or different license terms and conditions
126 | for use, reproduction, or distribution of Your modifications, or
127 | for any such Derivative Works as a whole, provided Your use,
128 | reproduction, and distribution of the Work otherwise complies with
129 | the conditions stated in this License.
130 |
131 | 5. Submission of Contributions. Unless You explicitly state otherwise,
132 | any Contribution intentionally submitted for inclusion in the Work
133 | by You to the Licensor shall be under the terms and conditions of
134 | this License, without any additional terms or conditions.
135 | Notwithstanding the above, nothing herein shall supersede or modify
136 | the terms of any separate license agreement you may have executed
137 | with Licensor regarding such Contributions.
138 |
139 | 6. Trademarks. This License does not grant permission to use the trade
140 | names, trademarks, service marks, or product names of the Licensor,
141 | except as required for reasonable and customary use in describing the
142 | origin of the Work and reproducing the content of the NOTICE file.
143 |
144 | 7. Disclaimer of Warranty. Unless required by applicable law or
145 | agreed to in writing, Licensor provides the Work (and each
146 | Contributor provides its Contributions) on an "AS IS" BASIS,
147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 | implied, including, without limitation, any warranties or conditions
149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 | PARTICULAR PURPOSE. You are solely responsible for determining the
151 | appropriateness of using or redistributing the Work and assume any
152 | risks associated with Your exercise of permissions under this License.
153 |
154 | 8. Limitation of Liability. In no event and under no legal theory,
155 | whether in tort (including negligence), contract, or otherwise,
156 | unless required by applicable law (such as deliberate and grossly
157 | negligent acts) or agreed to in writing, shall any Contributor be
158 | liable to You for damages, including any direct, indirect, special,
159 | incidental, or consequential damages of any character arising as a
160 | result of this License or out of the use or inability to use the
161 | Work (including but not limited to damages for loss of goodwill,
162 | work stoppage, computer failure or malfunction, or any and all
163 | other commercial damages or losses), even if such Contributor
164 | has been advised of the possibility of such damages.
165 |
166 | 9. Accepting Warranty or Additional Liability. While redistributing
167 | the Work or Derivative Works thereof, You may choose to offer,
168 | and charge a fee for, acceptance of support, warranty, indemnity,
169 | or other liability obligations and/or rights consistent with this
170 | License. However, in accepting such obligations, You may act only
171 | on Your own behalf and on Your sole responsibility, not on behalf
172 | of any other Contributor, and only if You agree to indemnify,
173 | defend, and hold each Contributor harmless for any liability
174 | incurred by, or claims asserted against, such Contributor by reason
175 | of your accepting any such warranty or additional liability.
176 |
177 | END OF TERMS AND CONDITIONS
178 |
179 | APPENDIX: How to apply the Apache License to your work.
180 |
181 | To apply the Apache License to your work, attach the following
182 | boilerplate notice, with the fields enclosed by brackets "[]"
183 | replaced with your own identifying information. (Don't include
184 | the brackets!) The text should be enclosed in the appropriate
185 | comment syntax for the file format. We also recommend that a
186 | file or class name and description of purpose be included on the
187 | same "printed page" as the copyright notice for easier
188 | identification within third-party archives.
189 |
190 | Copyright 2015 Google Inc
191 |
192 | Licensed under the Apache License, Version 2.0 (the "License");
193 | you may not use this file except in compliance with the License.
194 | You may obtain a copy of the License at
195 |
196 | http://www.apache.org/licenses/LICENSE-2.0
197 |
198 | Unless required by applicable law or agreed to in writing, software
199 | distributed under the License is distributed on an "AS IS" BASIS,
200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 | See the License for the specific language governing permissions and
202 | limitations under the License.
203 |
204 | All code in any directories or sub-directories that end with *.html or
205 | *.css is licensed under the Creative Commons Attribution International
206 | 4.0 License, which full text can be found here:
207 | https://creativecommons.org/licenses/by/4.0/legalcode.
208 |
209 | As an exception to this license, all html or css that is generated by
210 | the software at the direction of the user is copyright the user. The
211 | user has full ownership and control over such content, including
212 | whether and how they wish to license it.
213 |
--------------------------------------------------------------------------------
/font/mdl-icons/codepoints:
--------------------------------------------------------------------------------
1 | 3d_rotation e84d
2 | access_alarm e190
3 | access_alarms e191
4 | access_time e192
5 | accessibility e84e
6 | account_balance e84f
7 | account_balance_wallet e850
8 | account_box e851
9 | account_circle e853
10 | adb e60e
11 | add e145
12 | add_alarm e193
13 | add_alert e003
14 | add_box e146
15 | add_circle e147
16 | add_circle_outline e148
17 | add_shopping_cart e854
18 | add_to_photos e39d
19 | adjust e39e
20 | airline_seat_flat e630
21 | airline_seat_flat_angled e631
22 | airline_seat_individual_suite e632
23 | airline_seat_legroom_extra e633
24 | airline_seat_legroom_normal e634
25 | airline_seat_legroom_reduced e635
26 | airline_seat_recline_extra e636
27 | airline_seat_recline_normal e637
28 | airplanemode_active e195
29 | airplanemode_inactive e194
30 | airplay e055
31 | alarm e855
32 | alarm_add e856
33 | alarm_off e857
34 | alarm_on e858
35 | album e019
36 | android e859
37 | announcement e85a
38 | apps e5c3
39 | archive e149
40 | arrow_back e5c4
41 | arrow_drop_down e5c5
42 | arrow_drop_down_circle e5c6
43 | arrow_drop_up e5c7
44 | arrow_forward e5c8
45 | aspect_ratio e85b
46 | assessment e85c
47 | assignment e85d
48 | assignment_ind e85e
49 | assignment_late e85f
50 | assignment_return e860
51 | assignment_returned e861
52 | assignment_turned_in e862
53 | assistant e39f
54 | assistant_photo e3a0
55 | attach_file e226
56 | attach_money e227
57 | attachment e2bc
58 | audiotrack e3a1
59 | autorenew e863
60 | av_timer e01b
61 | backspace e14a
62 | backup e864
63 | battery_alert e19c
64 | battery_charging_full e1a3
65 | battery_full e1a4
66 | battery_std e1a5
67 | battery_unknown e1a6
68 | beenhere e52d
69 | block e14b
70 | bluetooth e1a7
71 | bluetooth_audio e60f
72 | bluetooth_connected e1a8
73 | bluetooth_disabled e1a9
74 | bluetooth_searching e1aa
75 | blur_circular e3a2
76 | blur_linear e3a3
77 | blur_off e3a4
78 | blur_on e3a5
79 | book e865
80 | bookmark e866
81 | bookmark_border e867
82 | border_all e228
83 | border_bottom e229
84 | border_clear e22a
85 | border_color e22b
86 | border_horizontal e22c
87 | border_inner e22d
88 | border_left e22e
89 | border_outer e22f
90 | border_right e230
91 | border_style e231
92 | border_top e232
93 | border_vertical e233
94 | brightness_1 e3a6
95 | brightness_2 e3a7
96 | brightness_3 e3a8
97 | brightness_4 e3a9
98 | brightness_5 e3aa
99 | brightness_6 e3ab
100 | brightness_7 e3ac
101 | brightness_auto e1ab
102 | brightness_high e1ac
103 | brightness_low e1ad
104 | brightness_medium e1ae
105 | broken_image e3ad
106 | brush e3ae
107 | bug_report e868
108 | build e869
109 | business e0af
110 | cached e86a
111 | cake e7e9
112 | call e0b0
113 | call_end e0b1
114 | call_made e0b2
115 | call_merge e0b3
116 | call_missed e0b4
117 | call_received e0b5
118 | call_split e0b6
119 | camera e3af
120 | camera_alt e3b0
121 | camera_enhance e8fc
122 | camera_front e3b1
123 | camera_rear e3b2
124 | camera_roll e3b3
125 | cancel e5c9
126 | card_giftcard e8f6
127 | card_membership e8f7
128 | card_travel e8f8
129 | cast e307
130 | cast_connected e308
131 | center_focus_strong e3b4
132 | center_focus_weak e3b5
133 | change_history e86b
134 | chat e0b7
135 | chat_bubble e0ca
136 | chat_bubble_outline e0cb
137 | check e5ca
138 | check_box e834
139 | check_box_outline_blank e835
140 | check_circle e86c
141 | chevron_left e5cb
142 | chevron_right e5cc
143 | chrome_reader_mode e86d
144 | class e86e
145 | clear e14c
146 | clear_all e0b8
147 | close e5cd
148 | closed_caption e01c
149 | cloud e2bd
150 | cloud_circle e2be
151 | cloud_done e2bf
152 | cloud_download e2c0
153 | cloud_off e2c1
154 | cloud_queue e2c2
155 | cloud_upload e2c3
156 | code e86f
157 | collections e3b6
158 | collections_bookmark e431
159 | color_lens e3b7
160 | colorize e3b8
161 | comment e0b9
162 | compare e3b9
163 | computer e30a
164 | confirmation_number e638
165 | contact_phone e0cf
166 | contacts e0ba
167 | content_copy e14d
168 | content_cut e14e
169 | content_paste e14f
170 | control_point e3ba
171 | control_point_duplicate e3bb
172 | create e150
173 | credit_card e870
174 | crop e3be
175 | crop_16_9 e3bc
176 | crop_3_2 e3bd
177 | crop_5_4 e3bf
178 | crop_7_5 e3c0
179 | crop_din e3c1
180 | crop_free e3c2
181 | crop_landscape e3c3
182 | crop_original e3c4
183 | crop_portrait e3c5
184 | crop_square e3c6
185 | dashboard e871
186 | data_usage e1af
187 | dehaze e3c7
188 | delete e872
189 | description e873
190 | desktop_mac e30b
191 | desktop_windows e30c
192 | details e3c8
193 | developer_board e30d
194 | developer_mode e1b0
195 | device_hub e335
196 | devices e1b1
197 | dialer_sip e0bb
198 | dialpad e0bc
199 | directions e52e
200 | directions_bike e52f
201 | directions_boat e532
202 | directions_bus e530
203 | directions_car e531
204 | directions_railway e534
205 | directions_run e566
206 | directions_subway e533
207 | directions_transit e535
208 | directions_walk e536
209 | disc_full e610
210 | dns e875
211 | do_not_disturb e612
212 | do_not_disturb_alt e611
213 | dock e30e
214 | domain e7ee
215 | done e876
216 | done_all e877
217 | drafts e151
218 | drive_eta e613
219 | dvr e1b2
220 | edit e3c9
221 | eject e8fb
222 | email e0be
223 | equalizer e01d
224 | error e000
225 | error_outline e001
226 | event e878
227 | event_available e614
228 | event_busy e615
229 | event_note e616
230 | event_seat e903
231 | exit_to_app e879
232 | expand_less e5ce
233 | expand_more e5cf
234 | explicit e01e
235 | explore e87a
236 | exposure e3ca
237 | exposure_neg_1 e3cb
238 | exposure_neg_2 e3cc
239 | exposure_plus_1 e3cd
240 | exposure_plus_2 e3ce
241 | exposure_zero e3cf
242 | extension e87b
243 | face e87c
244 | fast_forward e01f
245 | fast_rewind e020
246 | favorite e87d
247 | favorite_border e87e
248 | feedback e87f
249 | file_download e2c4
250 | file_upload e2c6
251 | filter e3d3
252 | filter_1 e3d0
253 | filter_2 e3d1
254 | filter_3 e3d2
255 | filter_4 e3d4
256 | filter_5 e3d5
257 | filter_6 e3d6
258 | filter_7 e3d7
259 | filter_8 e3d8
260 | filter_9 e3d9
261 | filter_9_plus e3da
262 | filter_b_and_w e3db
263 | filter_center_focus e3dc
264 | filter_drama e3dd
265 | filter_frames e3de
266 | filter_hdr e3df
267 | filter_list e152
268 | filter_none e3e0
269 | filter_tilt_shift e3e2
270 | filter_vintage e3e3
271 | find_in_page e880
272 | find_replace e881
273 | flag e153
274 | flare e3e4
275 | flash_auto e3e5
276 | flash_off e3e6
277 | flash_on e3e7
278 | flight e539
279 | flight_land e904
280 | flight_takeoff e905
281 | flip e3e8
282 | flip_to_back e882
283 | flip_to_front e883
284 | folder e2c7
285 | folder_open e2c8
286 | folder_shared e2c9
287 | folder_special e617
288 | font_download e167
289 | format_align_center e234
290 | format_align_justify e235
291 | format_align_left e236
292 | format_align_right e237
293 | format_bold e238
294 | format_clear e239
295 | format_color_fill e23a
296 | format_color_reset e23b
297 | format_color_text e23c
298 | format_indent_decrease e23d
299 | format_indent_increase e23e
300 | format_italic e23f
301 | format_line_spacing e240
302 | format_list_bulleted e241
303 | format_list_numbered e242
304 | format_paint e243
305 | format_quote e244
306 | format_size e245
307 | format_strikethrough e246
308 | format_textdirection_l_to_r e247
309 | format_textdirection_r_to_l e248
310 | format_underlined e249
311 | forum e0bf
312 | forward e154
313 | forward_10 e056
314 | forward_30 e057
315 | forward_5 e058
316 | fullscreen e5d0
317 | fullscreen_exit e5d1
318 | functions e24a
319 | gamepad e30f
320 | games e021
321 | gesture e155
322 | get_app e884
323 | gif e908
324 | gps_fixed e1b3
325 | gps_not_fixed e1b4
326 | gps_off e1b5
327 | grade e885
328 | gradient e3e9
329 | grain e3ea
330 | graphic_eq e1b8
331 | grid_off e3eb
332 | grid_on e3ec
333 | group e7ef
334 | group_add e7f0
335 | group_work e886
336 | hd e052
337 | hdr_off e3ed
338 | hdr_on e3ee
339 | hdr_strong e3f1
340 | hdr_weak e3f2
341 | headset e310
342 | headset_mic e311
343 | healing e3f3
344 | hearing e023
345 | help e887
346 | help_outline e8fd
347 | high_quality e024
348 | highlight_off e888
349 | history e889
350 | home e88a
351 | hotel e53a
352 | hourglass_empty e88b
353 | hourglass_full e88c
354 | http e902
355 | https e88d
356 | image e3f4
357 | image_aspect_ratio e3f5
358 | import_export e0c3
359 | inbox e156
360 | indeterminate_check_box e909
361 | info e88e
362 | info_outline e88f
363 | input e890
364 | insert_chart e24b
365 | insert_comment e24c
366 | insert_drive_file e24d
367 | insert_emoticon e24e
368 | insert_invitation e24f
369 | insert_link e250
370 | insert_photo e251
371 | invert_colors e891
372 | invert_colors_off e0c4
373 | iso e3f6
374 | keyboard e312
375 | keyboard_arrow_down e313
376 | keyboard_arrow_left e314
377 | keyboard_arrow_right e315
378 | keyboard_arrow_up e316
379 | keyboard_backspace e317
380 | keyboard_capslock e318
381 | keyboard_hide e31a
382 | keyboard_return e31b
383 | keyboard_tab e31c
384 | keyboard_voice e31d
385 | label e892
386 | label_outline e893
387 | landscape e3f7
388 | language e894
389 | laptop e31e
390 | laptop_chromebook e31f
391 | laptop_mac e320
392 | laptop_windows e321
393 | launch e895
394 | layers e53b
395 | layers_clear e53c
396 | leak_add e3f8
397 | leak_remove e3f9
398 | lens e3fa
399 | library_add e02e
400 | library_books e02f
401 | library_music e030
402 | link e157
403 | list e896
404 | live_help e0c6
405 | live_tv e639
406 | local_activity e53f
407 | local_airport e53d
408 | local_atm e53e
409 | local_bar e540
410 | local_cafe e541
411 | local_car_wash e542
412 | local_convenience_store e543
413 | local_dining e556
414 | local_drink e544
415 | local_florist e545
416 | local_gas_station e546
417 | local_grocery_store e547
418 | local_hospital e548
419 | local_hotel e549
420 | local_laundry_service e54a
421 | local_library e54b
422 | local_mall e54c
423 | local_movies e54d
424 | local_offer e54e
425 | local_parking e54f
426 | local_pharmacy e550
427 | local_phone e551
428 | local_pizza e552
429 | local_play e553
430 | local_post_office e554
431 | local_printshop e555
432 | local_see e557
433 | local_shipping e558
434 | local_taxi e559
435 | location_city e7f1
436 | location_disabled e1b6
437 | location_off e0c7
438 | location_on e0c8
439 | location_searching e1b7
440 | lock e897
441 | lock_open e898
442 | lock_outline e899
443 | looks e3fc
444 | looks_3 e3fb
445 | looks_4 e3fd
446 | looks_5 e3fe
447 | looks_6 e3ff
448 | looks_one e400
449 | looks_two e401
450 | loop e028
451 | loupe e402
452 | loyalty e89a
453 | mail e158
454 | map e55b
455 | markunread e159
456 | markunread_mailbox e89b
457 | memory e322
458 | menu e5d2
459 | merge_type e252
460 | message e0c9
461 | mic e029
462 | mic_none e02a
463 | mic_off e02b
464 | mms e618
465 | mode_comment e253
466 | mode_edit e254
467 | money_off e25c
468 | monochrome_photos e403
469 | mood e7f2
470 | mood_bad e7f3
471 | more e619
472 | more_horiz e5d3
473 | more_vert e5d4
474 | mouse e323
475 | movie e02c
476 | movie_creation e404
477 | music_note e405
478 | my_location e55c
479 | nature e406
480 | nature_people e407
481 | navigate_before e408
482 | navigate_next e409
483 | navigation e55d
484 | network_cell e1b9
485 | network_locked e61a
486 | network_wifi e1ba
487 | new_releases e031
488 | nfc e1bb
489 | no_sim e0cc
490 | not_interested e033
491 | note_add e89c
492 | notifications e7f4
493 | notifications_active e7f7
494 | notifications_none e7f5
495 | notifications_off e7f6
496 | notifications_paused e7f8
497 | offline_pin e90a
498 | ondemand_video e63a
499 | open_in_browser e89d
500 | open_in_new e89e
501 | open_with e89f
502 | pages e7f9
503 | pageview e8a0
504 | palette e40a
505 | panorama e40b
506 | panorama_fish_eye e40c
507 | panorama_horizontal e40d
508 | panorama_vertical e40e
509 | panorama_wide_angle e40f
510 | party_mode e7fa
511 | pause e034
512 | pause_circle_filled e035
513 | pause_circle_outline e036
514 | payment e8a1
515 | people e7fb
516 | people_outline e7fc
517 | perm_camera_mic e8a2
518 | perm_contact_calendar e8a3
519 | perm_data_setting e8a4
520 | perm_device_information e8a5
521 | perm_identity e8a6
522 | perm_media e8a7
523 | perm_phone_msg e8a8
524 | perm_scan_wifi e8a9
525 | person e7fd
526 | person_add e7fe
527 | person_outline e7ff
528 | person_pin e55a
529 | personal_video e63b
530 | phone e0cd
531 | phone_android e324
532 | phone_bluetooth_speaker e61b
533 | phone_forwarded e61c
534 | phone_in_talk e61d
535 | phone_iphone e325
536 | phone_locked e61e
537 | phone_missed e61f
538 | phone_paused e620
539 | phonelink e326
540 | phonelink_erase e0db
541 | phonelink_lock e0dc
542 | phonelink_off e327
543 | phonelink_ring e0dd
544 | phonelink_setup e0de
545 | photo e410
546 | photo_album e411
547 | photo_camera e412
548 | photo_library e413
549 | photo_size_select_actual e432
550 | photo_size_select_large e433
551 | photo_size_select_small e434
552 | picture_as_pdf e415
553 | picture_in_picture e8aa
554 | pin_drop e55e
555 | place e55f
556 | play_arrow e037
557 | play_circle_filled e038
558 | play_circle_outline e039
559 | play_for_work e906
560 | playlist_add e03b
561 | plus_one e800
562 | poll e801
563 | polymer e8ab
564 | portable_wifi_off e0ce
565 | portrait e416
566 | power e63c
567 | power_input e336
568 | power_settings_new e8ac
569 | present_to_all e0df
570 | print e8ad
571 | public e80b
572 | publish e255
573 | query_builder e8ae
574 | question_answer e8af
575 | queue e03c
576 | queue_music e03d
577 | radio e03e
578 | radio_button_checked e837
579 | radio_button_unchecked e836
580 | rate_review e560
581 | receipt e8b0
582 | recent_actors e03f
583 | redeem e8b1
584 | redo e15a
585 | refresh e5d5
586 | remove e15b
587 | remove_circle e15c
588 | remove_circle_outline e15d
589 | remove_red_eye e417
590 | reorder e8fe
591 | repeat e040
592 | repeat_one e041
593 | replay e042
594 | replay_10 e059
595 | replay_30 e05a
596 | replay_5 e05b
597 | reply e15e
598 | reply_all e15f
599 | report e160
600 | report_problem e8b2
601 | restaurant_menu e561
602 | restore e8b3
603 | ring_volume e0d1
604 | room e8b4
605 | rotate_90_degrees_ccw e418
606 | rotate_left e419
607 | rotate_right e41a
608 | router e328
609 | satellite e562
610 | save e161
611 | scanner e329
612 | schedule e8b5
613 | school e80c
614 | screen_lock_landscape e1be
615 | screen_lock_portrait e1bf
616 | screen_lock_rotation e1c0
617 | screen_rotation e1c1
618 | sd_card e623
619 | sd_storage e1c2
620 | search e8b6
621 | security e32a
622 | select_all e162
623 | send e163
624 | settings e8b8
625 | settings_applications e8b9
626 | settings_backup_restore e8ba
627 | settings_bluetooth e8bb
628 | settings_brightness e8bd
629 | settings_cell e8bc
630 | settings_ethernet e8be
631 | settings_input_antenna e8bf
632 | settings_input_component e8c0
633 | settings_input_composite e8c1
634 | settings_input_hdmi e8c2
635 | settings_input_svideo e8c3
636 | settings_overscan e8c4
637 | settings_phone e8c5
638 | settings_power e8c6
639 | settings_remote e8c7
640 | settings_system_daydream e1c3
641 | settings_voice e8c8
642 | share e80d
643 | shop e8c9
644 | shop_two e8ca
645 | shopping_basket e8cb
646 | shopping_cart e8cc
647 | shuffle e043
648 | signal_cellular_4_bar e1c8
649 | signal_cellular_connected_no_internet_4_bar e1cd
650 | signal_cellular_no_sim e1ce
651 | signal_cellular_null e1cf
652 | signal_cellular_off e1d0
653 | signal_wifi_4_bar e1d8
654 | signal_wifi_4_bar_lock e1d9
655 | signal_wifi_off e1da
656 | sim_card e32b
657 | sim_card_alert e624
658 | skip_next e044
659 | skip_previous e045
660 | slideshow e41b
661 | smartphone e32c
662 | sms e625
663 | sms_failed e626
664 | snooze e046
665 | sort e164
666 | sort_by_alpha e053
667 | space_bar e256
668 | speaker e32d
669 | speaker_group e32e
670 | speaker_notes e8cd
671 | speaker_phone e0d2
672 | spellcheck e8ce
673 | star e838
674 | star_border e83a
675 | star_half e839
676 | stars e8d0
677 | stay_current_landscape e0d3
678 | stay_current_portrait e0d4
679 | stay_primary_landscape e0d5
680 | stay_primary_portrait e0d6
681 | stop e047
682 | storage e1db
683 | store e8d1
684 | store_mall_directory e563
685 | straighten e41c
686 | strikethrough_s e257
687 | style e41d
688 | subject e8d2
689 | subtitles e048
690 | supervisor_account e8d3
691 | surround_sound e049
692 | swap_calls e0d7
693 | swap_horiz e8d4
694 | swap_vert e8d5
695 | swap_vertical_circle e8d6
696 | switch_camera e41e
697 | switch_video e41f
698 | sync e627
699 | sync_disabled e628
700 | sync_problem e629
701 | system_update e62a
702 | system_update_alt e8d7
703 | tab e8d8
704 | tab_unselected e8d9
705 | tablet e32f
706 | tablet_android e330
707 | tablet_mac e331
708 | tag_faces e420
709 | tap_and_play e62b
710 | terrain e564
711 | text_format e165
712 | textsms e0d8
713 | texture e421
714 | theaters e8da
715 | thumb_down e8db
716 | thumb_up e8dc
717 | thumbs_up_down e8dd
718 | time_to_leave e62c
719 | timelapse e422
720 | timer e425
721 | timer_10 e423
722 | timer_3 e424
723 | timer_off e426
724 | toc e8de
725 | today e8df
726 | toll e8e0
727 | tonality e427
728 | toys e332
729 | track_changes e8e1
730 | traffic e565
731 | transform e428
732 | translate e8e2
733 | trending_down e8e3
734 | trending_flat e8e4
735 | trending_up e8e5
736 | tune e429
737 | turned_in e8e6
738 | turned_in_not e8e7
739 | tv e333
740 | undo e166
741 | unfold_less e5d6
742 | unfold_more e5d7
743 | usb e1e0
744 | verified_user e8e8
745 | vertical_align_bottom e258
746 | vertical_align_center e259
747 | vertical_align_top e25a
748 | vibration e62d
749 | video_library e04a
750 | videocam e04b
751 | videocam_off e04c
752 | view_agenda e8e9
753 | view_array e8ea
754 | view_carousel e8eb
755 | view_column e8ec
756 | view_comfy e42a
757 | view_compact e42b
758 | view_day e8ed
759 | view_headline e8ee
760 | view_list e8ef
761 | view_module e8f0
762 | view_quilt e8f1
763 | view_stream e8f2
764 | view_week e8f3
765 | vignette e435
766 | visibility e8f4
767 | visibility_off e8f5
768 | voice_chat e62e
769 | voicemail e0d9
770 | volume_down e04d
771 | volume_mute e04e
772 | volume_off e04f
773 | volume_up e050
774 | vpn_key e0da
775 | vpn_lock e62f
776 | wallpaper e1bc
777 | warning e002
778 | watch e334
779 | wb_auto e42c
780 | wb_cloudy e42d
781 | wb_incandescent e42e
782 | wb_iridescent e436
783 | wb_sunny e430
784 | wc e63d
785 | web e051
786 | whatshot e80e
787 | widgets e1bd
788 | wifi e63e
789 | wifi_lock e1e1
790 | wifi_tethering e1e2
791 | work e8f9
792 | wrap_text e25b
793 | youtube_searched_for e8fa
794 | zoom_in e8ff
795 | zoom_out e900
796 |
--------------------------------------------------------------------------------
/font/material-design-icons/LICENSE.txt:
--------------------------------------------------------------------------------
1 | https://github.com/google/material-design-icons/blob/master/LICENSE
2 | https://github.com/FezVrasta/bootstrap-material-design/blob/master/fonts/LICENSE.txt
3 |
4 | Attribution-ShareAlike 4.0 International
5 |
6 | =======================================================================
7 |
8 | Creative Commons Corporation ("Creative Commons") is not a law firm and
9 | does not provide legal services or legal advice. Distribution of
10 | Creative Commons public licenses does not create a lawyer-client or
11 | other relationship. Creative Commons makes its licenses and related
12 | information available on an "as-is" basis. Creative Commons gives no
13 | warranties regarding its licenses, any material licensed under their
14 | terms and conditions, or any related information. Creative Commons
15 | disclaims all liability for damages resulting from their use to the
16 | fullest extent possible.
17 |
18 | Using Creative Commons Public Licenses
19 |
20 | Creative Commons public licenses provide a standard set of terms and
21 | conditions that creators and other rights holders may use to share
22 | original works of authorship and other material subject to copyright
23 | and certain other rights specified in the public license below. The
24 | following considerations are for informational purposes only, are not
25 | exhaustive, and do not form part of our licenses.
26 |
27 | Considerations for licensors: Our public licenses are
28 | intended for use by those authorized to give the public
29 | permission to use material in ways otherwise restricted by
30 | copyright and certain other rights. Our licenses are
31 | irrevocable. Licensors should read and understand the terms
32 | and conditions of the license they choose before applying it.
33 | Licensors should also secure all rights necessary before
34 | applying our licenses so that the public can reuse the
35 | material as expected. Licensors should clearly mark any
36 | material not subject to the license. This includes other CC-
37 | licensed material, or material used under an exception or
38 | limitation to copyright. More considerations for licensors:
39 | wiki.creativecommons.org/Considerations_for_licensors
40 |
41 | Considerations for the public: By using one of our public
42 | licenses, a licensor grants the public permission to use the
43 | licensed material under specified terms and conditions. If
44 | the licensor's permission is not necessary for any reason--for
45 | example, because of any applicable exception or limitation to
46 | copyright--then that use is not regulated by the license. Our
47 | licenses grant only permissions under copyright and certain
48 | other rights that a licensor has authority to grant. Use of
49 | the licensed material may still be restricted for other
50 | reasons, including because others have copyright or other
51 | rights in the material. A licensor may make special requests,
52 | such as asking that all changes be marked or described.
53 | Although not required by our licenses, you are encouraged to
54 | respect those requests where reasonable. More_considerations
55 | for the public:
56 | wiki.creativecommons.org/Considerations_for_licensees
57 |
58 | =======================================================================
59 |
60 | Creative Commons Attribution-ShareAlike 4.0 International Public
61 | License
62 |
63 | By exercising the Licensed Rights (defined below), You accept and agree
64 | to be bound by the terms and conditions of this Creative Commons
65 | Attribution-ShareAlike 4.0 International Public License ("Public
66 | License"). To the extent this Public License may be interpreted as a
67 | contract, You are granted the Licensed Rights in consideration of Your
68 | acceptance of these terms and conditions, and the Licensor grants You
69 | such rights in consideration of benefits the Licensor receives from
70 | making the Licensed Material available under these terms and
71 | conditions.
72 |
73 |
74 | Section 1 -- Definitions.
75 |
76 | a. Adapted Material means material subject to Copyright and Similar
77 | Rights that is derived from or based upon the Licensed Material
78 | and in which the Licensed Material is translated, altered,
79 | arranged, transformed, or otherwise modified in a manner requiring
80 | permission under the Copyright and Similar Rights held by the
81 | Licensor. For purposes of this Public License, where the Licensed
82 | Material is a musical work, performance, or sound recording,
83 | Adapted Material is always produced where the Licensed Material is
84 | synched in timed relation with a moving image.
85 |
86 | b. Adapter's License means the license You apply to Your Copyright
87 | and Similar Rights in Your contributions to Adapted Material in
88 | accordance with the terms and conditions of this Public License.
89 |
90 | c. BY-SA Compatible License means a license listed at
91 | creativecommons.org/compatiblelicenses, approved by Creative
92 | Commons as essentially the equivalent of this Public License.
93 |
94 | d. Copyright and Similar Rights means copyright and/or similar rights
95 | closely related to copyright including, without limitation,
96 | performance, broadcast, sound recording, and Sui Generis Database
97 | Rights, without regard to how the rights are labeled or
98 | categorized. For purposes of this Public License, the rights
99 | specified in Section 2(b)(1)-(2) are not Copyright and Similar
100 | Rights.
101 |
102 | e. Effective Technological Measures means those measures that, in the
103 | absence of proper authority, may not be circumvented under laws
104 | fulfilling obligations under Article 11 of the WIPO Copyright
105 | Treaty adopted on December 20, 1996, and/or similar international
106 | agreements.
107 |
108 | f. Exceptions and Limitations means fair use, fair dealing, and/or
109 | any other exception or limitation to Copyright and Similar Rights
110 | that applies to Your use of the Licensed Material.
111 |
112 | g. License Elements means the license attributes listed in the name
113 | of a Creative Commons Public License. The License Elements of this
114 | Public License are Attribution and ShareAlike.
115 |
116 | h. Licensed Material means the artistic or literary work, database,
117 | or other material to which the Licensor applied this Public
118 | License.
119 |
120 | i. Licensed Rights means the rights granted to You subject to the
121 | terms and conditions of this Public License, which are limited to
122 | all Copyright and Similar Rights that apply to Your use of the
123 | Licensed Material and that the Licensor has authority to license.
124 |
125 | j. Licensor means the individual(s) or entity(ies) granting rights
126 | under this Public License.
127 |
128 | k. Share means to provide material to the public by any means or
129 | process that requires permission under the Licensed Rights, such
130 | as reproduction, public display, public performance, distribution,
131 | dissemination, communication, or importation, and to make material
132 | available to the public including in ways that members of the
133 | public may access the material from a place and at a time
134 | individually chosen by them.
135 |
136 | l. Sui Generis Database Rights means rights other than copyright
137 | resulting from Directive 96/9/EC of the European Parliament and of
138 | the Council of 11 March 1996 on the legal protection of databases,
139 | as amended and/or succeeded, as well as other essentially
140 | equivalent rights anywhere in the world.
141 |
142 | m. You means the individual or entity exercising the Licensed Rights
143 | under this Public License. Your has a corresponding meaning.
144 |
145 |
146 | Section 2 -- Scope.
147 |
148 | a. License grant.
149 |
150 | 1. Subject to the terms and conditions of this Public License,
151 | the Licensor hereby grants You a worldwide, royalty-free,
152 | non-sublicensable, non-exclusive, irrevocable license to
153 | exercise the Licensed Rights in the Licensed Material to:
154 |
155 | a. reproduce and Share the Licensed Material, in whole or
156 | in part; and
157 |
158 | b. produce, reproduce, and Share Adapted Material.
159 |
160 | 2. Exceptions and Limitations. For the avoidance of doubt, where
161 | Exceptions and Limitations apply to Your use, this Public
162 | License does not apply, and You do not need to comply with
163 | its terms and conditions.
164 |
165 | 3. Term. The term of this Public License is specified in Section
166 | 6(a).
167 |
168 | 4. Media and formats; technical modifications allowed. The
169 | Licensor authorizes You to exercise the Licensed Rights in
170 | all media and formats whether now known or hereafter created,
171 | and to make technical modifications necessary to do so. The
172 | Licensor waives and/or agrees not to assert any right or
173 | authority to forbid You from making technical modifications
174 | necessary to exercise the Licensed Rights, including
175 | technical modifications necessary to circumvent Effective
176 | Technological Measures. For purposes of this Public License,
177 | simply making modifications authorized by this Section 2(a)
178 | (4) never produces Adapted Material.
179 |
180 | 5. Downstream recipients.
181 |
182 | a. Offer from the Licensor -- Licensed Material. Every
183 | recipient of the Licensed Material automatically
184 | receives an offer from the Licensor to exercise the
185 | Licensed Rights under the terms and conditions of this
186 | Public License.
187 |
188 | b. Additional offer from the Licensor -- Adapted Material.
189 | Every recipient of Adapted Material from You
190 | automatically receives an offer from the Licensor to
191 | exercise the Licensed Rights in the Adapted Material
192 | under the conditions of the Adapter's License You apply.
193 |
194 | c. No downstream restrictions. You may not offer or impose
195 | any additional or different terms or conditions on, or
196 | apply any Effective Technological Measures to, the
197 | Licensed Material if doing so restricts exercise of the
198 | Licensed Rights by any recipient of the Licensed
199 | Material.
200 |
201 | 6. No endorsement. Nothing in this Public License constitutes or
202 | may be construed as permission to assert or imply that You
203 | are, or that Your use of the Licensed Material is, connected
204 | with, or sponsored, endorsed, or granted official status by,
205 | the Licensor or others designated to receive attribution as
206 | provided in Section 3(a)(1)(A)(i).
207 |
208 | b. Other rights.
209 |
210 | 1. Moral rights, such as the right of integrity, are not
211 | licensed under this Public License, nor are publicity,
212 | privacy, and/or other similar personality rights; however, to
213 | the extent possible, the Licensor waives and/or agrees not to
214 | assert any such rights held by the Licensor to the limited
215 | extent necessary to allow You to exercise the Licensed
216 | Rights, but not otherwise.
217 |
218 | 2. Patent and trademark rights are not licensed under this
219 | Public License.
220 |
221 | 3. To the extent possible, the Licensor waives any right to
222 | collect royalties from You for the exercise of the Licensed
223 | Rights, whether directly or through a collecting society
224 | under any voluntary or waivable statutory or compulsory
225 | licensing scheme. In all other cases the Licensor expressly
226 | reserves any right to collect such royalties.
227 |
228 |
229 | Section 3 -- License Conditions.
230 |
231 | Your exercise of the Licensed Rights is expressly made subject to the
232 | following conditions.
233 |
234 | a. Attribution.
235 |
236 | 1. If You Share the Licensed Material (including in modified
237 | form), You must:
238 |
239 | a. retain the following if it is supplied by the Licensor
240 | with the Licensed Material:
241 |
242 | i. identification of the creator(s) of the Licensed
243 | Material and any others designated to receive
244 | attribution, in any reasonable manner requested by
245 | the Licensor (including by pseudonym if
246 | designated);
247 |
248 | ii. a copyright notice;
249 |
250 | iii. a notice that refers to this Public License;
251 |
252 | iv. a notice that refers to the disclaimer of
253 | warranties;
254 |
255 | v. a URI or hyperlink to the Licensed Material to the
256 | extent reasonably practicable;
257 |
258 | b. indicate if You modified the Licensed Material and
259 | retain an indication of any previous modifications; and
260 |
261 | c. indicate the Licensed Material is licensed under this
262 | Public License, and include the text of, or the URI or
263 | hyperlink to, this Public License.
264 |
265 | 2. You may satisfy the conditions in Section 3(a)(1) in any
266 | reasonable manner based on the medium, means, and context in
267 | which You Share the Licensed Material. For example, it may be
268 | reasonable to satisfy the conditions by providing a URI or
269 | hyperlink to a resource that includes the required
270 | information.
271 |
272 | 3. If requested by the Licensor, You must remove any of the
273 | information required by Section 3(a)(1)(A) to the extent
274 | reasonably practicable.
275 |
276 | b. ShareAlike.
277 |
278 | In addition to the conditions in Section 3(a), if You Share
279 | Adapted Material You produce, the following conditions also apply.
280 |
281 | 1. The Adapter's License You apply must be a Creative Commons
282 | license with the same License Elements, this version or
283 | later, or a BY-SA Compatible License.
284 |
285 | 2. You must include the text of, or the URI or hyperlink to, the
286 | Adapter's License You apply. You may satisfy this condition
287 | in any reasonable manner based on the medium, means, and
288 | context in which You Share Adapted Material.
289 |
290 | 3. You may not offer or impose any additional or different terms
291 | or conditions on, or apply any Effective Technological
292 | Measures to, Adapted Material that restrict exercise of the
293 | rights granted under the Adapter's License You apply.
294 |
295 |
296 | Section 4 -- Sui Generis Database Rights.
297 |
298 | Where the Licensed Rights include Sui Generis Database Rights that
299 | apply to Your use of the Licensed Material:
300 |
301 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
302 | to extract, reuse, reproduce, and Share all or a substantial
303 | portion of the contents of the database;
304 |
305 | b. if You include all or a substantial portion of the database
306 | contents in a database in which You have Sui Generis Database
307 | Rights, then the database in which You have Sui Generis Database
308 | Rights (but not its individual contents) is Adapted Material,
309 |
310 | including for purposes of Section 3(b); and
311 | c. You must comply with the conditions in Section 3(a) if You Share
312 | all or a substantial portion of the contents of the database.
313 |
314 | For the avoidance of doubt, this Section 4 supplements and does not
315 | replace Your obligations under this Public License where the Licensed
316 | Rights include other Copyright and Similar Rights.
317 |
318 |
319 | Section 5 -- Disclaimer of Warranties and Limitation of Liability.
320 |
321 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
322 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
323 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
324 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
325 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
326 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
327 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
328 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
329 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
330 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
331 |
332 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
333 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
334 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
335 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
336 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
337 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
338 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
339 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
340 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
341 |
342 | c. The disclaimer of warranties and limitation of liability provided
343 | above shall be interpreted in a manner that, to the extent
344 | possible, most closely approximates an absolute disclaimer and
345 | waiver of all liability.
346 |
347 |
348 | Section 6 -- Term and Termination.
349 |
350 | a. This Public License applies for the term of the Copyright and
351 | Similar Rights licensed here. However, if You fail to comply with
352 | this Public License, then Your rights under this Public License
353 | terminate automatically.
354 |
355 | b. Where Your right to use the Licensed Material has terminated under
356 | Section 6(a), it reinstates:
357 |
358 | 1. automatically as of the date the violation is cured, provided
359 | it is cured within 30 days of Your discovery of the
360 | violation; or
361 |
362 | 2. upon express reinstatement by the Licensor.
363 |
364 | For the avoidance of doubt, this Section 6(b) does not affect any
365 | right the Licensor may have to seek remedies for Your violations
366 | of this Public License.
367 |
368 | c. For the avoidance of doubt, the Licensor may also offer the
369 | Licensed Material under separate terms or conditions or stop
370 | distributing the Licensed Material at any time; however, doing so
371 | will not terminate this Public License.
372 |
373 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
374 | License.
375 |
376 |
377 | Section 7 -- Other Terms and Conditions.
378 |
379 | a. The Licensor shall not be bound by any additional or different
380 | terms or conditions communicated by You unless expressly agreed.
381 |
382 | b. Any arrangements, understandings, or agreements regarding the
383 | Licensed Material not stated herein are separate from and
384 | independent of the terms and conditions of this Public License.
385 |
386 |
387 | Section 8 -- Interpretation.
388 |
389 | a. For the avoidance of doubt, this Public License does not, and
390 | shall not be interpreted to, reduce, limit, restrict, or impose
391 | conditions on any use of the Licensed Material that could lawfully
392 | be made without permission under this Public License.
393 |
394 | b. To the extent possible, if any provision of this Public License is
395 | deemed unenforceable, it shall be automatically reformed to the
396 | minimum extent necessary to make it enforceable. If the provision
397 | cannot be reformed, it shall be severed from this Public License
398 | without affecting the enforceability of the remaining terms and
399 | conditions.
400 |
401 | c. No term or condition of this Public License will be waived and no
402 | failure to comply consented to unless expressly agreed to by the
403 | Licensor.
404 |
405 | d. Nothing in this Public License constitutes or may be interpreted
406 | as a limitation upon, or waiver of, any privileges and immunities
407 | that apply to the Licensor or You, including from the legal
408 | processes of any jurisdiction or authority.
409 |
410 |
411 | =======================================================================
412 |
413 | Creative Commons is not a party to its public licenses.
414 | Notwithstanding, Creative Commons may elect to apply one of its public
415 | licenses to material it publishes and in those instances will be
416 | considered the "Licensor." Except for the limited purpose of indicating
417 | that material is shared under a Creative Commons public license or as
418 | otherwise permitted by the Creative Commons policies published at
419 | creativecommons.org/policies, Creative Commons does not authorize the
420 | use of the trademark "Creative Commons" or any other trademark or logo
421 | of Creative Commons without its prior written consent including,
422 | without limitation, in connection with any unauthorized modifications
423 | to any of its public licenses or any other arrangements,
424 | understandings, or agreements concerning use of licensed material. For
425 | the avoidance of doubt, this paragraph does not form part of the public
426 | licenses.
427 |
428 | Creative Commons may be contacted at creativecommons.org.
429 |
--------------------------------------------------------------------------------
/mdl/material.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * material-design-lite - Material Design Components in CSS, JS and HTML
3 | * @version v1.0.5
4 | * @license Apache-2.0
5 | * @copyright 2015 Google, Inc.
6 | * @link https://github.com/google/material-design-lite
7 | */
8 | !function(){"use strict";function e(e,t){if(e){if(t.element_.classList.contains(t.CssClasses_.MDL_JS_RIPPLE_EFFECT)){var s=document.createElement("span");s.classList.add(t.CssClasses_.MDL_RIPPLE_CONTAINER),s.classList.add(t.CssClasses_.MDL_JS_RIPPLE_EFFECT);var i=document.createElement("span");i.classList.add(t.CssClasses_.MDL_RIPPLE),s.appendChild(i),e.appendChild(s)}e.addEventListener("click",function(s){s.preventDefault();var i=e.href.split("#")[1],n=t.element_.querySelector("#"+i);t.resetTabState_(),t.resetPanelState_(),e.classList.add(t.CssClasses_.ACTIVE_CLASS),n.classList.add(t.CssClasses_.ACTIVE_CLASS)})}}function t(e,t,s,i){if(e){if(i.tabBar_.classList.contains(i.CssClasses_.JS_RIPPLE_EFFECT)){var n=document.createElement("span");n.classList.add(i.CssClasses_.RIPPLE_CONTAINER),n.classList.add(i.CssClasses_.JS_RIPPLE_EFFECT);var a=document.createElement("span");a.classList.add(i.CssClasses_.RIPPLE),n.appendChild(a),e.appendChild(n)}e.addEventListener("click",function(n){n.preventDefault();var a=e.href.split("#")[1],l=i.content_.querySelector("#"+a);i.resetTabState_(t),i.resetPanelState_(s),e.classList.add(i.CssClasses_.IS_ACTIVE),l.classList.add(i.CssClasses_.IS_ACTIVE)})}}var s={upgradeDom:function(e,t){},upgradeElement:function(e,t){},upgradeElements:function(e){},upgradeAllRegistered:function(){},registerUpgradedCallback:function(e,t){},register:function(e){},downgradeElements:function(e){}};s=function(){function e(e,t){for(var s=0;sd;d++){if(r=l[d],!r)throw new Error("Unable to find a registered component for the given class.");a.push(r.className),i.setAttribute("data-upgraded",a.join(","));var h=new r.classConstructor(i);h[C]=r,p.push(h);for(var u=0,m=r.callbacks.length;m>u;u++)r.callbacks[u](i);r.widget&&(i[r.className]=h);var E=document.createEvent("Events");E.initEvent("mdl-componentupgraded",!0,!0),i.dispatchEvent(E)}}function a(e){Array.isArray(e)||(e="function"==typeof e.item?Array.prototype.slice.call(e):[e]);for(var t,s=0,i=e.length;i>s;s++)t=e[s],t instanceof HTMLElement&&(n(t),t.children.length>0&&a(t.children))}function l(t){var s="undefined"==typeof t.widget&&"undefined"==typeof t.widget,i=!0;s||(i=t.widget||t.widget);var n={classConstructor:t.constructor||t.constructor,className:t.classAsString||t.classAsString,cssClass:t.cssClass||t.cssClass,widget:i,callbacks:[]};if(c.forEach(function(e){if(e.cssClass===n.cssClass)throw new Error("The provided cssClass has already been registered: "+e.cssClass);if(e.className===n.className)throw new Error("The provided className has already been registered")}),t.constructor.prototype.hasOwnProperty(C))throw new Error("MDL component classes must not have "+C+" defined as a property.");var a=e(t.classAsString,n);a||c.push(n)}function o(t,s){var i=e(t);i&&i.callbacks.push(s)}function r(){for(var e=0;e0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)&&(e.keyCode===this.Keycodes_.UP_ARROW?(e.preventDefault(),t[t.length-1].focus()):e.keyCode===this.Keycodes_.DOWN_ARROW&&(e.preventDefault(),t[0].focus()))}},_.prototype.handleItemKeyboardEvent_=function(e){if(this.element_&&this.container_){var t=this.element_.querySelectorAll("."+this.CssClasses_.ITEM+":not([disabled])");if(t&&t.length>0&&this.container_.classList.contains(this.CssClasses_.IS_VISIBLE)){var s=Array.prototype.slice.call(t).indexOf(e.target);if(e.keyCode===this.Keycodes_.UP_ARROW)e.preventDefault(),s>0?t[s-1].focus():t[t.length-1].focus();else if(e.keyCode===this.Keycodes_.DOWN_ARROW)e.preventDefault(),t.length>s+1?t[s+1].focus():t[0].focus();else if(e.keyCode===this.Keycodes_.SPACE||e.keyCode===this.Keycodes_.ENTER){e.preventDefault();var i=new MouseEvent("mousedown");e.target.dispatchEvent(i),i=new MouseEvent("mouseup"),e.target.dispatchEvent(i),e.target.click()}else e.keyCode===this.Keycodes_.ESCAPE&&(e.preventDefault(),this.hide())}}},_.prototype.handleItemClick_=function(e){null!==e.target.getAttribute("disabled")?e.stopPropagation():(this.closing_=!0,window.setTimeout(function(e){this.hide(),this.closing_=!1}.bind(this),this.Constant_.CLOSE_TIMEOUT))},_.prototype.applyClip_=function(e,t){this.element_.classList.contains(this.CssClasses_.UNALIGNED)?this.element_.style.clip="":this.element_.classList.contains(this.CssClasses_.BOTTOM_RIGHT)?this.element_.style.clip="rect(0 "+t+"px 0 "+t+"px)":this.element_.classList.contains(this.CssClasses_.TOP_LEFT)?this.element_.style.clip="rect("+e+"px 0 "+e+"px 0)":this.element_.classList.contains(this.CssClasses_.TOP_RIGHT)?this.element_.style.clip="rect("+e+"px "+t+"px "+e+"px "+t+"px)":this.element_.style.clip=""},_.prototype.addAnimationEndListener_=function(){var e=function(){this.element_.removeEventListener("transitionend",e),this.element_.removeEventListener("webkitTransitionEnd",e),this.element_.classList.remove(this.CssClasses_.IS_ANIMATING)}.bind(this);this.element_.addEventListener("transitionend",e),this.element_.addEventListener("webkitTransitionEnd",e)},_.prototype.show=function(e){if(this.element_&&this.container_&&this.outline_){var t=this.element_.getBoundingClientRect().height,s=this.element_.getBoundingClientRect().width;this.container_.style.width=s+"px",this.container_.style.height=t+"px",this.outline_.style.width=s+"px",this.outline_.style.height=t+"px";for(var i=this.Constant_.TRANSITION_DURATION_SECONDS*this.Constant_.TRANSITION_DURATION_FRACTION,n=this.element_.querySelectorAll("."+this.CssClasses_.ITEM),a=0;a=this.maxRows&&e.preventDefault()},E.prototype.onFocus_=function(e){this.element_.classList.add(this.CssClasses_.IS_FOCUSED)},E.prototype.onBlur_=function(e){this.element_.classList.remove(this.CssClasses_.IS_FOCUSED)},E.prototype.updateClasses_=function(){this.checkDisabled(),this.checkValidity(),this.checkDirty()},E.prototype.checkDisabled=function(){this.input_.disabled?this.element_.classList.add(this.CssClasses_.IS_DISABLED):this.element_.classList.remove(this.CssClasses_.IS_DISABLED)},E.prototype.checkDisabled=E.prototype.checkDisabled,E.prototype.checkValidity=function(){this.input_.validity.valid?this.element_.classList.remove(this.CssClasses_.IS_INVALID):this.element_.classList.add(this.CssClasses_.IS_INVALID)},E.prototype.checkValidity=E.prototype.checkValidity,E.prototype.checkDirty=function(){this.input_.value&&this.input_.value.length>0?this.element_.classList.add(this.CssClasses_.IS_DIRTY):this.element_.classList.remove(this.CssClasses_.IS_DIRTY)},E.prototype.checkDirty=E.prototype.checkDirty,E.prototype.disable=function(){this.input_.disabled=!0,this.updateClasses_()},E.prototype.disable=E.prototype.disable,E.prototype.enable=function(){this.input_.disabled=!1,this.updateClasses_()},E.prototype.enable=E.prototype.enable,E.prototype.change=function(e){e?this.input_.value=e:this.input_.value="",this.updateClasses_()},E.prototype.change=E.prototype.change,E.prototype.init=function(){this.element_&&(this.label_=this.element_.querySelector("."+this.CssClasses_.LABEL),this.input_=this.element_.querySelector("."+this.CssClasses_.INPUT),this.input_&&(this.input_.hasAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE)&&(this.maxRows=parseInt(this.input_.getAttribute(this.Constant_.MAX_ROWS_ATTRIBUTE),10),isNaN(this.maxRows)&&(this.maxRows=this.Constant_.NO_MAX_ROWS)),this.boundUpdateClassesHandler=this.updateClasses_.bind(this),this.boundFocusHandler=this.onFocus_.bind(this),this.boundBlurHandler=this.onBlur_.bind(this),this.input_.addEventListener("input",this.boundUpdateClassesHandler),this.input_.addEventListener("focus",this.boundFocusHandler),this.input_.addEventListener("blur",this.boundBlurHandler),this.maxRows!==this.Constant_.NO_MAX_ROWS&&(this.boundKeyDownHandler=this.onKeyDown_.bind(this),this.input_.addEventListener("keydown",this.boundKeyDownHandler)),this.updateClasses_(),this.element_.classList.add(this.CssClasses_.IS_UPGRADED)))},E.prototype.mdlDowngrade_=function(){this.input_.removeEventListener("input",this.boundUpdateClassesHandler),this.input_.removeEventListener("focus",this.boundFocusHandler),this.input_.removeEventListener("blur",this.boundBlurHandler),this.boundKeyDownHandler&&this.input_.removeEventListener("keydown",this.boundKeyDownHandler)},s.register({constructor:E,classAsString:"MaterialTextfield",cssClass:"mdl-js-textfield",widget:!0});var L=function(e){this.element_=e,this.init()};window.MaterialTooltip=L,L.prototype.Constant_={},L.prototype.CssClasses_={IS_ACTIVE:"is-active"},L.prototype.handleMouseEnter_=function(e){e.stopPropagation();var t=e.target.getBoundingClientRect(),s=t.left+t.width/2,i=-1*(this.element_.offsetWidth/2);0>s+i?(this.element_.style.left=0,this.element_.style.marginLeft=0):(this.element_.style.left=s+"px",this.element_.style.marginLeft=i+"px"),this.element_.style.top=t.top+t.height+10+"px",this.element_.classList.add(this.CssClasses_.IS_ACTIVE),window.addEventListener("scroll",this.boundMouseLeaveHandler,!1),window.addEventListener("touchmove",this.boundMouseLeaveHandler,!1)},L.prototype.handleMouseLeave_=function(e){e.stopPropagation(),this.element_.classList.remove(this.CssClasses_.IS_ACTIVE),window.removeEventListener("scroll",this.boundMouseLeaveHandler),window.removeEventListener("touchmove",this.boundMouseLeaveHandler,!1)},L.prototype.init=function(){if(this.element_){var e=this.element_.getAttribute("for");e&&(this.forElement_=document.getElementById(e)),this.forElement_&&(this.forElement_.getAttribute("tabindex")||this.forElement_.setAttribute("tabindex","0"),this.boundMouseEnterHandler=this.handleMouseEnter_.bind(this),this.boundMouseLeaveHandler=this.handleMouseLeave_.bind(this),this.forElement_.addEventListener("mouseenter",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("click",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("blur",this.boundMouseLeaveHandler),this.forElement_.addEventListener("touchstart",this.boundMouseEnterHandler,!1),this.forElement_.addEventListener("mouseleave",this.boundMouseLeaveHandler))}},L.prototype.mdlDowngrade_=function(){this.forElement_&&(this.forElement_.removeEventListener("mouseenter",this.boundMouseEnterHandler,!1),this.forElement_.removeEventListener("click",this.boundMouseEnterHandler,!1),this.forElement_.removeEventListener("touchstart",this.boundMouseEnterHandler,!1),this.forElement_.removeEventListener("mouseleave",this.boundMouseLeaveHandler))},s.register({constructor:L,classAsString:"MaterialTooltip",cssClass:"mdl-tooltip"});var I=function(e){this.element_=e,this.init()};window.MaterialLayout=I,I.prototype.Constant_={MAX_WIDTH:"(max-width: 1024px)",TAB_SCROLL_PIXELS:100,MENU_ICON:"menu",CHEVRON_LEFT:"chevron_left",CHEVRON_RIGHT:"chevron_right"},I.prototype.Mode_={STANDARD:0,SEAMED:1,WATERFALL:2,SCROLL:3},I.prototype.CssClasses_={CONTAINER:"mdl-layout__container",HEADER:"mdl-layout__header",DRAWER:"mdl-layout__drawer",CONTENT:"mdl-layout__content",DRAWER_BTN:"mdl-layout__drawer-button",ICON:"material-icons",JS_RIPPLE_EFFECT:"mdl-js-ripple-effect",RIPPLE_CONTAINER:"mdl-layout__tab-ripple-container",RIPPLE:"mdl-ripple",RIPPLE_IGNORE_EVENTS:"mdl-js-ripple-effect--ignore-events",HEADER_SEAMED:"mdl-layout__header--seamed",HEADER_WATERFALL:"mdl-layout__header--waterfall",HEADER_SCROLL:"mdl-layout__header--scroll",FIXED_HEADER:"mdl-layout--fixed-header",OBFUSCATOR:"mdl-layout__obfuscator",TAB_BAR:"mdl-layout__tab-bar",TAB_CONTAINER:"mdl-layout__tab-bar-container",TAB:"mdl-layout__tab",TAB_BAR_BUTTON:"mdl-layout__tab-bar-button",TAB_BAR_LEFT_BUTTON:"mdl-layout__tab-bar-left-button",TAB_BAR_RIGHT_BUTTON:"mdl-layout__tab-bar-right-button",PANEL:"mdl-layout__tab-panel",HAS_DRAWER:"has-drawer",HAS_TABS:"has-tabs",HAS_SCROLLING_HEADER:"has-scrolling-header",CASTING_SHADOW:"is-casting-shadow",IS_COMPACT:"is-compact",IS_SMALL_SCREEN:"is-small-screen",IS_DRAWER_OPEN:"is-visible",IS_ACTIVE:"is-active",IS_UPGRADED:"is-upgraded",IS_ANIMATING:"is-animating",ON_LARGE_SCREEN:"mdl-layout--large-screen-only",ON_SMALL_SCREEN:"mdl-layout--small-screen-only"},I.prototype.contentScrollHandler_=function(){this.header_.classList.contains(this.CssClasses_.IS_ANIMATING)||(this.content_.scrollTop>0&&!this.header_.classList.contains(this.CssClasses_.IS_COMPACT)?(this.header_.classList.add(this.CssClasses_.CASTING_SHADOW),this.header_.classList.add(this.CssClasses_.IS_COMPACT),this.header_.classList.add(this.CssClasses_.IS_ANIMATING)):this.content_.scrollTop<=0&&this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.CASTING_SHADOW),this.header_.classList.remove(this.CssClasses_.IS_COMPACT),this.header_.classList.add(this.CssClasses_.IS_ANIMATING)))},I.prototype.screenSizeHandler_=function(){this.screenSizeMediaQuery_.matches?this.element_.classList.add(this.CssClasses_.IS_SMALL_SCREEN):(this.element_.classList.remove(this.CssClasses_.IS_SMALL_SCREEN),this.drawer_&&this.drawer_.classList.remove(this.CssClasses_.IS_DRAWER_OPEN))},I.prototype.drawerToggleHandler_=function(){this.drawer_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN)},I.prototype.headerTransitionEndHandler_=function(){this.header_.classList.remove(this.CssClasses_.IS_ANIMATING)},I.prototype.headerClickHandler_=function(){this.header_.classList.contains(this.CssClasses_.IS_COMPACT)&&(this.header_.classList.remove(this.CssClasses_.IS_COMPACT),this.header_.classList.add(this.CssClasses_.IS_ANIMATING))},I.prototype.resetTabState_=function(e){for(var t=0;t0?h.classList.add(this.CssClasses_.IS_ACTIVE):h.classList.remove(this.CssClasses_.IS_ACTIVE),this.tabBar_.scrollLeft0)return;this.setFrameCount(1);var i,n,a=e.currentTarget.getBoundingClientRect();if(0===e.clientX&&0===e.clientY)i=Math.round(a.width/2),n=Math.round(a.height/2);else{var l=e.clientX?e.clientX:e.touches[0].clientX,o=e.clientY?e.clientY:e.touches[0].clientY;i=Math.round(l-a.left),n=Math.round(o-a.top)}this.setRippleXY(i,n),this.setRippleStyles(!0),window.requestAnimationFrame(this.animFrameHandler.bind(this))}},b.prototype.upHandler_=function(e){e&&2!==e.detail&&this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE),window.setTimeout(function(){this.rippleElement_.classList.remove(this.CssClasses_.IS_VISIBLE)}.bind(this),0)},b.prototype.init=function(){if(this.element_){var e=this.element_.classList.contains(this.CssClasses_.RIPPLE_CENTER);this.element_.classList.contains(this.CssClasses_.RIPPLE_EFFECT_IGNORE_EVENTS)||(this.rippleElement_=this.element_.querySelector("."+this.CssClasses_.RIPPLE),this.frameCount_=0,this.rippleSize_=0,this.x_=0,this.y_=0,this.ignoringMouseDown_=!1,this.boundDownHandler=this.downHandler_.bind(this),this.element_.addEventListener("mousedown",this.boundDownHandler),this.element_.addEventListener("touchstart",this.boundDownHandler),this.boundUpHandler=this.upHandler_.bind(this),this.element_.addEventListener("mouseup",this.boundUpHandler),this.element_.addEventListener("mouseleave",this.boundUpHandler),this.element_.addEventListener("touchend",this.boundUpHandler),this.element_.addEventListener("blur",this.boundUpHandler),this.getFrameCount=function(){return this.frameCount_},this.setFrameCount=function(e){this.frameCount_=e},this.getRippleElement=function(){return this.rippleElement_},this.setRippleXY=function(e,t){this.x_=e,this.y_=t},this.setRippleStyles=function(t){if(null!==this.rippleElement_){var s,i,n,a="translate("+this.x_+"px, "+this.y_+"px)";t?(i=this.Constant_.INITIAL_SCALE,n=this.Constant_.INITIAL_SIZE):(i=this.Constant_.FINAL_SCALE,n=this.rippleSize_+"px",e&&(a="translate("+this.boundWidth/2+"px, "+this.boundHeight/2+"px)")),s="translate(-50%, -50%) "+a+i,this.rippleElement_.style.webkitTransform=s,this.rippleElement_.style.msTransform=s,this.rippleElement_.style.transform=s,t?this.rippleElement_.classList.remove(this.CssClasses_.IS_ANIMATING):this.rippleElement_.classList.add(this.CssClasses_.IS_ANIMATING)}},this.animFrameHandler=function(){this.frameCount_-->0?window.requestAnimationFrame(this.animFrameHandler.bind(this)):this.setRippleStyles(!1)})}},b.prototype.mdlDowngrade_=function(){this.element_.removeEventListener("mousedown",this.boundDownHandler),this.element_.removeEventListener("touchstart",this.boundDownHandler),this.element_.removeEventListener("mouseup",this.boundUpHandler),this.element_.removeEventListener("mouseleave",this.boundUpHandler),this.element_.removeEventListener("touchend",this.boundUpHandler),this.element_.removeEventListener("blur",this.boundUpHandler)},s.register({constructor:b,classAsString:"MaterialRipple",cssClass:"mdl-js-ripple-effect",widget:!1})}();
10 | //# sourceMappingURL=material.min.js.map
11 |
--------------------------------------------------------------------------------