{"action":"created","comment":{"url":"https://api.github.com/repos/EMCECS/clarity-react/pulls/comments/311968621","pull_request_review_id":272485960,"id":311968621,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMxMTk2ODYyMQ==","diff_hunk":"@@ -0,0 +1,423 @@\n+import * as React from \"react\";\n+import {Icon, Direction} from \"../../icon\";\n+import Moment from \"moment\";\n+import {classNames} from \"../../utils\";\n+\n+export type DatePickerProps = {\n+    value?: Date;\n+    locale?: string;\n+    defaultValue?: Date | string;\n+    onChange?: (newValue: string | Date) => void;\n+};\n+\n+export type DatePickerState = {\n+    isOpen: boolean;\n+    value: string;\n+    navValue: Moment.Moment;\n+    viewMode: ViewMode;\n+    inputFocused: boolean;\n+};\n+\n+enum ViewMode {\n+    Day,\n+    Month,\n+    Year,\n+}\n+\n+export class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n+    static defaultProps: DatePickerProps = {\n+        locale: \"en\",\n+    };\n+\n+    private calRef = React.createRef<HTMLDivElement>();\n+    private inputRef = React.createRef<HTMLInputElement>();\n+\n+    static validDate(date: Date) {\n+        if (isNaN(date.getTime())) return new Date();\n+        return date;\n+    }\n+\n+    state: DatePickerState = {\n+        viewMode: ViewMode.Day,\n+        isOpen: false, // prettier\n+        value: this.value,\n+        navValue:\n+            this.props.value !== undefined\n+                ? Moment(DatePicker.validDate(this.props.value))\n+                : Moment(this.props.defaultValue),\n+        inputFocused: false,\n+    };\n+\n+    get value() {\n+        const {value, defaultValue} = this.props;\n+        let result: string = \"\"; // in case we don't have a default or hard set value.\n+        if (value !== undefined) result = DatePicker.dateToString(value);\n+        if (defaultValue !== undefined) result = DatePicker.dateToString(defaultValue);\n+        return result;\n+    }\n+\n+    handleToggle() {\n+        this.toggle();\n+    }\n+\n+    toggle(isOpen = !this.state.isOpen) {\n+        this.setState(\n+            {\n+                isOpen: isOpen,\n+                viewMode: ViewMode.Day,\n+                navValue:\n+                    isOpen && this.state.value.length > 0\n+                        ? Moment(\n+                              DatePicker.validDate(new Date(this.state.value)),\n+                              Moment.localeData(this.props.locale).longDateFormat(\"L\"),\n+                          )\n+                        : this.state.navValue,\n+            },\n+            this.afterToggle,\n+        );\n+    }\n+\n+    afterToggle = () => {\n+        if (this.state.isOpen) this.subscribeDocumentClick();\n+        else this.unsubscribeDocumentClick();\n+    };\n+\n+    subscribeDocumentClick = () => {\n+        console.log(\"subscribe\");\n+        window.addEventListener(\"click\", this.handleDocumentClick as any, true);\n+    };\n+\n+    unsubscribeDocumentClick = () => {\n+        console.log(\"unsubscribe\");\n+        window.removeEventListener(\"click\", this.handleDocumentClick as any, true);\n+    };\n+\n+    handleDocumentClick = (evt: React.MouseEvent<HTMLElement>) => {\n+        if (!this.state.isOpen) return;\n+        const target = (evt.target as any) as HTMLElement;\n+        const el = this.calRef.current;\n+        if (!el || typeof el === \"string\") {\n+            console.warn(\"wrong element type\");\n+            return;\n+        }\n+        if (!el.contains(target)) {\n+            this.toggle(false);\n+        }\n+    };\n+\n+    handleSelectedDate(date: Date) {\n+        this.setState(\n+            {\n+                isOpen: false, // prettier\n+                value: DatePicker.dateToString(date),\n+                navValue: Moment(date),\n+            },\n+            this.afterSelectedDate,\n+        );\n+    }\n+\n+    afterSelectedDate = () => {\n+        this.inputRef.current!.focus();\n+        if (this.props.onChange) this.props.onChange(new Date(this.state.value));\n+    };\n+\n+    toggleViewMode(mode: ViewMode) {\n+        this.setState({viewMode: mode});\n+    }\n+\n+    toggleNavValueMonth(month: number) {\n+        const newValue = Moment(this.state.navValue);\n+        newValue.month(month);\n+        this.setState({viewMode: ViewMode.Day, navValue: newValue});\n+    }\n+\n+    toggleNavValueYear(year: number) {\n+        const newValue = Moment(this.state.navValue);\n+        newValue.year(year);\n+        this.setState({viewMode: ViewMode.Day, navValue: newValue});\n+    }\n+\n+    toggleNavValueYear10(year: number) {\n+        const newValue = Moment(this.state.navValue);\n+        newValue.year(newValue.year() + year);\n+        this.setState({navValue: newValue});\n+    }\n+\n+    toggleNavValue() {\n+        this.setState({viewMode: ViewMode.Day, navValue: Moment()});\n+    }\n+\n+    private static numDaysFromPrevMonth(year: number, month: number): number {\n+        let tempDate = Moment();\n+        tempDate.year(year);\n+        tempDate.month(month);\n+        tempDate.date(1);\n+        return tempDate.day();\n+    }\n+\n+    private static dateToString(date: Date | string, locale: string = \"en\"): string {\n+        if (typeof date === \"string\") return date;\n+        return Moment(date)\n+            .locale(locale)\n+            .format(\"L\");\n+    }\n+\n+    private handleInputChange = (evt: React.ChangeEvent<HTMLInputElement>) => {\n+        this.setState(\n+            {\n+                value: evt.target.value,\n+                navValue: Moment(\n+                    DatePicker.validDate(new Date(evt.target.value)),\n+                    Moment.localeData(this.props.locale).longDateFormat(\"L\"),\n+                ),\n+            },\n+            this.afterInputChange,\n+        );\n+    };\n+\n+    afterInputChange = () => {\n+        if (this.props.onChange) this.props.onChange(this.state.value);\n+    };\n+\n+    render() {\n+        const {isOpen, viewMode, navValue, inputFocused, value} = this.state;\n+        const {locale} = this.props;\n+        const navMonth = navValue.month();\n+        const navYear = navValue.year();\n+        const daysFromPrevMonth = DatePicker.numDaysFromPrevMonth(navYear, navMonth);\n+        let calendar = Moment()\n+            .year(navYear)\n+            .month(navMonth)\n+            .date(1)\n+            .subtract(daysFromPrevMonth, \"days\");\n+        const moment = Moment(value, Moment.localeData(locale).longDateFormat(\"L\"));\n+        const selectedSameMonth = moment.isSame(navValue, \"month\");\n+        return (\n+            <div ref={this.calRef} className=\"clr-control-container\">\n+                <div className=\"clr-input-wrapper\">\n+                    <div\n+                        className={classNames([\n+                            \"clr-input-group\", //prettier\n+                            inputFocused && \"clr-focus\",\n+                        ])}\n+                    >\n+                        <input\n+                            ref={this.inputRef}\n+                            type=\"text\"\n+                            className=\"clr-input\"\n+                            placeholder={Moment.localeData(locale).longDateFormat(\"L\")}\n+                            value={value}\n+                            onFocus={() => {\n+                                this.setState({inputFocused: true});\n+                            }}\n+                            onBlur={() => {\n+                                this.setState({inputFocused: false});\n+                            }}\n+                            onChange={this.handleInputChange}\n+                        />\n+                        <button\n+                            className=\"clr-input-group-icon-action\"\n+                            type=\"button\"\n+                            title=\"Open\"\n+                            onClick={this.handleToggle.bind(this)}\n+                        >\n+                            <Icon shape=\"calendar\" />\n+                        </button>\n+                        {isOpen && (\n+                            <div\n+                                className=\"datepicker\"\n+                                style={{\n+                                    position: \"absolute\",\n+                                    left: 0,\n+                                    bottom: \"auto\",\n+                                    right: \"auto\",\n+                                }}\n+                            >\n+                                {viewMode === ViewMode.Day && (\n+                                    <div className=\"daypicker\">\n+                                        <div className=\"calendar-header\">\n+                                            <div className=\"calendar-pickers\">\n+                                                <button\n+                                                    className=\"calendar-btn monthpicker-trigger\"\n+                                                    type=\"button\"\n+                                                    onClick={this.toggleViewMode.bind(this, ViewMode.Month)}\n+                                                >\n+                                                    {navValue.format(\"MMM\")}\n+                                                </button>\n+                                                <button\n+                                                    className=\"calendar-btn yearpicker-trigger\"\n+                                                    type=\"button\"\n+                                                    onClick={this.toggleViewMode.bind(this, ViewMode.Year)}\n+                                                >\n+                                                    {navValue.format(\"YYYY\")}\n+                                                </button>\n+                                            </div>\n+                                            <div className=\"calendar-switchers\">\n+                                                <button\n+                                                    className=\"calendar-btn switcher\"\n+                                                    type=\"button\"\n+                                                    onClick={this.toggleNavValueMonth.bind(this, navValue.month() - 1)}\n+                                                >\n+                                                    <Icon shape=\"angle\" dir={Direction.LEFT} />\n+                                                </button>\n+                                                <button\n+                                                    className=\"calendar-btn switcher\"\n+                                                    type=\"button\"\n+                                                    onClick={this.toggleNavValue.bind(this)}\n+                                                >\n+                                                    <Icon shape=\"event\" />\n+                                                </button>\n+                                                <button\n+                                                    className=\"calendar-btn switcher\"\n+                                                    type=\"button\"\n+                                                    onClick={this.toggleNavValueMonth.bind(this, navValue.month() + 1)}\n+                                                >\n+                                                    <Icon shape=\"angle\" dir={Direction.RIGHT} />\n+                                                </button>\n+                                            </div>\n+                                        </div>\n+                                        <table className=\"calendar-table weekdays\">\n+                                            <tbody>\n+                                                <tr className=\"calendar-row\">\n+                                                    {Moment.weekdaysShort(true).map((day: string) => {\n+                                                        return (\n+                                                            <td key={\"day_\" + day} className=\"calendar-cell weekday\">\n+                                                                {day.substring(0, 1)}\n+                                                            </td>\n+                                                        );\n+                                                    })}\n+                                                </tr>\n+                                            </tbody>\n+                                        </table>\n+                                        <table className=\"calendar-table calendar-dates\">\n+                                            <tbody>\n+                                                {[0, 1, 2, 3, 4, 5].map((row: number) => {\n+                                                    return (\n+                                                        <tr key={\"tr_\" + row} className=\"calendar-row\">\n+                                                            {[0, 1, 2, 3, 4, 5, 6].map((cell: number) => {\n+                                                                const isToday = calendar.isSame(Moment(), \"day\"); // are we on today?\n+                                                                const isSelected = calendar.isSame(moment, \"day\"); // are we on selected?\n+                                                                const isDisabled = !navValue.isSame(calendar, \"month\");\n+                                                                const day = (\n+                                                                    <td key={\"td_\" + cell} className=\"calendar-cell\">\n+                                                                        <div className=\"day\">\n+                                                                            <button\n+                                                                                type=\"button\"\n+                                                                                className={classNames([\n+                                                                                    \"day-btn\", // prettier\n+                                                                                    isSelected &&\n+                                                                                        !isToday &&\n+                                                                                        \"is-selected\",\n+                                                                                    isToday && \"is-today\",\n+                                                                                    isDisabled && \"is-disabled\",\n+                                                                                ])}\n+                                                                                tabIndex={\n+                                                                                    selectedSameMonth\n+                                                                                        ? isSelected\n+                                                                                            ? 0","path":"src/forms/datepicker/DatePicker.tsx","position":317,"original_position":317,"commit_id":"e49eca373a29647c059ef9fb82bb8eb6d5491f11","original_commit_id":"e49eca373a29647c059ef9fb82bb8eb6d5491f11","user":{"login":"alexander-rassanov","id":48440539,"node_id":"MDQ6VXNlcjQ4NDQwNTM5","avatar_url":"https://avatars0.githubusercontent.com/u/48440539?v=4","gravatar_id":"","url":"https://api.github.com/users/alexander-rassanov","html_url":"https://github.com/alexander-rassanov","followers_url":"https://api.github.com/users/alexander-rassanov/followers","following_url":"https://api.github.com/users/alexander-rassanov/following{/other_user}","gists_url":"https://api.github.com/users/alexander-rassanov/gists{/gist_id}","starred_url":"https://api.github.com/users/alexander-rassanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexander-rassanov/subscriptions","organizations_url":"https://api.github.com/users/alexander-rassanov/orgs","repos_url":"https://api.github.com/users/alexander-rassanov/repos","events_url":"https://api.github.com/users/alexander-rassanov/events{/privacy}","received_events_url":"https://api.github.com/users/alexander-rassanov/received_events","type":"User","site_admin":false},"body":"let's move out from here this condition","created_at":"2019-08-08T10:40:08Z","updated_at":"2019-08-08T10:40:08Z","html_url":"https://github.com/EMCECS/clarity-react/pull/11#discussion_r311968621","pull_request_url":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/EMCECS/clarity-react/pulls/comments/311968621"},"html":{"href":"https://github.com/EMCECS/clarity-react/pull/11#discussion_r311968621"},"pull_request":{"href":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11"}}},"pull_request":{"url":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11","id":278858583,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjc4ODU4NTgz","html_url":"https://github.com/EMCECS/clarity-react/pull/11","diff_url":"https://github.com/EMCECS/clarity-react/pull/11.diff","patch_url":"https://github.com/EMCECS/clarity-react/pull/11.patch","issue_url":"https://api.github.com/repos/EMCECS/clarity-react/issues/11","number":11,"state":"open","locked":false,"title":"Feature datepicker component","user":{"login":"ben-schumacher","id":12836110,"node_id":"MDQ6VXNlcjEyODM2MTEw","avatar_url":"https://avatars1.githubusercontent.com/u/12836110?v=4","gravatar_id":"","url":"https://api.github.com/users/ben-schumacher","html_url":"https://github.com/ben-schumacher","followers_url":"https://api.github.com/users/ben-schumacher/followers","following_url":"https://api.github.com/users/ben-schumacher/following{/other_user}","gists_url":"https://api.github.com/users/ben-schumacher/gists{/gist_id}","starred_url":"https://api.github.com/users/ben-schumacher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ben-schumacher/subscriptions","organizations_url":"https://api.github.com/users/ben-schumacher/orgs","repos_url":"https://api.github.com/users/ben-schumacher/repos","events_url":"https://api.github.com/users/ben-schumacher/events{/privacy}","received_events_url":"https://api.github.com/users/ben-schumacher/received_events","type":"User","site_admin":false},"body":"","created_at":"2019-05-14T21:28:22Z","updated_at":"2019-08-08T10:40:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ce60bb4675e8c90baaf08dcd588264c3f5b8fd32","assignee":null,"assignees":[],"requested_reviewers":[{"login":"spiegela","id":3212,"node_id":"MDQ6VXNlcjMyMTI=","avatar_url":"https://avatars2.githubusercontent.com/u/3212?v=4","gravatar_id":"","url":"https://api.github.com/users/spiegela","html_url":"https://github.com/spiegela","followers_url":"https://api.github.com/users/spiegela/followers","following_url":"https://api.github.com/users/spiegela/following{/other_user}","gists_url":"https://api.github.com/users/spiegela/gists{/gist_id}","starred_url":"https://api.github.com/users/spiegela/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spiegela/subscriptions","organizations_url":"https://api.github.com/users/spiegela/orgs","repos_url":"https://api.github.com/users/spiegela/repos","events_url":"https://api.github.com/users/spiegela/events{/privacy}","received_events_url":"https://api.github.com/users/spiegela/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11/commits","review_comments_url":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11/comments","review_comment_url":"https://api.github.com/repos/EMCECS/clarity-react/pulls/comments{/number}","comments_url":"https://api.github.com/repos/EMCECS/clarity-react/issues/11/comments","statuses_url":"https://api.github.com/repos/EMCECS/clarity-react/statuses/e49eca373a29647c059ef9fb82bb8eb6d5491f11","head":{"label":"EMCECS:feature-datepicker-component","ref":"feature-datepicker-component","sha":"e49eca373a29647c059ef9fb82bb8eb6d5491f11","user":{"login":"EMCECS","id":12926680,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyOTI2Njgw","avatar_url":"https://avatars2.githubusercontent.com/u/12926680?v=4","gravatar_id":"","url":"https://api.github.com/users/EMCECS","html_url":"https://github.com/EMCECS","followers_url":"https://api.github.com/users/EMCECS/followers","following_url":"https://api.github.com/users/EMCECS/following{/other_user}","gists_url":"https://api.github.com/users/EMCECS/gists{/gist_id}","starred_url":"https://api.github.com/users/EMCECS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EMCECS/subscriptions","organizations_url":"https://api.github.com/users/EMCECS/orgs","repos_url":"https://api.github.com/users/EMCECS/repos","events_url":"https://api.github.com/users/EMCECS/events{/privacy}","received_events_url":"https://api.github.com/users/EMCECS/received_events","type":"Organization","site_admin":false},"repo":{"id":177061883,"node_id":"MDEwOlJlcG9zaXRvcnkxNzcwNjE4ODM=","name":"clarity-react","full_name":"EMCECS/clarity-react","private":false,"owner":{"login":"EMCECS","id":12926680,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyOTI2Njgw","avatar_url":"https://avatars2.githubusercontent.com/u/12926680?v=4","gravatar_id":"","url":"https://api.github.com/users/EMCECS","html_url":"https://github.com/EMCECS","followers_url":"https://api.github.com/users/EMCECS/followers","following_url":"https://api.github.com/users/EMCECS/following{/other_user}","gists_url":"https://api.github.com/users/EMCECS/gists{/gist_id}","starred_url":"https://api.github.com/users/EMCECS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EMCECS/subscriptions","organizations_url":"https://api.github.com/users/EMCECS/orgs","repos_url":"https://api.github.com/users/EMCECS/repos","events_url":"https://api.github.com/users/EMCECS/events{/privacy}","received_events_url":"https://api.github.com/users/EMCECS/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/EMCECS/clarity-react","description":"React Components for VMware Clarity UI and Clarity Design","fork":false,"url":"https://api.github.com/repos/EMCECS/clarity-react","forks_url":"https://api.github.com/repos/EMCECS/clarity-react/forks","keys_url":"https://api.github.com/repos/EMCECS/clarity-react/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EMCECS/clarity-react/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EMCECS/clarity-react/teams","hooks_url":"https://api.github.com/repos/EMCECS/clarity-react/hooks","issue_events_url":"https://api.github.com/repos/EMCECS/clarity-react/issues/events{/number}","events_url":"https://api.github.com/repos/EMCECS/clarity-react/events","assignees_url":"https://api.github.com/repos/EMCECS/clarity-react/assignees{/user}","branches_url":"https://api.github.com/repos/EMCECS/clarity-react/branches{/branch}","tags_url":"https://api.github.com/repos/EMCECS/clarity-react/tags","blobs_url":"https://api.github.com/repos/EMCECS/clarity-react/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EMCECS/clarity-react/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EMCECS/clarity-react/git/refs{/sha}","trees_url":"https://api.github.com/repos/EMCECS/clarity-react/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EMCECS/clarity-react/statuses/{sha}","languages_url":"https://api.github.com/repos/EMCECS/clarity-react/languages","stargazers_url":"https://api.github.com/repos/EMCECS/clarity-react/stargazers","contributors_url":"https://api.github.com/repos/EMCECS/clarity-react/contributors","subscribers_url":"https://api.github.com/repos/EMCECS/clarity-react/subscribers","subscription_url":"https://api.github.com/repos/EMCECS/clarity-react/subscription","commits_url":"https://api.github.com/repos/EMCECS/clarity-react/commits{/sha}","git_commits_url":"https://api.github.com/repos/EMCECS/clarity-react/git/commits{/sha}","comments_url":"https://api.github.com/repos/EMCECS/clarity-react/comments{/number}","issue_comment_url":"https://api.github.com/repos/EMCECS/clarity-react/issues/comments{/number}","contents_url":"https://api.github.com/repos/EMCECS/clarity-react/contents/{+path}","compare_url":"https://api.github.com/repos/EMCECS/clarity-react/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EMCECS/clarity-react/merges","archive_url":"https://api.github.com/repos/EMCECS/clarity-react/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EMCECS/clarity-react/downloads","issues_url":"https://api.github.com/repos/EMCECS/clarity-react/issues{/number}","pulls_url":"https://api.github.com/repos/EMCECS/clarity-react/pulls{/number}","milestones_url":"https://api.github.com/repos/EMCECS/clarity-react/milestones{/number}","notifications_url":"https://api.github.com/repos/EMCECS/clarity-react/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EMCECS/clarity-react/labels{/name}","releases_url":"https://api.github.com/repos/EMCECS/clarity-react/releases{/id}","deployments_url":"https://api.github.com/repos/EMCECS/clarity-react/deployments","created_at":"2019-03-22T02:59:29Z","updated_at":"2019-08-07T18:35:35Z","pushed_at":"2019-08-07T18:35:38Z","git_url":"git://github.com/EMCECS/clarity-react.git","ssh_url":"git@github.com:EMCECS/clarity-react.git","clone_url":"https://github.com/EMCECS/clarity-react.git","svn_url":"https://github.com/EMCECS/clarity-react","homepage":null,"size":2103,"stargazers_count":4,"watchers_count":4,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":1,"watchers":4,"default_branch":"master"}},"base":{"label":"EMCECS:master","ref":"master","sha":"c8b1cd91039fe71f03480c999dfa3cb40923cf35","user":{"login":"EMCECS","id":12926680,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyOTI2Njgw","avatar_url":"https://avatars2.githubusercontent.com/u/12926680?v=4","gravatar_id":"","url":"https://api.github.com/users/EMCECS","html_url":"https://github.com/EMCECS","followers_url":"https://api.github.com/users/EMCECS/followers","following_url":"https://api.github.com/users/EMCECS/following{/other_user}","gists_url":"https://api.github.com/users/EMCECS/gists{/gist_id}","starred_url":"https://api.github.com/users/EMCECS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EMCECS/subscriptions","organizations_url":"https://api.github.com/users/EMCECS/orgs","repos_url":"https://api.github.com/users/EMCECS/repos","events_url":"https://api.github.com/users/EMCECS/events{/privacy}","received_events_url":"https://api.github.com/users/EMCECS/received_events","type":"Organization","site_admin":false},"repo":{"id":177061883,"node_id":"MDEwOlJlcG9zaXRvcnkxNzcwNjE4ODM=","name":"clarity-react","full_name":"EMCECS/clarity-react","private":false,"owner":{"login":"EMCECS","id":12926680,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyOTI2Njgw","avatar_url":"https://avatars2.githubusercontent.com/u/12926680?v=4","gravatar_id":"","url":"https://api.github.com/users/EMCECS","html_url":"https://github.com/EMCECS","followers_url":"https://api.github.com/users/EMCECS/followers","following_url":"https://api.github.com/users/EMCECS/following{/other_user}","gists_url":"https://api.github.com/users/EMCECS/gists{/gist_id}","starred_url":"https://api.github.com/users/EMCECS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EMCECS/subscriptions","organizations_url":"https://api.github.com/users/EMCECS/orgs","repos_url":"https://api.github.com/users/EMCECS/repos","events_url":"https://api.github.com/users/EMCECS/events{/privacy}","received_events_url":"https://api.github.com/users/EMCECS/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/EMCECS/clarity-react","description":"React Components for VMware Clarity UI and Clarity Design","fork":false,"url":"https://api.github.com/repos/EMCECS/clarity-react","forks_url":"https://api.github.com/repos/EMCECS/clarity-react/forks","keys_url":"https://api.github.com/repos/EMCECS/clarity-react/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EMCECS/clarity-react/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EMCECS/clarity-react/teams","hooks_url":"https://api.github.com/repos/EMCECS/clarity-react/hooks","issue_events_url":"https://api.github.com/repos/EMCECS/clarity-react/issues/events{/number}","events_url":"https://api.github.com/repos/EMCECS/clarity-react/events","assignees_url":"https://api.github.com/repos/EMCECS/clarity-react/assignees{/user}","branches_url":"https://api.github.com/repos/EMCECS/clarity-react/branches{/branch}","tags_url":"https://api.github.com/repos/EMCECS/clarity-react/tags","blobs_url":"https://api.github.com/repos/EMCECS/clarity-react/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EMCECS/clarity-react/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EMCECS/clarity-react/git/refs{/sha}","trees_url":"https://api.github.com/repos/EMCECS/clarity-react/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EMCECS/clarity-react/statuses/{sha}","languages_url":"https://api.github.com/repos/EMCECS/clarity-react/languages","stargazers_url":"https://api.github.com/repos/EMCECS/clarity-react/stargazers","contributors_url":"https://api.github.com/repos/EMCECS/clarity-react/contributors","subscribers_url":"https://api.github.com/repos/EMCECS/clarity-react/subscribers","subscription_url":"https://api.github.com/repos/EMCECS/clarity-react/subscription","commits_url":"https://api.github.com/repos/EMCECS/clarity-react/commits{/sha}","git_commits_url":"https://api.github.com/repos/EMCECS/clarity-react/git/commits{/sha}","comments_url":"https://api.github.com/repos/EMCECS/clarity-react/comments{/number}","issue_comment_url":"https://api.github.com/repos/EMCECS/clarity-react/issues/comments{/number}","contents_url":"https://api.github.com/repos/EMCECS/clarity-react/contents/{+path}","compare_url":"https://api.github.com/repos/EMCECS/clarity-react/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EMCECS/clarity-react/merges","archive_url":"https://api.github.com/repos/EMCECS/clarity-react/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EMCECS/clarity-react/downloads","issues_url":"https://api.github.com/repos/EMCECS/clarity-react/issues{/number}","pulls_url":"https://api.github.com/repos/EMCECS/clarity-react/pulls{/number}","milestones_url":"https://api.github.com/repos/EMCECS/clarity-react/milestones{/number}","notifications_url":"https://api.github.com/repos/EMCECS/clarity-react/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EMCECS/clarity-react/labels{/name}","releases_url":"https://api.github.com/repos/EMCECS/clarity-react/releases{/id}","deployments_url":"https://api.github.com/repos/EMCECS/clarity-react/deployments","created_at":"2019-03-22T02:59:29Z","updated_at":"2019-08-07T18:35:35Z","pushed_at":"2019-08-07T18:35:38Z","git_url":"git://github.com/EMCECS/clarity-react.git","ssh_url":"git@github.com:EMCECS/clarity-react.git","clone_url":"https://github.com/EMCECS/clarity-react.git","svn_url":"https://github.com/EMCECS/clarity-react","homepage":null,"size":2103,"stargazers_count":4,"watchers_count":4,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":1,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11"},"html":{"href":"https://github.com/EMCECS/clarity-react/pull/11"},"issue":{"href":"https://api.github.com/repos/EMCECS/clarity-react/issues/11"},"comments":{"href":"https://api.github.com/repos/EMCECS/clarity-react/issues/11/comments"},"review_comments":{"href":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11/comments"},"review_comment":{"href":"https://api.github.com/repos/EMCECS/clarity-react/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/EMCECS/clarity-react/pulls/11/commits"},"statuses":{"href":"https://api.github.com/repos/EMCECS/clarity-react/statuses/e49eca373a29647c059ef9fb82bb8eb6d5491f11"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"alexander-rassanov"}}