{"action":"created","comment":{"url":"https://api.github.com/repos/google/material-design-lite/pulls/comments/54892929","id":54892929,"diff_hunk":"@@ -0,0 +1,1284 @@\n+/**\n+ * @license\n+ * Copyright 2015 Google Inc. All Rights Reserved.\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *      http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+(function() {\n+  'use strict';\n+\n+  /**\n+   * Class constructor for date picker MDL component.\n+   * Implements MDL component design pattern defined at:\n+   * https://github.com/jasonmayes/mdl-component-design-pattern\n+   *\n+   * @constructor\n+   * @param {HTMLElement} element The element that will be upgraded.\n+   */\n+  var MaterialDatePicker = function MaterialDatePicker(element) {\n+    this.element_ = element;\n+\n+    // Initialize instance.\n+    this.init();\n+  };\n+  window['MaterialDatePicker'] = MaterialDatePicker;\n+\n+  /**\n+   * Global date picker settings\n+   * Currently allowed formats: ['mm/dd/yyyy', 'dd.mm.yyyy', 'yyyy-mm-dd']\n+   * @type {Object}\n+   * @public\n+   */\n+  MaterialDatePicker.settings = {\n+    /**\n+     * Date format for input formatting\n+     * @type {string}\n+     */\n+    format: 'yyyy-mm-dd',\n+    weekDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n+    weekDaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n+    weekDaysLetter: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n+    months: [\n+      'January', 'February', 'March',\n+      'April', 'May', 'June', 'July',\n+      'August', 'September', 'October',\n+      'November', 'December'\n+    ],\n+    monthsShort: [\n+      'Jan', 'Feb', 'Mar', 'Apr', 'May',\n+      'Jun', 'Jul', 'Aug', 'Sep', 'Oct',\n+      'Nov', 'Dec'\n+    ]\n+  };\n+\n+  /**\n+   * Instance based date picker settings.\n+   * Overrides global date picker settings\n+   *\n+   * @type {Object}\n+   * @public\n+   */\n+  MaterialDatePicker.prototype.settings = {};\n+\n+  /**\n+   * Store constants in one place so they can be updated easily.\n+   *\n+   * @enum {string | number}\n+   * @private\n+   */\n+  MaterialDatePicker.prototype.Constant_ = {\n+    // None for now.\n+  };\n+\n+  /**\n+   * Store events in one place so they can be updated easily.\n+   *\n+   * @enum {string}\n+   * @private\n+   */\n+  MaterialDatePicker.prototype.Event_ = {\n+    // None for now.\n+  };\n+\n+  /**\n+   * Store strings for class names defined by this component that are used in\n+   * JavaScript. This allows us to simply change it in one place should we\n+   * decide to modify at a later date.\n+   *\n+   * @enum {string}\n+   * @private\n+   */\n+  MaterialDatePicker.prototype.CssClasses_ = {\n+    // General component classes\n+    IS_UPGRADED: 'is-upgraded',\n+    IS_VISIBLE: 'is-visible',\n+    IS_ATTACHED: 'is-attached',\n+    IS_INVALID: 'is-invalid',\n+    IS_FOCUSED: 'is-focused',\n+    IS_DIRTY: 'is-dirty',\n+\n+    // Appearance classes\n+    INLINE: 'mdl-datepicker--inline',\n+    FIXED: 'mdl-datepicker--fixed',\n+    LANDSCAPE: 'mdl-datepicker--landscape',\n+\n+    // Datepicker related classes\n+    BACKDROP: 'mdl-datepicker__backdrop',\n+    WIDGET: 'mdl-datepicker__widget',\n+    INPUT: 'mdl-datepicker__input',\n+    NAVIGATION: 'mdl-datepicker__navigation',\n+    CALENDAR: 'mdl-datepicker__calendar',\n+    YEAR: 'mdl-datepicker__year',\n+    YEAR_SELECTED: 'mdl-datepicker__year--selected',\n+    YEAR_DISABLED: 'mdl-datepicker__year--disabled',\n+    YEAR_PICKER: 'mdl-datepicker--year-picker',\n+    YEAR_PICKER_ELEMENT: 'mdl-datepicker__year-picker',\n+    MONTH: 'mdl-datepicker__month',\n+    WEEKS: 'mdl-datepicker__weeks',\n+    WEEK: 'mdl-datepicker__week',\n+    WEEK_DAYS: 'mdl-datepicker__week-days',\n+    DATE: 'mdl-datepicker__date',\n+    DATE_TODAY: 'mdl-datepicker__date--today',\n+    DATE_SELECTED: 'mdl-datepicker__date--selected',\n+    DATE_EMPTY: 'mdl-datepicker__date--empty',\n+    DATE_DISABLED: 'mdl-datepicker__date--disabled',\n+    MONTH_CURRENT: 'mdl-datepicker__current-month',\n+    MONTH_PREVIOUS: 'mdl-datepicker__previous-month',\n+    MONTH_NEXT: 'mdl-datepicker__next-month',\n+    HEADER: 'mdl-datepicker__header',\n+    HEADER_YEAR: 'mdl-datepicker__header-year',\n+    HEADER_DATE: 'mdl-datepicker__header-date',\n+    CALENDAR_PREVIOUS: 'mdl-datepicker__calendar--previous',\n+    CALENDAR_NEXT: 'mdl-datepicker__calendar--next',\n+    ACTIONS: 'mdl-datepicker__actions',\n+    ACTION_CANCEL: 'mdl-datepicker__cancel',\n+    ACTION_OK: 'mdl-datepicker__ok'\n+  };\n+\n+  MaterialDatePicker.prototype.isInitialized_ = null;\n+  MaterialDatePicker.prototype.currentDate_ = null;\n+  MaterialDatePicker.prototype.selectedDate_ = null;\n+  MaterialDatePicker.prototype.pickedDate_ = null;\n+  MaterialDatePicker.prototype.minDate_ = null;\n+  MaterialDatePicker.prototype.maxDate_ = null;\n+\n+  /**\n+   * Trigger date picker internal events\n+   *\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.triggerEvent_ = function(eventName) {\n+    var evt = document.createEvent('Events');\n+    evt.initEvent(eventName, false, false);\n+    this.element_.dispatchEvent(evt);\n+  };\n+\n+  /**\n+   * Cancel action click handler\n+   *\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.cancelHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    this.close();\n+    this.pickedDate_.setFullYear(this.selectedDate_.getFullYear());\n+    this.pickedDate_.setMonth(this.selectedDate_.getMonth());\n+    this.pickedDate_.setDate(this.selectedDate_.getDate());\n+    this.updateHeader_();\n+    this.updateMonthTitle_();\n+    this.changeCurrentMonth_(this.pickedDate_);\n+    if (this.element_.classList.contains(this.CssClasses_.YEAR_PICKER)) {\n+      this.element_.classList.remove(this.CssClasses_.YEAR_PICKER);\n+    }\n+  };\n+\n+  /**\n+   * Ok action click handler\n+   *\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.okHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    this.selectedDate_.setFullYear(this.pickedDate_.getFullYear());\n+    this.selectedDate_.setMonth(this.pickedDate_.getMonth());\n+    this.selectedDate_.setDate(this.pickedDate_.getDate());\n+    if (this.input_) {\n+      this.input_.value = this.formatInputDate_(this.selectedDate_);\n+      if (this.element_.MaterialTextfield) {\n+        this.element_.MaterialTextfield.checkValidity();\n+      }\n+    }\n+    this.element_.classList.add(this.CssClasses_.IS_DIRTY);\n+    if (this.element_.classList.contains(this.CssClasses_.YEAR_PICKER)) {\n+      this.element_.classList.remove(this.CssClasses_.YEAR_PICKER);\n+    }\n+    this.triggerEvent_('change');\n+    this.close();\n+  };\n+\n+  /**\n+   * Date picker input focus handler\n+   *\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.inputFocusHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    this.input_.blur();\n+    this.open();\n+  };\n+\n+  /**\n+   * Date picker input blur handler\n+   *\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.inputBlurHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+  };\n+\n+  /**\n+   * Header year click handler\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.headerYearClickHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    if (!this.element_.classList.contains(this.CssClasses_.YEAR_PICKER)) {\n+      this.element_.classList.add(this.CssClasses_.YEAR_PICKER);\n+      var selectedYear = this.yearPickerElement_.querySelector('.' + this.CssClasses_.YEAR_SELECTED);\n+\n+      if (selectedYear) {\n+        var focusYear = selectedYear;\n+\n+        for (var i = 0; i < 3; i++) {\n+          if (focusYear.previousElementSibling) {\n+            focusYear = focusYear.previousElementSibling;\n+          }\n+        }\n+        focusYear.parentNode.scrollTop = focusYear.offsetTop;\n+      }\n+    }\n+  };\n+\n+  /**\n+   * Header date click handler\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.headerDateClickHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    if (this.element_.classList.contains(this.CssClasses_.YEAR_PICKER)) {\n+      this.element_.classList.remove(this.CssClasses_.YEAR_PICKER);\n+    }\n+  };\n+\n+  /**\n+   * Picker year click handler\n+   * @private\n+   * @param  {Event} e\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.pickYearHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+\n+    var selectedYear = this.yearPickerElement_.querySelector('.' + this.CssClasses_.YEAR_SELECTED);\n+    if (selectedYear && selectedYear.classList.contains(this.CssClasses_.YEAR_SELECTED)) {\n+      selectedYear.classList.remove(this.CssClasses_.YEAR_SELECTED);\n+    }\n+    var currentYear = e.target;\n+    currentYear.classList.add(this.CssClasses_.YEAR_SELECTED);\n+    var currentYearInt = parseInt(currentYear.getAttribute('data-year'), 10);\n+\n+    this.pickedDate_.setFullYear(currentYearInt);\n+    var pickedDate = new Date(this.pickedDate_.getTime());\n+    if (!this.isInRange_(pickedDate)) {\n+      if (this.minDate_ && !this.maxDate_ && pickedDate.getTime() < this.minDate_.getTime()) {\n+        pickedDate.setFullYear(this.minDate_.getFullYear());\n+        pickedDate.setMonth(this.minDate_.getMonth());\n+        pickedDate.setDate(this.minDate_.getDate());\n+      } else if (!this.minDate_ && this.maxDate_ && pickedDate.getTime() > this.maxDate_.getTime()) {\n+        pickedDate.setFullYear(this.maxDate_.getFullYear());\n+        pickedDate.setMonth(this.maxDate_.getMonth());\n+        pickedDate.setDate(this.maxDate_.getDate());\n+      } else {\n+        pickedDate.setFullYear(this.minDate_.getFullYear());\n+        pickedDate.setMonth(this.minDate_.getMonth());\n+        pickedDate.setDate(this.minDate_.getDate());\n+      }\n+\n+      this.pickedDate_.setFullYear(pickedDate.getFullYear());\n+      this.pickedDate_.setMonth(pickedDate.getMonth());\n+      this.pickedDate_.setDate(pickedDate.getDate());\n+    }\n+\n+    this.currentMonth_.setFullYear(currentYearInt);\n+    this.currentMonth_.setMonth(this.pickedDate_.getMonth());\n+    this.currentMonth_.setDate(this.pickedDate_.getDate());\n+\n+    this.updateHeader_();\n+    this.updateMonthTitle_();\n+    this.changeCurrentMonth_(this.currentMonth_);\n+  };\n+\n+  /**\n+   * Select date action click handler\n+   *\n+   * @private\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.pickDateHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    var previousDate = this.calendarElement_.querySelector(\n+      '.' + this.CssClasses_.DATE +\n+      '.' + this.CssClasses_.DATE_SELECTED\n+    );\n+\n+    if (previousDate) {\n+      previousDate.classList.remove(this.CssClasses_.DATE_SELECTED);\n+    }\n+\n+    // Select current date\n+    var pickedDate = e.target;\n+    var pickedDateInt = pickedDate.getAttribute('data-date');\n+    pickedDate.classList.add(this.CssClasses_.DATE_SELECTED);\n+\n+    var nextPickedDate = new Date(this.pickedDate_.getTime());\n+    nextPickedDate.setFullYear(this.currentMonth_.getFullYear());\n+    nextPickedDate.setMonth(this.currentMonth_.getMonth());\n+    nextPickedDate.setDate(pickedDateInt);\n+\n+    if (this.isInRange_(nextPickedDate)) {\n+      this.pickedDate_.setFullYear(this.currentMonth_.getFullYear());\n+      this.pickedDate_.setMonth(this.currentMonth_.getMonth());\n+      this.pickedDate_.setDate(pickedDateInt);\n+      this.updateHeader_();\n+      this.updateYearPicker_();\n+    }\n+  };\n+\n+  /**\n+   * Previous date picker month handler\n+   * @param  {Event} e\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.previousMonthHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    var previousMonth = new Date(this.currentMonth_.getTime());\n+    previousMonth.setDate(1);\n+    previousMonth.setMonth(this.currentMonth_.getMonth() - 1);\n+    this.changeCurrentMonth_(previousMonth);\n+  };\n+\n+  /**\n+   * Next date picker month handler\n+   * @param  {Event} e\n+   * @return {void}\n+   */\n+  MaterialDatePicker.prototype.nextMonthHandler_ = function(e) {\n+    e.preventDefault();\n+    e.stopPropagation();\n+    e.stopImmediatePropagation();\n+    var nextMonth = new Date(this.currentMonth_.getTime());\n+    nextMonth.setDate(1);\n+    nextMonth.setMonth(nextMonth.getMonth() + 1);\n+    this.changeCurrentMonth_(nextMonth);\n+  };\n+\n+  /**\n+   * Format given date for input value\n+   * @param  {Date}     dateObject\n+   * @return {string}\n+   */\n+  MaterialDatePicker.prototype.formatInputDate_ = function(dateObject) {\n+    var dateFormatted;\n+\n+    // If guven format is actually function,\n+    // execute in global scope with selected date as parameter\n+    if (typeof this.settings.format === 'function') {\n+      var formatFunction = this.settings.format;\n+      var selectedDate = this.selectedDate_;\n+      return formatFunction.call(window, selectedDate);\n+    }\n+\n+    /**\n+     * Append leading zero if necessary\n+     * @param {number} number\n+     * @return {string}\n+     */\n+    var addLeadingZero = function(number) {\n+      return ('0' + number).substr(-2, 2);","path":"src/pickers/datepicker.js","position":423,"original_position":423,"commit_id":"401c9e19f280e4ff11d9d7d97a7bbdcd529afcab","original_commit_id":"401c9e19f280e4ff11d9d7d97a7bbdcd529afcab","user":{"login":"sgomes","id":409615,"avatar_url":"https://avatars.githubusercontent.com/u/409615?v=3","gravatar_id":"","url":"https://api.github.com/users/sgomes","html_url":"https://github.com/sgomes","followers_url":"https://api.github.com/users/sgomes/followers","following_url":"https://api.github.com/users/sgomes/following{/other_user}","gists_url":"https://api.github.com/users/sgomes/gists{/gist_id}","starred_url":"https://api.github.com/users/sgomes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgomes/subscriptions","organizations_url":"https://api.github.com/users/sgomes/orgs","repos_url":"https://api.github.com/users/sgomes/repos","events_url":"https://api.github.com/users/sgomes/events{/privacy}","received_events_url":"https://api.github.com/users/sgomes/received_events","type":"User","site_admin":false},"body":"It's amazing how it's 2016 and we still have to code this by hand... ;-)","created_at":"2016-03-03T15:14:23Z","updated_at":"2016-03-03T15:14:23Z","html_url":"https://github.com/google/material-design-lite/pull/4156#discussion_r54892929","pull_request_url":"https://api.github.com/repos/google/material-design-lite/pulls/4156","_links":{"self":{"href":"https://api.github.com/repos/google/material-design-lite/pulls/comments/54892929"},"html":{"href":"https://github.com/google/material-design-lite/pull/4156#discussion_r54892929"},"pull_request":{"href":"https://api.github.com/repos/google/material-design-lite/pulls/4156"}}},"pull_request":{"url":"https://api.github.com/repos/google/material-design-lite/pulls/4156","id":60676494,"html_url":"https://github.com/google/material-design-lite/pull/4156","diff_url":"https://github.com/google/material-design-lite/pull/4156.diff","patch_url":"https://github.com/google/material-design-lite/pull/4156.patch","issue_url":"https://api.github.com/repos/google/material-design-lite/issues/4156","number":4156,"state":"open","locked":false,"title":"Date picker","user":{"login":"dgrubelic","id":1304876,"avatar_url":"https://avatars.githubusercontent.com/u/1304876?v=3","gravatar_id":"","url":"https://api.github.com/users/dgrubelic","html_url":"https://github.com/dgrubelic","followers_url":"https://api.github.com/users/dgrubelic/followers","following_url":"https://api.github.com/users/dgrubelic/following{/other_user}","gists_url":"https://api.github.com/users/dgrubelic/gists{/gist_id}","starred_url":"https://api.github.com/users/dgrubelic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgrubelic/subscriptions","organizations_url":"https://api.github.com/users/dgrubelic/orgs","repos_url":"https://api.github.com/users/dgrubelic/repos","events_url":"https://api.github.com/users/dgrubelic/events{/privacy}","received_events_url":"https://api.github.com/users/dgrubelic/received_events","type":"User","site_admin":false},"body":"I decided to submit PR without previous/next month slide since there are a lot of users out there who require this component and i believe that this is not crucial feature.","created_at":"2016-02-25T13:15:55Z","updated_at":"2016-03-03T15:14:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d64bd71f7ca9251e7fef736a6425a02f923f19c3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/google/material-design-lite/pulls/4156/commits","review_comments_url":"https://api.github.com/repos/google/material-design-lite/pulls/4156/comments","review_comment_url":"https://api.github.com/repos/google/material-design-lite/pulls/comments{/number}","comments_url":"https://api.github.com/repos/google/material-design-lite/issues/4156/comments","statuses_url":"https://api.github.com/repos/google/material-design-lite/statuses/401c9e19f280e4ff11d9d7d97a7bbdcd529afcab","head":{"label":"dgrubelic:datepicker","ref":"datepicker","sha":"401c9e19f280e4ff11d9d7d97a7bbdcd529afcab","user":{"login":"dgrubelic","id":1304876,"avatar_url":"https://avatars.githubusercontent.com/u/1304876?v=3","gravatar_id":"","url":"https://api.github.com/users/dgrubelic","html_url":"https://github.com/dgrubelic","followers_url":"https://api.github.com/users/dgrubelic/followers","following_url":"https://api.github.com/users/dgrubelic/following{/other_user}","gists_url":"https://api.github.com/users/dgrubelic/gists{/gist_id}","starred_url":"https://api.github.com/users/dgrubelic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgrubelic/subscriptions","organizations_url":"https://api.github.com/users/dgrubelic/orgs","repos_url":"https://api.github.com/users/dgrubelic/repos","events_url":"https://api.github.com/users/dgrubelic/events{/privacy}","received_events_url":"https://api.github.com/users/dgrubelic/received_events","type":"User","site_admin":false},"repo":{"id":51299492,"name":"material-design-lite","full_name":"dgrubelic/material-design-lite","owner":{"login":"dgrubelic","id":1304876,"avatar_url":"https://avatars.githubusercontent.com/u/1304876?v=3","gravatar_id":"","url":"https://api.github.com/users/dgrubelic","html_url":"https://github.com/dgrubelic","followers_url":"https://api.github.com/users/dgrubelic/followers","following_url":"https://api.github.com/users/dgrubelic/following{/other_user}","gists_url":"https://api.github.com/users/dgrubelic/gists{/gist_id}","starred_url":"https://api.github.com/users/dgrubelic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgrubelic/subscriptions","organizations_url":"https://api.github.com/users/dgrubelic/orgs","repos_url":"https://api.github.com/users/dgrubelic/repos","events_url":"https://api.github.com/users/dgrubelic/events{/privacy}","received_events_url":"https://api.github.com/users/dgrubelic/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dgrubelic/material-design-lite","description":"Material Design Lite Components in HTML/CSS/JS","fork":true,"url":"https://api.github.com/repos/dgrubelic/material-design-lite","forks_url":"https://api.github.com/repos/dgrubelic/material-design-lite/forks","keys_url":"https://api.github.com/repos/dgrubelic/material-design-lite/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dgrubelic/material-design-lite/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dgrubelic/material-design-lite/teams","hooks_url":"https://api.github.com/repos/dgrubelic/material-design-lite/hooks","issue_events_url":"https://api.github.com/repos/dgrubelic/material-design-lite/issues/events{/number}","events_url":"https://api.github.com/repos/dgrubelic/material-design-lite/events","assignees_url":"https://api.github.com/repos/dgrubelic/material-design-lite/assignees{/user}","branches_url":"https://api.github.com/repos/dgrubelic/material-design-lite/branches{/branch}","tags_url":"https://api.github.com/repos/dgrubelic/material-design-lite/tags","blobs_url":"https://api.github.com/repos/dgrubelic/material-design-lite/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dgrubelic/material-design-lite/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dgrubelic/material-design-lite/git/refs{/sha}","trees_url":"https://api.github.com/repos/dgrubelic/material-design-lite/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dgrubelic/material-design-lite/statuses/{sha}","languages_url":"https://api.github.com/repos/dgrubelic/material-design-lite/languages","stargazers_url":"https://api.github.com/repos/dgrubelic/material-design-lite/stargazers","contributors_url":"https://api.github.com/repos/dgrubelic/material-design-lite/contributors","subscribers_url":"https://api.github.com/repos/dgrubelic/material-design-lite/subscribers","subscription_url":"https://api.github.com/repos/dgrubelic/material-design-lite/subscription","commits_url":"https://api.github.com/repos/dgrubelic/material-design-lite/commits{/sha}","git_commits_url":"https://api.github.com/repos/dgrubelic/material-design-lite/git/commits{/sha}","comments_url":"https://api.github.com/repos/dgrubelic/material-design-lite/comments{/number}","issue_comment_url":"https://api.github.com/repos/dgrubelic/material-design-lite/issues/comments{/number}","contents_url":"https://api.github.com/repos/dgrubelic/material-design-lite/contents/{+path}","compare_url":"https://api.github.com/repos/dgrubelic/material-design-lite/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dgrubelic/material-design-lite/merges","archive_url":"https://api.github.com/repos/dgrubelic/material-design-lite/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dgrubelic/material-design-lite/downloads","issues_url":"https://api.github.com/repos/dgrubelic/material-design-lite/issues{/number}","pulls_url":"https://api.github.com/repos/dgrubelic/material-design-lite/pulls{/number}","milestones_url":"https://api.github.com/repos/dgrubelic/material-design-lite/milestones{/number}","notifications_url":"https://api.github.com/repos/dgrubelic/material-design-lite/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dgrubelic/material-design-lite/labels{/name}","releases_url":"https://api.github.com/repos/dgrubelic/material-design-lite/releases{/id}","deployments_url":"https://api.github.com/repos/dgrubelic/material-design-lite/deployments","created_at":"2016-02-08T13:29:39Z","updated_at":"2016-02-11T18:51:00Z","pushed_at":"2016-03-02T12:54:30Z","git_url":"git://github.com/dgrubelic/material-design-lite.git","ssh_url":"git@github.com:dgrubelic/material-design-lite.git","clone_url":"https://github.com/dgrubelic/material-design-lite.git","svn_url":"https://github.com/dgrubelic/material-design-lite","homepage":"http://getmdl.io","size":54885,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"google:master","ref":"master","sha":"027e05164202d938571c358565b14528d74ed792","user":{"login":"google","id":1342004,"avatar_url":"https://avatars.githubusercontent.com/u/1342004?v=3","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"repo":{"id":29268051,"name":"material-design-lite","full_name":"google/material-design-lite","owner":{"login":"google","id":1342004,"avatar_url":"https://avatars.githubusercontent.com/u/1342004?v=3","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/google/material-design-lite","description":"Material Design Lite Components in HTML/CSS/JS","fork":false,"url":"https://api.github.com/repos/google/material-design-lite","forks_url":"https://api.github.com/repos/google/material-design-lite/forks","keys_url":"https://api.github.com/repos/google/material-design-lite/keys{/key_id}","collaborators_url":"https://api.github.com/repos/google/material-design-lite/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/google/material-design-lite/teams","hooks_url":"https://api.github.com/repos/google/material-design-lite/hooks","issue_events_url":"https://api.github.com/repos/google/material-design-lite/issues/events{/number}","events_url":"https://api.github.com/repos/google/material-design-lite/events","assignees_url":"https://api.github.com/repos/google/material-design-lite/assignees{/user}","branches_url":"https://api.github.com/repos/google/material-design-lite/branches{/branch}","tags_url":"https://api.github.com/repos/google/material-design-lite/tags","blobs_url":"https://api.github.com/repos/google/material-design-lite/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/google/material-design-lite/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/google/material-design-lite/git/refs{/sha}","trees_url":"https://api.github.com/repos/google/material-design-lite/git/trees{/sha}","statuses_url":"https://api.github.com/repos/google/material-design-lite/statuses/{sha}","languages_url":"https://api.github.com/repos/google/material-design-lite/languages","stargazers_url":"https://api.github.com/repos/google/material-design-lite/stargazers","contributors_url":"https://api.github.com/repos/google/material-design-lite/contributors","subscribers_url":"https://api.github.com/repos/google/material-design-lite/subscribers","subscription_url":"https://api.github.com/repos/google/material-design-lite/subscription","commits_url":"https://api.github.com/repos/google/material-design-lite/commits{/sha}","git_commits_url":"https://api.github.com/repos/google/material-design-lite/git/commits{/sha}","comments_url":"https://api.github.com/repos/google/material-design-lite/comments{/number}","issue_comment_url":"https://api.github.com/repos/google/material-design-lite/issues/comments{/number}","contents_url":"https://api.github.com/repos/google/material-design-lite/contents/{+path}","compare_url":"https://api.github.com/repos/google/material-design-lite/compare/{base}...{head}","merges_url":"https://api.github.com/repos/google/material-design-lite/merges","archive_url":"https://api.github.com/repos/google/material-design-lite/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/google/material-design-lite/downloads","issues_url":"https://api.github.com/repos/google/material-design-lite/issues{/number}","pulls_url":"https://api.github.com/repos/google/material-design-lite/pulls{/number}","milestones_url":"https://api.github.com/repos/google/material-design-lite/milestones{/number}","notifications_url":"https://api.github.com/repos/google/material-design-lite/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/google/material-design-lite/labels{/name}","releases_url":"https://api.github.com/repos/google/material-design-lite/releases{/id}","deployments_url":"https://api.github.com/repos/google/material-design-lite/deployments","created_at":"2015-01-14T22:01:33Z","updated_at":"2016-03-03T15:05:17Z","pushed_at":"2016-03-03T13:50:43Z","git_url":"git://github.com/google/material-design-lite.git","ssh_url":"git@github.com:google/material-design-lite.git","clone_url":"https://github.com/google/material-design-lite.git","svn_url":"https://github.com/google/material-design-lite","homepage":"http://getmdl.io","size":58021,"stargazers_count":19148,"watchers_count":19148,"language":"HTML","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":2885,"mirror_url":null,"open_issues_count":310,"forks":2885,"open_issues":310,"watchers":19148,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/google/material-design-lite/pulls/4156"},"html":{"href":"https://github.com/google/material-design-lite/pull/4156"},"issue":{"href":"https://api.github.com/repos/google/material-design-lite/issues/4156"},"comments":{"href":"https://api.github.com/repos/google/material-design-lite/issues/4156/comments"},"review_comments":{"href":"https://api.github.com/repos/google/material-design-lite/pulls/4156/comments"},"review_comment":{"href":"https://api.github.com/repos/google/material-design-lite/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/google/material-design-lite/pulls/4156/commits"},"statuses":{"href":"https://api.github.com/repos/google/material-design-lite/statuses/401c9e19f280e4ff11d9d7d97a7bbdcd529afcab"}}}}