Upgrade to Flow 0.71
This commit is contained in:
parent
4a4f9f7107
commit
518015f55b
|
@ -35,7 +35,6 @@ module.file_ext=.json
|
||||||
esproposal.decorators=ignore
|
esproposal.decorators=ignore
|
||||||
esproposal.class_static_fields=enable
|
esproposal.class_static_fields=enable
|
||||||
esproposal.class_instance_fields=enable
|
esproposal.class_instance_fields=enable
|
||||||
unsafe.enable_getters_and_setters=true
|
|
||||||
|
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue
|
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children: React.Element<*>,
|
children: React.Node,
|
||||||
type?: 'info' | 'success' | 'warning' | 'danger' | 'offline',
|
type?: 'info' | 'success' | 'warning' | 'danger' | 'offline',
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Alert extends React.Component {
|
class Alert extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
defaultProps = {
|
defaultProps = {
|
||||||
type: 'info',
|
type: 'info',
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { Provider } from 'mobx-react';
|
import { Provider } from 'mobx-react';
|
||||||
import stores from 'stores';
|
import stores from 'stores';
|
||||||
import ApiKeysStore from 'stores/ApiKeysStore';
|
import ApiKeysStore from 'stores/ApiKeysStore';
|
||||||
|
@ -10,7 +10,7 @@ import IntegrationsStore from 'stores/IntegrationsStore';
|
||||||
import CacheStore from 'stores/CacheStore';
|
import CacheStore from 'stores/CacheStore';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children?: React.Element<any>,
|
children?: React.Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
let authenticatedStores;
|
let authenticatedStores;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
|
@ -7,7 +7,7 @@ import { color } from 'shared/styles/constants';
|
||||||
import placeholder from './placeholder.png';
|
import placeholder from './placeholder.png';
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Avatar extends Component {
|
class Avatar extends React.Component<*> {
|
||||||
@observable error: boolean;
|
@observable error: boolean;
|
||||||
|
|
||||||
handleError = () => {
|
handleError = () => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
import { darken, lighten } from 'polished';
|
import { darken, lighten } from 'polished';
|
||||||
|
@ -88,9 +88,9 @@ const Inner = styled.span`
|
||||||
export type Props = {
|
export type Props = {
|
||||||
type?: string,
|
type?: string,
|
||||||
value?: string,
|
value?: string,
|
||||||
icon?: React$Element<any>,
|
icon?: React.Node,
|
||||||
className?: string,
|
className?: string,
|
||||||
children?: React$Element<any>,
|
children?: React.Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function Button({
|
export default function Button({
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import breakpoint from 'styled-components-breakpoint';
|
import breakpoint from 'styled-components-breakpoint';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children?: React.Element<any>,
|
children?: React.Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
const Container = styled.div`
|
const Container = styled.div`
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import distanceInWordsToNow from 'date-fns/distance_in_words_to_now';
|
import distanceInWordsToNow from 'date-fns/distance_in_words_to_now';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { observable, computed, action } from 'mobx';
|
import { observable, computed, action } from 'mobx';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
@ -26,9 +26,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class ColorPicker extends React.Component {
|
class ColorPicker extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
@observable selectedColor: string = colors[0];
|
@observable selectedColor: string = colors[0];
|
||||||
@observable customColorValue: string = '';
|
@observable customColorValue: string = '';
|
||||||
@observable customColorSelected: boolean;
|
@observable customColorSelected: boolean;
|
||||||
|
@ -69,14 +67,14 @@ class ColorPicker extends React.Component {
|
||||||
};
|
};
|
||||||
|
|
||||||
@action
|
@action
|
||||||
focusOnCustomColor = (event: SyntheticEvent) => {
|
focusOnCustomColor = (event: SyntheticEvent<*>) => {
|
||||||
this.selectedColor = '';
|
this.selectedColor = '';
|
||||||
this.customColorSelected = true;
|
this.customColorSelected = true;
|
||||||
this.fireCallback();
|
this.fireCallback();
|
||||||
};
|
};
|
||||||
|
|
||||||
@action
|
@action
|
||||||
setCustomColor = (event: SyntheticEvent) => {
|
setCustomColor = (event: SyntheticEvent<*>) => {
|
||||||
let target = event.target;
|
let target = event.target;
|
||||||
if (target instanceof HTMLInputElement) {
|
if (target instanceof HTMLInputElement) {
|
||||||
const color = target.value;
|
const color = target.value;
|
||||||
|
|
|
@ -1,22 +1,20 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { PureComponent } from 'react';
|
import * as React from 'react';
|
||||||
import copy from 'copy-to-clipboard';
|
import copy from 'copy-to-clipboard';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
text: string,
|
text: string,
|
||||||
children?: React.Element<any>,
|
children?: React.Node,
|
||||||
onClick?: () => void,
|
onClick?: () => void,
|
||||||
onCopy: () => void,
|
onCopy: () => void,
|
||||||
};
|
};
|
||||||
|
|
||||||
class CopyToClipboard extends PureComponent {
|
class CopyToClipboard extends React.PureComponent<Props> {
|
||||||
props: Props;
|
onClick = (ev: SyntheticEvent<*>) => {
|
||||||
|
|
||||||
onClick = (ev: SyntheticEvent) => {
|
|
||||||
const { text, onCopy, children } = this.props;
|
const { text, onCopy, children } = this.props;
|
||||||
const elem = React.Children.only(children);
|
const elem = React.Children.only(children);
|
||||||
copy(text, {
|
copy(text, {
|
||||||
debug: __DEV__,
|
debug: !!__DEV__,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (onCopy) onCopy();
|
if (onCopy) onCopy();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import Document from 'models/Document';
|
import Document from 'models/Document';
|
||||||
import DocumentPreview from 'components/DocumentPreview';
|
import DocumentPreview from 'components/DocumentPreview';
|
||||||
import ArrowKeyNavigation from 'boundless-arrow-key-navigation';
|
import ArrowKeyNavigation from 'boundless-arrow-key-navigation';
|
||||||
|
|
||||||
class DocumentList extends React.Component {
|
type Props = {
|
||||||
props: {
|
documents: Document[],
|
||||||
documents: Document[],
|
showCollection?: boolean,
|
||||||
showCollection?: boolean,
|
limit?: number,
|
||||||
limit?: number,
|
};
|
||||||
};
|
|
||||||
|
|
||||||
|
class DocumentList extends React.Component<Props> {
|
||||||
render() {
|
render() {
|
||||||
const { limit, showCollection } = this.props;
|
const { limit, showCollection } = this.props;
|
||||||
const documents = limit
|
const documents = limit
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import Document from 'models/Document';
|
import Document from 'models/Document';
|
||||||
|
@ -89,16 +89,14 @@ const Actions = styled(Flex)`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DocumentPreview extends Component {
|
class DocumentPreview extends React.Component<Props> {
|
||||||
props: Props;
|
star = (ev: SyntheticEvent<*>) => {
|
||||||
|
|
||||||
star = (ev: SyntheticEvent) => {
|
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
this.props.document.star();
|
this.props.document.star();
|
||||||
};
|
};
|
||||||
|
|
||||||
unstar = (ev: SyntheticEvent) => {
|
unstar = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
this.props.document.unstar();
|
this.props.document.unstar();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import distanceInWordsToNow from 'date-fns/distance_in_words_to_now';
|
import distanceInWordsToNow from 'date-fns/distance_in_words_to_now';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
@ -17,13 +17,13 @@ const Modified = styled.span`
|
||||||
font-weight: ${props => (props.highlight ? '600' : '400')};
|
font-weight: ${props => (props.highlight ? '600' : '400')};
|
||||||
`;
|
`;
|
||||||
|
|
||||||
class PublishingInfo extends Component {
|
type Props = {
|
||||||
props: {
|
collection?: Collection,
|
||||||
collection?: Collection,
|
document: Document,
|
||||||
document: Document,
|
views?: number,
|
||||||
views?: number,
|
};
|
||||||
};
|
|
||||||
|
|
||||||
|
class PublishingInfo extends React.Component<Props> {
|
||||||
render() {
|
render() {
|
||||||
const { collection, document } = this.props;
|
const { collection, document } = this.props;
|
||||||
const {
|
const {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import Popover from 'components/Popover';
|
import Popover from 'components/Popover';
|
||||||
|
@ -27,11 +27,10 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DocumentViews extends Component {
|
class DocumentViews extends React.Component<Props> {
|
||||||
@observable opened: boolean = false;
|
@observable opened: boolean = false;
|
||||||
anchor: HTMLElement;
|
anchor: ?HTMLElement;
|
||||||
store: DocumentViewersStore;
|
store: DocumentViewersStore;
|
||||||
props: Props;
|
|
||||||
|
|
||||||
constructor(props: Props) {
|
constructor(props: Props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
@ -46,7 +45,7 @@ class DocumentViews extends Component {
|
||||||
this.opened = false;
|
this.opened = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
setRef = (ref: HTMLElement) => {
|
setRef = (ref: ?HTMLElement) => {
|
||||||
this.anchor = ref;
|
this.anchor = ref;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import map from 'lodash/map';
|
import map from 'lodash/map';
|
||||||
|
@ -26,9 +26,7 @@ const UserName = styled.span`
|
||||||
padding-left: 8px;
|
padding-left: 8px;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
class DocumentViewers extends Component {
|
class DocumentViewers extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.onMount();
|
this.props.onMount();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import { injectGlobal } from 'styled-components';
|
import { injectGlobal } from 'styled-components';
|
||||||
|
@ -12,7 +12,7 @@ import DocumentsStore from 'stores/DocumentsStore';
|
||||||
import LoadingIndicator from 'components/LoadingIndicator';
|
import LoadingIndicator from 'components/LoadingIndicator';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children?: React$Element<any>,
|
children?: React.Node,
|
||||||
collectionId: string,
|
collectionId: string,
|
||||||
documentId?: string,
|
documentId?: string,
|
||||||
activeClassName?: string,
|
activeClassName?: string,
|
||||||
|
@ -35,9 +35,8 @@ injectGlobal`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DropToImport extends Component {
|
class DropToImport extends React.Component<Props> {
|
||||||
@observable isImporting: boolean = false;
|
@observable isImporting: boolean = false;
|
||||||
props: Props;
|
|
||||||
|
|
||||||
onDropAccepted = async (files = []) => {
|
onDropAccepted = async (files = []) => {
|
||||||
this.isImporting = true;
|
this.isImporting = true;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import invariant from 'invariant';
|
import invariant from 'invariant';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
|
@ -10,22 +10,21 @@ import { color } from 'shared/styles/constants';
|
||||||
import { fadeAndScaleIn } from 'shared/styles/animations';
|
import { fadeAndScaleIn } from 'shared/styles/animations';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
label: React.Element<*>,
|
label: React.Node,
|
||||||
onOpen?: () => void,
|
onOpen?: () => void,
|
||||||
onClose?: () => void,
|
onClose?: () => void,
|
||||||
children?: React.Element<*>,
|
children?: React.Node,
|
||||||
className?: string,
|
className?: string,
|
||||||
style?: Object,
|
style?: Object,
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DropdownMenu extends Component {
|
class DropdownMenu extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable top: number;
|
@observable top: number;
|
||||||
@observable right: number;
|
@observable right: number;
|
||||||
|
|
||||||
handleOpen = (openPortal: SyntheticEvent => *) => {
|
handleOpen = (openPortal: (SyntheticEvent<*>) => *) => {
|
||||||
return (ev: SyntheticMouseEvent) => {
|
return (ev: SyntheticMouseEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const currentTarget = ev.currentTarget;
|
const currentTarget = ev.currentTarget;
|
||||||
invariant(document.body, 'why you not here');
|
invariant(document.body, 'why you not here');
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
onClick?: SyntheticEvent => void,
|
onClick?: (SyntheticEvent<*>) => *,
|
||||||
children?: React.Element<any>,
|
children?: React.Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
const DropdownMenuItem = ({ onClick, children, ...rest }: Props) => {
|
const DropdownMenuItem = ({ onClick, children, ...rest }: Props) => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,16 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import CenteredContent from 'components/CenteredContent';
|
import CenteredContent from 'components/CenteredContent';
|
||||||
import PageTitle from 'components/PageTitle';
|
import PageTitle from 'components/PageTitle';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children?: ?React.Element<any>,
|
children?: ?React.Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class ErrorBoundary extends Component {
|
class ErrorBoundary extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable error: boolean = false;
|
@observable error: boolean = false;
|
||||||
|
|
||||||
componentDidCatch(error: Error, info: Object) {
|
componentDidCatch(error: Error, info: Object) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import replace from 'string-replace-to-array';
|
import replace from 'string-replace-to-array';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
import { size, color } from 'shared/styles/constants';
|
import { size, color } from 'shared/styles/constants';
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { size } from 'shared/styles/constants';
|
import { size } from 'shared/styles/constants';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
label: React.Element<*> | string,
|
label: React.Node | string,
|
||||||
children: React.Element<*>,
|
children: React.Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
const Labeled = ({ label, children, ...props }: Props) => (
|
const Labeled = ({ label, children, ...props }: Props) => (
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { Switch, Route, withRouter } from 'react-router-dom';
|
import { Switch, Route, withRouter } from 'react-router-dom';
|
||||||
import type { Location } from 'react-router-dom';
|
import type { Location } from 'react-router-dom';
|
||||||
import { Helmet } from 'react-helmet';
|
import { Helmet } from 'react-helmet';
|
||||||
|
@ -27,17 +27,16 @@ type Props = {
|
||||||
history: Object,
|
history: Object,
|
||||||
location: Location,
|
location: Location,
|
||||||
documents: DocumentsStore,
|
documents: DocumentsStore,
|
||||||
children?: ?React.Element<any>,
|
children?: ?React.Node,
|
||||||
actions?: ?React.Element<any>,
|
actions?: ?React.Node,
|
||||||
title?: ?React.Element<any>,
|
title?: ?React.Node,
|
||||||
auth: AuthStore,
|
auth: AuthStore,
|
||||||
ui: UiStore,
|
ui: UiStore,
|
||||||
notifications?: React.Element<any>,
|
notifications?: React.Node,
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Layout extends React.Component {
|
class Layout extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
scrollable: ?HTMLDivElement;
|
scrollable: ?HTMLDivElement;
|
||||||
|
|
||||||
@keydown(['/', 't'])
|
@keydown(['/', 't'])
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class LoadingIndicator extends React.Component {
|
class LoadingIndicator extends React.Component<*> {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.ui.enableProgressBar();
|
this.props.ui.enableProgressBar();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled, { keyframes } from 'styled-components';
|
import styled, { keyframes } from 'styled-components';
|
||||||
|
|
||||||
const LoadingIndicatorBar = () => {
|
const LoadingIndicatorBar = () => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import Mask from './components/Mask';
|
import Mask from './components/Mask';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import Mask from './components/Mask';
|
import Mask from './components/Mask';
|
||||||
import Fade from 'components/Fade';
|
import Fade from 'components/Fade';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { pulsate } from 'shared/styles/animations';
|
import { pulsate } from 'shared/styles/animations';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
import { randomInteger } from 'shared/random';
|
import { randomInteger } from 'shared/random';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
||||||
class Mask extends Component {
|
class Mask extends React.Component<*> {
|
||||||
width: number;
|
width: number;
|
||||||
|
|
||||||
shouldComponentUpdate() {
|
shouldComponentUpdate() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import styled, { injectGlobal } from 'styled-components';
|
import styled, { injectGlobal } from 'styled-components';
|
||||||
import breakpoint from 'styled-components-breakpoint';
|
import breakpoint from 'styled-components-breakpoint';
|
||||||
|
@ -10,10 +10,10 @@ import { fadeAndScaleIn } from 'shared/styles/animations';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children?: React$Element<any>,
|
children?: React.Node,
|
||||||
isOpen: boolean,
|
isOpen: boolean,
|
||||||
title?: string,
|
title?: string,
|
||||||
onRequestClose: () => void,
|
onRequestClose: () => *,
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import BaseModal from 'components/Modal';
|
import BaseModal from 'components/Modal';
|
||||||
import UiStore from 'stores/UiStore';
|
import UiStore from 'stores/UiStore';
|
||||||
|
@ -9,12 +9,11 @@ import CollectionDelete from 'scenes/CollectionDelete';
|
||||||
import DocumentDelete from 'scenes/DocumentDelete';
|
import DocumentDelete from 'scenes/DocumentDelete';
|
||||||
import KeyboardShortcuts from 'scenes/KeyboardShortcuts';
|
import KeyboardShortcuts from 'scenes/KeyboardShortcuts';
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
ui: UiStore,
|
||||||
|
};
|
||||||
@observer
|
@observer
|
||||||
class Modals extends Component {
|
class Modals extends React.Component<Props> {
|
||||||
props: {
|
|
||||||
ui: UiStore,
|
|
||||||
};
|
|
||||||
|
|
||||||
handleClose = () => {
|
handleClose = () => {
|
||||||
this.props.ui.clearActiveModal();
|
this.props.ui.clearActiveModal();
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { Helmet } from 'react-helmet';
|
import { Helmet } from 'react-helmet';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import BoundlessPopover from 'boundless-popover';
|
import BoundlessPopover from 'boundless-popover';
|
||||||
import styled, { keyframes } from 'styled-components';
|
import styled, { keyframes } from 'styled-components';
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { inject } from 'mobx-react';
|
import { inject } from 'mobx-react';
|
||||||
import { Route } from 'react-router-dom';
|
import { Route } from 'react-router-dom';
|
||||||
import UiStore from 'stores/UiStore';
|
import UiStore from 'stores/UiStore';
|
||||||
|
|
||||||
class RouteSidebarHidden extends Component {
|
type Props = {
|
||||||
props: {
|
ui: UiStore,
|
||||||
ui: UiStore,
|
component: *,
|
||||||
component: any,
|
};
|
||||||
};
|
|
||||||
|
|
||||||
|
class RouteSidebarHidden extends React.Component<Props> {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.ui.enableEditMode();
|
this.props.ui.enableEditMode();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
// @flow
|
// @flow
|
||||||
// based on: https://reacttraining.com/react-router/web/guides/scroll-restoration
|
// based on: https://reacttraining.com/react-router/web/guides/scroll-restoration
|
||||||
import { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
|
|
||||||
class ScrollToTop extends Component {
|
class ScrollToTop extends React.Component<*> {
|
||||||
componentDidUpdate(prevProps) {
|
componentDidUpdate(prevProps) {
|
||||||
if (this.props.location !== prevProps.location) {
|
if (this.props.location !== prevProps.location) {
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import type { Location } from 'react-router-dom';
|
import type { Location } from 'react-router-dom';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
|
@ -26,9 +26,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class MainSidebar extends Component {
|
class MainSidebar extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
handleCreateCollection = () => {
|
handleCreateCollection = () => {
|
||||||
this.props.ui.setActiveModal('collection-new');
|
this.props.ui.setActiveModal('collection-new');
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import { ProfileIcon, SettingsIcon, CodeIcon, UserIcon } from 'outline-icons';
|
import { ProfileIcon, SettingsIcon, CodeIcon, UserIcon } from 'outline-icons';
|
||||||
|
|
||||||
|
@ -17,9 +17,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class SettingsSidebar extends Component {
|
class SettingsSidebar extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
returnToDashboard = () => {
|
returnToDashboard = () => {
|
||||||
this.props.history.push('/');
|
this.props.history.push('/');
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import type { Location } from 'react-router-dom';
|
import type { Location } from 'react-router-dom';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
@ -14,7 +14,7 @@ import DocumentsStore from 'stores/DocumentsStore';
|
||||||
import UiStore from 'stores/UiStore';
|
import UiStore from 'stores/UiStore';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children: React.Element<any>,
|
children: React.Node,
|
||||||
history: Object,
|
history: Object,
|
||||||
location: Location,
|
location: Location,
|
||||||
auth: AuthStore,
|
auth: AuthStore,
|
||||||
|
@ -23,9 +23,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Sidebar extends Component {
|
class Sidebar extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
componentWillReceiveProps = (nextProps: Props) => {
|
componentWillReceiveProps = (nextProps: Props) => {
|
||||||
if (this.props.location !== nextProps.location) {
|
if (this.props.location !== nextProps.location) {
|
||||||
this.props.ui.hideMobileSidebar();
|
this.props.ui.hideMobileSidebar();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import type { Location } from 'react-router-dom';
|
import type { Location } from 'react-router-dom';
|
||||||
|
@ -30,9 +30,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Collections extends Component {
|
class Collections extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { history, location, collections, ui, documents } = this.props;
|
const { history, location, collections, ui, documents } = this.props;
|
||||||
|
|
||||||
|
@ -73,7 +71,7 @@ type CollectionLinkProps = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class CollectionLink extends Component {
|
class CollectionLink extends React.Component<*> {
|
||||||
props: CollectionLinkProps;
|
props: CollectionLinkProps;
|
||||||
|
|
||||||
@observable menuOpen = false;
|
@observable menuOpen = false;
|
||||||
|
@ -168,7 +166,7 @@ const DocumentLink = observer(
|
||||||
isActiveDocument)
|
isActiveDocument)
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleMouseEnter = (event: SyntheticEvent) => {
|
const handleMouseEnter = (event: SyntheticEvent<*>) => {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
prefetchDocument(document.id);
|
prefetchDocument(document.id);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable, action } from 'mobx';
|
import { observable, action } from 'mobx';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import { NavLink } from 'react-router-dom';
|
import { NavLink } from 'react-router-dom';
|
||||||
|
@ -47,19 +47,18 @@ const StyledDiv = StyledNavLink.withComponent('div');
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
to?: string,
|
to?: string,
|
||||||
onClick?: SyntheticEvent => *,
|
onClick?: (SyntheticEvent<*>) => *,
|
||||||
children?: React$Element<*>,
|
children?: React.Node,
|
||||||
icon?: React$Element<*>,
|
icon?: React.Node,
|
||||||
expand?: boolean,
|
expand?: boolean,
|
||||||
expandedContent?: React$Element<*>,
|
expandedContent?: React.Node,
|
||||||
hideExpandToggle?: boolean,
|
hideExpandToggle?: boolean,
|
||||||
iconColor?: string,
|
iconColor?: string,
|
||||||
active?: boolean,
|
active?: boolean,
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class SidebarLink extends Component {
|
class SidebarLink extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable expanded: boolean = false;
|
@observable expanded: boolean = false;
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
@ -71,7 +70,7 @@ class SidebarLink extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
handleClick = (event: SyntheticEvent) => {
|
handleClick = (event: SyntheticEvent<*>) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
this.expanded = !this.expanded;
|
this.expanded = !this.expanded;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { layout } from 'shared/styles/constants';
|
import { layout } from 'shared/styles/constants';
|
||||||
import Toast from './components/Toast';
|
import Toast from './components/Toast';
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Toasts extends Component {
|
class Toasts extends React.Component<*> {
|
||||||
handleClose = index => {
|
handleClose = index => {
|
||||||
this.props.errors.remove(index);
|
this.props.errors.remove(index);
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { darken } from 'polished';
|
import { darken } from 'polished';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
@ -12,9 +12,8 @@ type Props = {
|
||||||
type: 'warning' | 'error' | 'info',
|
type: 'warning' | 'error' | 'info',
|
||||||
};
|
};
|
||||||
|
|
||||||
class Toast extends Component {
|
class Toast extends React.Component<Props> {
|
||||||
timeout: number;
|
timeout: TimeoutID;
|
||||||
props: Props;
|
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
closeAfterMs: 3000,
|
closeAfterMs: 3000,
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
import { TooltipTrigger } from 'pui-react-tooltip';
|
import { TooltipTrigger } from 'pui-react-tooltip';
|
||||||
import { injectGlobal } from 'styled-components';
|
import { injectGlobal } from 'styled-components';
|
||||||
|
|
||||||
injectGlobal([
|
injectGlobal`
|
||||||
`
|
|
||||||
.tooltip:hover .tooltip-container:not(.tooltip-container-hidden){visibility:visible;opacity:1}.tooltip-container{visibility:hidden;-webkit-transition:opacity ease-out 0.2s;transition:opacity ease-out 0.2s;z-index:10;position:absolute;bottom:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:0 0 8px 0;text-align:left}.tooltip-container.tooltip-container-visible{visibility:visible}.tooltip-container.tooltip-hoverable:after{content:"";position:absolute;width:calc(100% + 16px);height:calc(100% + 16px);top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.tooltip-container .tooltip-content{white-space:nowrap;padding:4px 8px;font-size:12px;line-height:16px;font-weight:400;letter-spacing:0;text-transform:none;background-color:#243641;color:#fff;border-radius:2px;border:1px solid #243641;box-shadow:0px 2px 2px 0px rgba(36, 54, 65, .1),0px 0px 2px 0px rgba(36, 54, 65, .1)}.tooltip-container .tooltip-content:before{content:"";z-index:1;position:absolute;bottom:-4px;left:50%;-webkit-transform:translateX(-50%) rotateZ(45deg);transform:translateX(-50%) rotateZ(45deg);background-color:#243641;border-bottom:1px solid #243641;border-right:1px solid #243641;width:8px;height:8px}.tooltip-container .tooltip-content:after{content:"";box-sizing:content-box;z-index:-1;position:absolute;bottom:-4px;left:50%;-webkit-transform:translateX(-50%) rotateZ(45deg);transform:translateX(-50%) rotateZ(45deg);background-color:#243641;box-shadow:0px 2px 2px 0px rgba(36, 54, 65, .1),0px 0px 2px 0px rgba(36, 54, 65, .1);width:8px;height:8px}.tooltip{position:relative;display:inline-block}.tooltip.tooltip-light .tooltip-content{background-color:#fff;color:#243641;border:1px solid #DFE5E8}.tooltip.tooltip-light .tooltip-content:before{background-color:#fff;border-bottom:1px solid #DFE5E8;border-right:1px solid #DFE5E8}.tooltip.tooltip-light .tooltip-content:after{background-color:#fff}.tooltip.tooltip-bottom .tooltip-container{top:100%;bottom:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:8px 0 0 0}.tooltip.tooltip-bottom .tooltip-container .tooltip-content:before{bottom:auto;top:-4px;border-top:1px solid #243641;border-right:none;border-bottom:none;border-left:1px solid #243641}.tooltip.tooltip-bottom .tooltip-container .tooltip-content:after{bottom:auto;top:-4px}.tooltip.tooltip-bottom.tooltip-light .tooltip-content:before{border-top:1px solid #DFE5E8;border-left:1px solid #DFE5E8}.tooltip.tooltip-right .tooltip-container{top:50%;bottom:auto;left:100%;-webkit-transform:translatey(-50%);transform:translatey(-50%);margin:0 0 0 8px}.tooltip.tooltip-right .tooltip-container .tooltip-content:before{bottom:auto;left:-4px;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg);border-top:none;border-right:none;border-bottom:1px solid #243641;border-left:1px solid #243641}.tooltip.tooltip-right .tooltip-container .tooltip-content:after{bottom:auto;left:-4px;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg)}.tooltip.tooltip-right.tooltip-light .tooltip-content:before{border-bottom:1px solid #DFE5E8;border-left:1px solid #DFE5E8}.tooltip.tooltip-left .tooltip-container{top:50%;bottom:auto;right:100%;left:auto;-webkit-transform:translatey(-50%);transform:translatey(-50%);margin:0 8px 0 0}.tooltip.tooltip-left .tooltip-container .tooltip-content:before{bottom:auto;right:-4px;left:auto;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg);border-top:1px solid #243641;border-right:1px solid #243641;border-bottom:none;border-left:none}.tooltip.tooltip-left .tooltip-container .tooltip-content:after{bottom:auto;right:-4px;left:auto;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg)}.tooltip.tooltip-left.tooltip-light .tooltip-content:before{border-top:1px solid #DFE5E8;border-right:1px solid #DFE5E8}.tooltip-sm.tooltip-container{width:120px}.tooltip-sm.tooltip-container .tooltip-content{white-space:normal}.tooltip-md.tooltip-container{width:240px}.tooltip-md.tooltip-container .tooltip-content{white-space:normal}.tooltip-lg.tooltip-container{width:360px}.tooltip-lg.tooltip-container .tooltip-content{white-space:normal}.tether-element{z-index:99}.overlay-trigger{color:#1B78B3;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out;-webkit-transition-property:background-color, color, opacity;transition-property:background-color, color, opacity}.overlay-trigger:hover,.overlay-trigger:focus{color:#1f8ace;cursor:pointer;outline:none;text-decoration:none}.overlay-trigger:active,.overlay-trigger.active{color:#176698}
|
.tooltip:hover .tooltip-container:not(.tooltip-container-hidden){visibility:visible;opacity:1}.tooltip-container{visibility:hidden;-webkit-transition:opacity ease-out 0.2s;transition:opacity ease-out 0.2s;z-index:10;position:absolute;bottom:100%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:0 0 8px 0;text-align:left}.tooltip-container.tooltip-container-visible{visibility:visible}.tooltip-container.tooltip-hoverable:after{content:"";position:absolute;width:calc(100% + 16px);height:calc(100% + 16px);top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.tooltip-container .tooltip-content{white-space:nowrap;padding:4px 8px;font-size:12px;line-height:16px;font-weight:400;letter-spacing:0;text-transform:none;background-color:#243641;color:#fff;border-radius:2px;border:1px solid #243641;box-shadow:0px 2px 2px 0px rgba(36, 54, 65, .1),0px 0px 2px 0px rgba(36, 54, 65, .1)}.tooltip-container .tooltip-content:before{content:"";z-index:1;position:absolute;bottom:-4px;left:50%;-webkit-transform:translateX(-50%) rotateZ(45deg);transform:translateX(-50%) rotateZ(45deg);background-color:#243641;border-bottom:1px solid #243641;border-right:1px solid #243641;width:8px;height:8px}.tooltip-container .tooltip-content:after{content:"";box-sizing:content-box;z-index:-1;position:absolute;bottom:-4px;left:50%;-webkit-transform:translateX(-50%) rotateZ(45deg);transform:translateX(-50%) rotateZ(45deg);background-color:#243641;box-shadow:0px 2px 2px 0px rgba(36, 54, 65, .1),0px 0px 2px 0px rgba(36, 54, 65, .1);width:8px;height:8px}.tooltip{position:relative;display:inline-block}.tooltip.tooltip-light .tooltip-content{background-color:#fff;color:#243641;border:1px solid #DFE5E8}.tooltip.tooltip-light .tooltip-content:before{background-color:#fff;border-bottom:1px solid #DFE5E8;border-right:1px solid #DFE5E8}.tooltip.tooltip-light .tooltip-content:after{background-color:#fff}.tooltip.tooltip-bottom .tooltip-container{top:100%;bottom:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:8px 0 0 0}.tooltip.tooltip-bottom .tooltip-container .tooltip-content:before{bottom:auto;top:-4px;border-top:1px solid #243641;border-right:none;border-bottom:none;border-left:1px solid #243641}.tooltip.tooltip-bottom .tooltip-container .tooltip-content:after{bottom:auto;top:-4px}.tooltip.tooltip-bottom.tooltip-light .tooltip-content:before{border-top:1px solid #DFE5E8;border-left:1px solid #DFE5E8}.tooltip.tooltip-right .tooltip-container{top:50%;bottom:auto;left:100%;-webkit-transform:translatey(-50%);transform:translatey(-50%);margin:0 0 0 8px}.tooltip.tooltip-right .tooltip-container .tooltip-content:before{bottom:auto;left:-4px;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg);border-top:none;border-right:none;border-bottom:1px solid #243641;border-left:1px solid #243641}.tooltip.tooltip-right .tooltip-container .tooltip-content:after{bottom:auto;left:-4px;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg)}.tooltip.tooltip-right.tooltip-light .tooltip-content:before{border-bottom:1px solid #DFE5E8;border-left:1px solid #DFE5E8}.tooltip.tooltip-left .tooltip-container{top:50%;bottom:auto;right:100%;left:auto;-webkit-transform:translatey(-50%);transform:translatey(-50%);margin:0 8px 0 0}.tooltip.tooltip-left .tooltip-container .tooltip-content:before{bottom:auto;right:-4px;left:auto;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg);border-top:1px solid #243641;border-right:1px solid #243641;border-bottom:none;border-left:none}.tooltip.tooltip-left .tooltip-container .tooltip-content:after{bottom:auto;right:-4px;left:auto;top:50%;-webkit-transform:translatey(-50%) rotateZ(45deg);transform:translatey(-50%) rotateZ(45deg)}.tooltip.tooltip-left.tooltip-light .tooltip-content:before{border-top:1px solid #DFE5E8;border-right:1px solid #DFE5E8}.tooltip-sm.tooltip-container{width:120px}.tooltip-sm.tooltip-container .tooltip-content{white-space:normal}.tooltip-md.tooltip-container{width:240px}.tooltip-md.tooltip-container .tooltip-content{white-space:normal}.tooltip-lg.tooltip-container{width:360px}.tooltip-lg.tooltip-container .tooltip-content{white-space:normal}.tether-element{z-index:99}.overlay-trigger{color:#1B78B3;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out;-webkit-transition-property:background-color, color, opacity;transition-property:background-color, color, opacity}.overlay-trigger:hover,.overlay-trigger:focus{color:#1f8ace;cursor:pointer;outline:none;text-decoration:none}.overlay-trigger:active,.overlay-trigger.active{color:#176698}
|
||||||
`,
|
`;
|
||||||
]);
|
|
||||||
|
|
||||||
export default TooltipTrigger;
|
export default TooltipTrigger;
|
||||||
|
|
155
app/index.js
155
app/index.js
|
@ -49,83 +49,86 @@ const RedirectDocument = ({ match }: { match: Object }) => (
|
||||||
|
|
||||||
globalStyles();
|
globalStyles();
|
||||||
|
|
||||||
render(
|
const element = document.getElementById('root');
|
||||||
<React.Fragment>
|
|
||||||
<ErrorBoundary>
|
|
||||||
<Provider {...stores}>
|
|
||||||
<Router>
|
|
||||||
<ScrollToTop>
|
|
||||||
<Switch>
|
|
||||||
<Route exact path="/" component={Home} />
|
|
||||||
<Route exact path="/auth/slack" component={SlackAuth} />
|
|
||||||
<Route exact path="/auth/slack/commands" component={SlackAuth} />
|
|
||||||
<Route exact path="/auth/slack/post" component={SlackAuth} />
|
|
||||||
<Route exact path="/auth/error" component={ErrorAuth} />
|
|
||||||
|
|
||||||
<Auth>
|
if (element) {
|
||||||
<Layout>
|
render(
|
||||||
<Switch>
|
<React.Fragment>
|
||||||
<Route exact path="/dashboard" component={Dashboard} />
|
<ErrorBoundary>
|
||||||
<Route exact path="/starred" component={Starred} />
|
<Provider {...stores}>
|
||||||
<Route exact path="/drafts" component={Drafts} />
|
<Router>
|
||||||
<Route exact path="/settings" component={Settings} />
|
<ScrollToTop>
|
||||||
<Route exact path="/settings/users" component={Users} />
|
<Switch>
|
||||||
<Route exact path="/settings/tokens" component={Tokens} />
|
<Route exact path="/" component={Home} />
|
||||||
<Route
|
<Route exact path="/auth/slack" component={SlackAuth} />
|
||||||
exact
|
<Route
|
||||||
path="/settings/integrations/slack"
|
exact
|
||||||
component={Slack}
|
path="/auth/slack/commands"
|
||||||
/>
|
component={SlackAuth}
|
||||||
|
/>
|
||||||
<Route
|
<Route exact path="/auth/slack/post" component={SlackAuth} />
|
||||||
exact
|
<Route exact path="/auth/error" component={ErrorAuth} />
|
||||||
path="/collections/:id"
|
<Auth>
|
||||||
component={Collection}
|
<Layout>
|
||||||
/>
|
<Switch>
|
||||||
<Route
|
<Route exact path="/dashboard" component={Dashboard} />
|
||||||
exact
|
<Route exact path="/starred" component={Starred} />
|
||||||
path={`/d/${matchDocumentSlug}`}
|
<Route exact path="/drafts" component={Drafts} />
|
||||||
component={RedirectDocument}
|
<Route exact path="/settings" component={Settings} />
|
||||||
/>
|
<Route exact path="/settings/users" component={Users} />
|
||||||
<Route
|
<Route exact path="/settings/tokens" component={Tokens} />
|
||||||
exact
|
<Route
|
||||||
path={`/doc/${matchDocumentSlug}`}
|
exact
|
||||||
component={Document}
|
path="/settings/integrations/slack"
|
||||||
/>
|
component={Slack}
|
||||||
<Route
|
/>
|
||||||
exact
|
<Route
|
||||||
path={`/doc/${matchDocumentSlug}/move`}
|
exact
|
||||||
component={Document}
|
path="/collections/:id"
|
||||||
/>
|
component={Collection}
|
||||||
|
/>
|
||||||
<Route exact path="/search" component={Search} />
|
<Route
|
||||||
<Route exact path="/search/:query" component={Search} />
|
exact
|
||||||
|
path={`/d/${matchDocumentSlug}`}
|
||||||
<Route path="/404" component={Error404} />
|
component={RedirectDocument}
|
||||||
|
/>
|
||||||
<RouteSidebarHidden
|
<Route
|
||||||
exact
|
exact
|
||||||
path={`/doc/${matchDocumentSlug}/edit`}
|
path={`/doc/${matchDocumentSlug}`}
|
||||||
component={Document}
|
component={Document}
|
||||||
/>
|
/>
|
||||||
<RouteSidebarHidden
|
<Route
|
||||||
exact
|
exact
|
||||||
path="/collections/:id/new"
|
path={`/doc/${matchDocumentSlug}/move`}
|
||||||
component={DocumentNew}
|
component={Document}
|
||||||
/>
|
/>
|
||||||
<Route component={notFoundSearch} />
|
<Route exact path="/search" component={Search} />
|
||||||
</Switch>
|
<Route exact path="/search/:query" component={Search} />
|
||||||
</Layout>
|
<Route path="/404" component={Error404} />
|
||||||
</Auth>
|
<RouteSidebarHidden
|
||||||
</Switch>
|
exact
|
||||||
</ScrollToTop>
|
path={`/doc/${matchDocumentSlug}/edit`}
|
||||||
</Router>
|
component={Document}
|
||||||
</Provider>
|
/>
|
||||||
</ErrorBoundary>
|
<RouteSidebarHidden
|
||||||
{DevTools && <DevTools position={{ bottom: 0, right: 0 }} />}
|
exact
|
||||||
</React.Fragment>,
|
path="/collections/:id/new"
|
||||||
document.getElementById('root')
|
component={DocumentNew}
|
||||||
);
|
/>
|
||||||
|
<Route component={notFoundSearch} />
|
||||||
|
</Switch>
|
||||||
|
</Layout>
|
||||||
|
</Auth>
|
||||||
|
</Switch>
|
||||||
|
</ScrollToTop>
|
||||||
|
</Router>
|
||||||
|
</Provider>
|
||||||
|
</ErrorBoundary>
|
||||||
|
{DevTools && <DevTools position={{ bottom: 0, right: 0 }} />}
|
||||||
|
</React.Fragment>,
|
||||||
|
element
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
window.addEventListener('load', async () => {
|
window.addEventListener('load', async () => {
|
||||||
// installation does not use Google Analytics, or tracking is blocked on client
|
// installation does not use Google Analytics, or tracking is blocked on client
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
import UiStore from 'stores/UiStore';
|
import UiStore from 'stores/UiStore';
|
||||||
|
@ -12,15 +12,15 @@ import {
|
||||||
spectrumUrl,
|
spectrumUrl,
|
||||||
} from '../../shared/utils/routeHelpers';
|
} from '../../shared/utils/routeHelpers';
|
||||||
|
|
||||||
@observer
|
type Props = {
|
||||||
class AccountMenu extends Component {
|
label?: React.Node,
|
||||||
props: {
|
history: Object,
|
||||||
label?: React$Element<any>,
|
ui: UiStore,
|
||||||
history: Object,
|
auth: AuthStore,
|
||||||
ui: UiStore,
|
};
|
||||||
auth: AuthStore,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
@observer
|
||||||
|
class AccountMenu extends React.Component<Props> {
|
||||||
handleOpenKeyboardShortcuts = () => {
|
handleOpenKeyboardShortcuts = () => {
|
||||||
this.props.ui.setActiveModal('keyboard-shortcuts');
|
this.props.ui.setActiveModal('keyboard-shortcuts');
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { MoreIcon } from 'outline-icons';
|
import { MoreIcon } from 'outline-icons';
|
||||||
|
@ -12,9 +12,9 @@ import DocumentsStore from 'stores/DocumentsStore';
|
||||||
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
label?: React$Element<*>,
|
label?: React.Node,
|
||||||
onOpen?: () => void,
|
onOpen?: () => *,
|
||||||
onClose?: () => void,
|
onClose?: () => *,
|
||||||
history: Object,
|
history: Object,
|
||||||
ui: UiStore,
|
ui: UiStore,
|
||||||
documents: DocumentsStore,
|
documents: DocumentsStore,
|
||||||
|
@ -22,24 +22,23 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class CollectionMenu extends Component {
|
class CollectionMenu extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
file: HTMLInputElement;
|
file: HTMLInputElement;
|
||||||
|
|
||||||
onNewDocument = (ev: SyntheticEvent) => {
|
onNewDocument = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { collection, history } = this.props;
|
const { collection, history } = this.props;
|
||||||
history.push(`${collection.url}/new`);
|
history.push(`${collection.url}/new`);
|
||||||
};
|
};
|
||||||
|
|
||||||
onImportDocument = (ev: SyntheticEvent) => {
|
onImportDocument = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
|
|
||||||
// simulate a click on the file upload input element
|
// simulate a click on the file upload input element
|
||||||
this.file.click();
|
this.file.click();
|
||||||
};
|
};
|
||||||
|
|
||||||
onFilePicked = async (ev: SyntheticEvent) => {
|
onFilePicked = async (ev: SyntheticEvent<*>) => {
|
||||||
const files = getDataTransferFiles(ev);
|
const files = getDataTransferFiles(ev);
|
||||||
const document = await importFile({
|
const document = await importFile({
|
||||||
file: files[0],
|
file: files[0],
|
||||||
|
@ -50,13 +49,13 @@ class CollectionMenu extends Component {
|
||||||
this.props.history.push(document.url);
|
this.props.history.push(document.url);
|
||||||
};
|
};
|
||||||
|
|
||||||
onEdit = (ev: SyntheticEvent) => {
|
onEdit = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { collection } = this.props;
|
const { collection } = this.props;
|
||||||
this.props.ui.setActiveModal('collection-edit', { collection });
|
this.props.ui.setActiveModal('collection-edit', { collection });
|
||||||
};
|
};
|
||||||
|
|
||||||
onDelete = (ev: SyntheticEvent) => {
|
onDelete = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { collection } = this.props;
|
const { collection } = this.props;
|
||||||
this.props.ui.setActiveModal('collection-delete', { collection });
|
this.props.ui.setActiveModal('collection-delete', { collection });
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
import { MoreIcon } from 'outline-icons';
|
import { MoreIcon } from 'outline-icons';
|
||||||
|
@ -9,49 +9,49 @@ import UiStore from 'stores/UiStore';
|
||||||
import { documentMoveUrl } from 'utils/routeHelpers';
|
import { documentMoveUrl } from 'utils/routeHelpers';
|
||||||
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
||||||
|
|
||||||
@observer
|
type Props = {
|
||||||
class DocumentMenu extends Component {
|
ui: UiStore,
|
||||||
props: {
|
label?: React.Node,
|
||||||
ui: UiStore,
|
history: Object,
|
||||||
label?: React$Element<any>,
|
document: Document,
|
||||||
history: Object,
|
className: string,
|
||||||
document: Document,
|
};
|
||||||
className: string,
|
|
||||||
};
|
|
||||||
|
|
||||||
handleNewChild = (ev: SyntheticEvent) => {
|
@observer
|
||||||
|
class DocumentMenu extends React.Component<Props> {
|
||||||
|
handleNewChild = (ev: SyntheticEvent<*>) => {
|
||||||
const { history, document } = this.props;
|
const { history, document } = this.props;
|
||||||
history.push(
|
history.push(
|
||||||
`${document.collection.url}/new?parentDocument=${document.id}`
|
`${document.collection.url}/new?parentDocument=${document.id}`
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleDelete = (ev: SyntheticEvent) => {
|
handleDelete = (ev: SyntheticEvent<*>) => {
|
||||||
const { document } = this.props;
|
const { document } = this.props;
|
||||||
this.props.ui.setActiveModal('document-delete', { document });
|
this.props.ui.setActiveModal('document-delete', { document });
|
||||||
};
|
};
|
||||||
|
|
||||||
handleMove = (ev: SyntheticEvent) => {
|
handleMove = (ev: SyntheticEvent<*>) => {
|
||||||
this.props.history.push(documentMoveUrl(this.props.document));
|
this.props.history.push(documentMoveUrl(this.props.document));
|
||||||
};
|
};
|
||||||
|
|
||||||
handlePin = (ev: SyntheticEvent) => {
|
handlePin = (ev: SyntheticEvent<*>) => {
|
||||||
this.props.document.pin();
|
this.props.document.pin();
|
||||||
};
|
};
|
||||||
|
|
||||||
handleUnpin = (ev: SyntheticEvent) => {
|
handleUnpin = (ev: SyntheticEvent<*>) => {
|
||||||
this.props.document.unpin();
|
this.props.document.unpin();
|
||||||
};
|
};
|
||||||
|
|
||||||
handleStar = (ev: SyntheticEvent) => {
|
handleStar = (ev: SyntheticEvent<*>) => {
|
||||||
this.props.document.star();
|
this.props.document.star();
|
||||||
};
|
};
|
||||||
|
|
||||||
handleUnstar = (ev: SyntheticEvent) => {
|
handleUnstar = (ev: SyntheticEvent<*>) => {
|
||||||
this.props.document.unstar();
|
this.props.document.unstar();
|
||||||
};
|
};
|
||||||
|
|
||||||
handleExport = (ev: SyntheticEvent) => {
|
handleExport = (ev: SyntheticEvent<*>) => {
|
||||||
this.props.document.download();
|
this.props.document.download();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import { withRouter, Link } from 'react-router-dom';
|
import { withRouter, Link } from 'react-router-dom';
|
||||||
|
@ -33,8 +33,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class CollectionScene extends Component {
|
class CollectionScene extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable collection: ?Collection;
|
@observable collection: ?Collection;
|
||||||
@observable isFetching: boolean = true;
|
@observable isFetching: boolean = true;
|
||||||
|
|
||||||
|
@ -74,7 +73,7 @@ class CollectionScene extends Component {
|
||||||
this.isFetching = false;
|
this.isFetching = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
onNewDocument = (ev: SyntheticEvent) => {
|
onNewDocument = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
|
|
||||||
if (this.collection) {
|
if (this.collection) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
|
@ -18,11 +18,10 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class CollectionDelete extends Component {
|
class CollectionDelete extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable isDeleting: boolean;
|
@observable isDeleting: boolean;
|
||||||
|
|
||||||
handleSubmit = async (ev: SyntheticEvent) => {
|
handleSubmit = async (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
this.isDeleting = true;
|
this.isDeleting = true;
|
||||||
const success = await this.props.collection.delete();
|
const success = await this.props.collection.delete();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
|
@ -17,8 +17,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class CollectionEdit extends Component {
|
class CollectionEdit extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable name: string;
|
@observable name: string;
|
||||||
@observable color: string = '';
|
@observable color: string = '';
|
||||||
@observable isSaving: boolean;
|
@observable isSaving: boolean;
|
||||||
|
@ -27,7 +26,7 @@ class CollectionEdit extends Component {
|
||||||
this.name = this.props.collection.name;
|
this.name = this.props.collection.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSubmit = async (ev: SyntheticEvent) => {
|
handleSubmit = async (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
this.isSaving = true;
|
this.isSaving = true;
|
||||||
|
|
||||||
|
@ -41,7 +40,7 @@ class CollectionEdit extends Component {
|
||||||
this.isSaving = false;
|
this.isSaving = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
handleNameChange = (ev: SyntheticInputEvent) => {
|
handleNameChange = (ev: SyntheticInputEvent<*>) => {
|
||||||
this.name = ev.target.value;
|
this.name = ev.target.value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
|
@ -18,8 +18,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class CollectionNew extends Component {
|
class CollectionNew extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable collection: Collection;
|
@observable collection: Collection;
|
||||||
@observable name: string = '';
|
@observable name: string = '';
|
||||||
@observable color: string = '';
|
@observable color: string = '';
|
||||||
|
@ -30,7 +29,7 @@ class CollectionNew extends Component {
|
||||||
this.collection = new Collection();
|
this.collection = new Collection();
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSubmit = async (ev: SyntheticEvent) => {
|
handleSubmit = async (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
this.isSaving = true;
|
this.isSaving = true;
|
||||||
this.collection.updateData({ name: this.name, color: this.color });
|
this.collection.updateData({ name: this.name, color: this.color });
|
||||||
|
@ -45,7 +44,7 @@ class CollectionNew extends Component {
|
||||||
this.isSaving = false;
|
this.isSaving = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
handleNameChange = (ev: SyntheticInputEvent) => {
|
handleNameChange = (ev: SyntheticInputEvent<*>) => {
|
||||||
this.name = ev.target.value;
|
this.name = ev.target.value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
|
|
||||||
|
@ -15,8 +15,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Dashboard extends Component {
|
class Dashboard extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable isLoaded: boolean = false;
|
@observable isLoaded: boolean = false;
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
|
|
@ -48,9 +48,8 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DocumentScene extends React.Component {
|
class DocumentScene extends React.Component<Props> {
|
||||||
props: Props;
|
savedTimeout: TimeoutID;
|
||||||
savedTimeout: number;
|
|
||||||
|
|
||||||
@observable editorComponent;
|
@observable editorComponent;
|
||||||
@observable editCache: ?string;
|
@observable editCache: ?string;
|
||||||
|
@ -136,7 +135,7 @@ class DocumentScene extends React.Component {
|
||||||
};
|
};
|
||||||
|
|
||||||
get isEditing() {
|
get isEditing() {
|
||||||
return (
|
return !!(
|
||||||
this.props.match.path === matchDocumentEdit || this.props.newDocument
|
this.props.match.path === matchDocumentEdit || this.props.newDocument
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -163,7 +162,7 @@ class DocumentScene extends React.Component {
|
||||||
|
|
||||||
this.editCache = null;
|
this.editCache = null;
|
||||||
this.isSaving = true;
|
this.isSaving = true;
|
||||||
this.isPublishing = publish;
|
this.isPublishing = !!publish;
|
||||||
document = await document.save(publish, redirect);
|
document = await document.save(publish, redirect);
|
||||||
this.isSaving = false;
|
this.isSaving = false;
|
||||||
this.isPublishing = false;
|
this.isPublishing = false;
|
||||||
|
|
|
@ -26,9 +26,7 @@ type Props = {
|
||||||
history: Object,
|
history: Object,
|
||||||
};
|
};
|
||||||
|
|
||||||
class DocumentActions extends React.Component {
|
class DocumentActions extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
handleNewDocument = () => {
|
handleNewDocument = () => {
|
||||||
this.props.history.push(documentNewUrl(this.props.document));
|
this.props.history.push(documentNewUrl(this.props.document));
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
import { observable, computed } from 'mobx';
|
import { observable, computed } from 'mobx';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
|
@ -29,10 +29,8 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DocumentMove extends Component {
|
class DocumentMove extends React.Component<Props> {
|
||||||
props: Props;
|
firstDocument: *;
|
||||||
firstDocument: HTMLElement;
|
|
||||||
|
|
||||||
@observable searchTerm: ?string;
|
@observable searchTerm: ?string;
|
||||||
@observable isSaving: boolean;
|
@observable isSaving: boolean;
|
||||||
|
|
||||||
|
@ -115,7 +113,7 @@ class DocumentMove extends Component {
|
||||||
this.props.history.push(this.props.document.url);
|
this.props.history.push(this.props.document.url);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleFilter = (e: SyntheticInputEvent) => {
|
handleFilter = (e: SyntheticInputEvent<*>) => {
|
||||||
this.searchTerm = e.target.value;
|
this.searchTerm = e.target.value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import invariant from 'invariant';
|
import invariant from 'invariant';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
@ -49,10 +49,8 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class PathToDocument extends React.Component {
|
class PathToDocument extends React.Component<Props> {
|
||||||
props: Props;
|
handleClick = async (ev: SyntheticEvent<*>) => {
|
||||||
|
|
||||||
handleClick = async (ev: SyntheticEvent) => {
|
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { document, result, onSuccess } = this.props;
|
const { document, result, onSuccess } = this.props;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { pulsate } from 'shared/styles/animations';
|
import { pulsate } from 'shared/styles/animations';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { withRouter } from 'react-router-dom';
|
import { withRouter } from 'react-router-dom';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
|
@ -17,11 +17,10 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DocumentDelete extends Component {
|
class DocumentDelete extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable isDeleting: boolean;
|
@observable isDeleting: boolean;
|
||||||
|
|
||||||
handleSubmit = async (ev: SyntheticEvent) => {
|
handleSubmit = async (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
this.isDeleting = true;
|
this.isDeleting = true;
|
||||||
const { collection } = this.props.document;
|
const { collection } = this.props.document;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import CenteredContent from 'components/CenteredContent';
|
import CenteredContent from 'components/CenteredContent';
|
||||||
import { ListPlaceholder } from 'components/LoadingPlaceholder';
|
import { ListPlaceholder } from 'components/LoadingPlaceholder';
|
||||||
|
@ -8,12 +8,12 @@ import PageTitle from 'components/PageTitle';
|
||||||
import DocumentList from 'components/DocumentList';
|
import DocumentList from 'components/DocumentList';
|
||||||
import DocumentsStore from 'stores/DocumentsStore';
|
import DocumentsStore from 'stores/DocumentsStore';
|
||||||
|
|
||||||
@observer
|
type Props = {
|
||||||
class Drafts extends Component {
|
documents: DocumentsStore,
|
||||||
props: {
|
};
|
||||||
documents: DocumentsStore,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
@observer
|
||||||
|
class Drafts extends React.Component<Props> {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.documents.fetchDrafts();
|
this.props.documents.fetchDrafts();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
import CenteredContent from 'components/CenteredContent';
|
import CenteredContent from 'components/CenteredContent';
|
||||||
import PageTitle from 'components/PageTitle';
|
import PageTitle from 'components/PageTitle';
|
||||||
|
|
||||||
class Error404 extends React.Component {
|
class Error404 extends React.Component<*> {
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<CenteredContent>
|
<CenteredContent>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
import CenteredContent from 'components/CenteredContent';
|
import CenteredContent from 'components/CenteredContent';
|
||||||
import PageTitle from 'components/PageTitle';
|
import PageTitle from 'components/PageTitle';
|
||||||
|
|
||||||
class ErrorAuth extends React.Component {
|
class ErrorAuth extends React.Component<*> {
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<CenteredContent>
|
<CenteredContent>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
|
|
||||||
import CenteredContent from 'components/CenteredContent';
|
import CenteredContent from 'components/CenteredContent';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import { Redirect } from 'react-router-dom';
|
import { Redirect } from 'react-router-dom';
|
||||||
import AuthStore from 'stores/AuthStore';
|
import AuthStore from 'stores/AuthStore';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import Key from 'components/Key';
|
import Key from 'components/Key';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
import keydown from 'react-keydown';
|
import keydown from 'react-keydown';
|
||||||
import Waypoint from 'react-waypoint';
|
import Waypoint from 'react-waypoint';
|
||||||
|
@ -59,9 +59,8 @@ const StyledArrowKeyNavigation = styled(ArrowKeyNavigation)`
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Search extends Component {
|
class Search extends React.Component<Props> {
|
||||||
firstDocument: HTMLElement;
|
firstDocument: HTMLElement;
|
||||||
props: Props;
|
|
||||||
|
|
||||||
@observable resultIds: string[] = []; // Document IDs
|
@observable resultIds: string[] = []; // Document IDs
|
||||||
@observable query: string = '';
|
@observable query: string = '';
|
||||||
|
|
|
@ -1,22 +1,23 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
import { SearchIcon } from 'outline-icons';
|
import { SearchIcon } from 'outline-icons';
|
||||||
|
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
import { color } from 'shared/styles/constants';
|
import { color } from 'shared/styles/constants';
|
||||||
|
|
||||||
class SearchField extends Component {
|
type Props = {
|
||||||
input: HTMLInputElement;
|
onChange: string => *,
|
||||||
props: {
|
};
|
||||||
onChange: Function,
|
|
||||||
};
|
|
||||||
|
|
||||||
handleChange = (ev: SyntheticEvent) => {
|
class SearchField extends React.Component<Props> {
|
||||||
|
input: HTMLInputElement;
|
||||||
|
|
||||||
|
handleChange = (ev: SyntheticEvent<*>) => {
|
||||||
this.props.onChange(ev.currentTarget.value ? ev.currentTarget.value : '');
|
this.props.onChange(ev.currentTarget.value ? ev.currentTarget.value : '');
|
||||||
};
|
};
|
||||||
|
|
||||||
focusInput = (ev: SyntheticEvent) => {
|
focusInput = (ev: SyntheticEvent<*>) => {
|
||||||
this.input.focus();
|
this.input.focus();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable, runInAction } from 'mobx';
|
import { observable, runInAction } from 'mobx';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import invariant from 'invariant';
|
import invariant from 'invariant';
|
||||||
|
@ -16,13 +16,14 @@ import CenteredContent from 'components/CenteredContent';
|
||||||
import PageTitle from 'components/PageTitle';
|
import PageTitle from 'components/PageTitle';
|
||||||
import Flex from 'shared/components/Flex';
|
import Flex from 'shared/components/Flex';
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
auth: AuthStore,
|
||||||
|
errors: ErrorsStore,
|
||||||
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Settings extends Component {
|
class Settings extends React.Component<Props> {
|
||||||
timeout: number;
|
timeout: TimeoutID;
|
||||||
props: {
|
|
||||||
auth: AuthStore,
|
|
||||||
errors: ErrorsStore,
|
|
||||||
};
|
|
||||||
|
|
||||||
@observable name: string;
|
@observable name: string;
|
||||||
@observable avatarUrl: ?string;
|
@observable avatarUrl: ?string;
|
||||||
|
@ -39,7 +40,7 @@ class Settings extends Component {
|
||||||
clearTimeout(this.timeout);
|
clearTimeout(this.timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSubmit = async (ev: SyntheticEvent) => {
|
handleSubmit = async (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
this.isSaving = true;
|
this.isSaving = true;
|
||||||
|
|
||||||
|
@ -62,7 +63,7 @@ class Settings extends Component {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
handleNameChange = (ev: SyntheticInputEvent) => {
|
handleNameChange = (ev: SyntheticInputEvent<*>) => {
|
||||||
this.name = ev.target.value;
|
this.name = ev.target.value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
@ -18,9 +18,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Slack extends Component {
|
class Slack extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.integrations.fetchPage();
|
this.props.integrations.fetchPage();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
@ -15,22 +15,23 @@ import PageTitle from 'components/PageTitle';
|
||||||
import HelpText from 'components/HelpText';
|
import HelpText from 'components/HelpText';
|
||||||
import Subheading from 'components/Subheading';
|
import Subheading from 'components/Subheading';
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
apiKeys: ApiKeysStore,
|
||||||
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class Tokens extends Component {
|
class Tokens extends React.Component<Props> {
|
||||||
@observable name: string = '';
|
@observable name: string = '';
|
||||||
props: {
|
|
||||||
apiKeys: ApiKeysStore,
|
|
||||||
};
|
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.apiKeys.fetchPage({ limit: 100 });
|
this.props.apiKeys.fetchPage({ limit: 100 });
|
||||||
}
|
}
|
||||||
|
|
||||||
handleUpdate = (ev: SyntheticInputEvent) => {
|
handleUpdate = (ev: SyntheticInputEvent<*>) => {
|
||||||
this.name = ev.target.value;
|
this.name = ev.target.value;
|
||||||
};
|
};
|
||||||
|
|
||||||
handleSubmit = async (ev: SyntheticEvent) => {
|
handleSubmit = async (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
await this.props.apiKeys.createApiKey(this.name);
|
await this.props.apiKeys.createApiKey(this.name);
|
||||||
this.name = '';
|
this.name = '';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import invariant from 'invariant';
|
import invariant from 'invariant';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
@ -15,14 +15,14 @@ import LoadingPlaceholder from 'components/LoadingPlaceholder';
|
||||||
import PageTitle from 'components/PageTitle';
|
import PageTitle from 'components/PageTitle';
|
||||||
import UserMenu from './components/UserMenu';
|
import UserMenu from './components/UserMenu';
|
||||||
|
|
||||||
@observer
|
type Props = {
|
||||||
class Users extends Component {
|
auth: AuthStore,
|
||||||
props: {
|
errors: ErrorsStore,
|
||||||
auth: AuthStore,
|
users: UsersStore,
|
||||||
errors: ErrorsStore,
|
};
|
||||||
users: UsersStore,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
@observer
|
||||||
|
class Users extends React.Component<Props> {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.users.fetchPage({ limit: 100 });
|
this.props.users.fetchPage({ limit: 100 });
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import Button from 'components/Button';
|
import Button from 'components/Button';
|
||||||
|
@ -12,8 +12,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class ApiToken extends React.Component {
|
class ApiToken extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable disabled: boolean;
|
@observable disabled: boolean;
|
||||||
|
|
||||||
onClick = () => {
|
onClick = () => {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observable } from 'mobx';
|
import { observable } from 'mobx';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import styled from 'styled-components';
|
import styled from 'styled-components';
|
||||||
|
@ -13,17 +13,16 @@ import AvatarEditor from 'react-avatar-editor';
|
||||||
import { uploadFile, dataUrlToBlob } from 'utils/uploadFile';
|
import { uploadFile, dataUrlToBlob } from 'utils/uploadFile';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
children?: React$Element<any>,
|
children?: React.Node,
|
||||||
onSuccess: string => void,
|
onSuccess: string => *,
|
||||||
onError: string => void,
|
onError: string => *,
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class DropToImport extends Component {
|
class DropToImport extends React.Component<Props> {
|
||||||
@observable isUploading: boolean = false;
|
@observable isUploading: boolean = false;
|
||||||
@observable isCropping: boolean = false;
|
@observable isCropping: boolean = false;
|
||||||
@observable zoom: number = 1;
|
@observable zoom: number = 1;
|
||||||
props: Props;
|
|
||||||
file: File;
|
file: File;
|
||||||
avatarEditorRef: AvatarEditor;
|
avatarEditorRef: AvatarEditor;
|
||||||
|
|
||||||
|
@ -46,7 +45,7 @@ class DropToImport extends Component {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
handleZoom = (event: SyntheticDragEvent) => {
|
handleZoom = (event: SyntheticDragEvent<*>) => {
|
||||||
let target = event.target;
|
let target = event.target;
|
||||||
if (target instanceof HTMLInputElement) {
|
if (target instanceof HTMLInputElement) {
|
||||||
this.zoom = parseFloat(target.value);
|
this.zoom = parseFloat(target.value);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
import { MoreIcon } from 'outline-icons';
|
import { MoreIcon } from 'outline-icons';
|
||||||
|
|
||||||
|
@ -13,10 +13,8 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class UserMenu extends Component {
|
class UserMenu extends React.Component<Props> {
|
||||||
props: Props;
|
handlePromote = (ev: SyntheticEvent<*>) => {
|
||||||
|
|
||||||
handlePromote = (ev: SyntheticEvent) => {
|
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { user, users } = this.props;
|
const { user, users } = this.props;
|
||||||
if (
|
if (
|
||||||
|
@ -31,7 +29,7 @@ class UserMenu extends Component {
|
||||||
users.promote(user);
|
users.promote(user);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleDemote = (ev: SyntheticEvent) => {
|
handleDemote = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { user, users } = this.props;
|
const { user, users } = this.props;
|
||||||
if (!window.confirm(`Are you want to make ${user.name} a member?`)) {
|
if (!window.confirm(`Are you want to make ${user.name} a member?`)) {
|
||||||
|
@ -40,7 +38,7 @@ class UserMenu extends Component {
|
||||||
users.demote(user);
|
users.demote(user);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleSuspend = (ev: SyntheticEvent) => {
|
handleSuspend = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { user, users } = this.props;
|
const { user, users } = this.props;
|
||||||
if (
|
if (
|
||||||
|
@ -53,7 +51,7 @@ class UserMenu extends Component {
|
||||||
users.suspend(user);
|
users.suspend(user);
|
||||||
};
|
};
|
||||||
|
|
||||||
handleActivate = (ev: SyntheticEvent) => {
|
handleActivate = (ev: SyntheticEvent<*>) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
const { user, users } = this.props;
|
const { user, users } = this.props;
|
||||||
users.activate(user);
|
users.activate(user);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React from 'react';
|
import * as React from 'react';
|
||||||
import { Redirect } from 'react-router-dom';
|
import { Redirect } from 'react-router-dom';
|
||||||
import type { Location } from 'react-router-dom';
|
import type { Location } from 'react-router-dom';
|
||||||
import queryString from 'query-string';
|
import queryString from 'query-string';
|
||||||
|
@ -16,8 +16,7 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
@observer
|
@observer
|
||||||
class SlackAuth extends React.Component {
|
class SlackAuth extends React.Component<Props> {
|
||||||
props: Props;
|
|
||||||
@observable redirectTo: string;
|
@observable redirectTo: string;
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Component } from 'react';
|
import * as React from 'react';
|
||||||
import { observer, inject } from 'mobx-react';
|
import { observer, inject } from 'mobx-react';
|
||||||
import CenteredContent from 'components/CenteredContent';
|
import CenteredContent from 'components/CenteredContent';
|
||||||
import { ListPlaceholder } from 'components/LoadingPlaceholder';
|
import { ListPlaceholder } from 'components/LoadingPlaceholder';
|
||||||
|
@ -8,12 +8,12 @@ import PageTitle from 'components/PageTitle';
|
||||||
import DocumentList from 'components/DocumentList';
|
import DocumentList from 'components/DocumentList';
|
||||||
import DocumentsStore from 'stores/DocumentsStore';
|
import DocumentsStore from 'stores/DocumentsStore';
|
||||||
|
|
||||||
@observer
|
type Props = {
|
||||||
class Starred extends Component {
|
documents: DocumentsStore,
|
||||||
props: {
|
};
|
||||||
documents: DocumentsStore,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
@observer
|
||||||
|
class Starred extends React.Component<Props> {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.props.documents.fetchStarred();
|
this.props.documents.fetchStarred();
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,7 +81,7 @@ class AuthStore {
|
||||||
authWithSlack = async (code: string, state: string) => {
|
authWithSlack = async (code: string, state: string) => {
|
||||||
// in the case of direct install from the Slack app store the state is
|
// in the case of direct install from the Slack app store the state is
|
||||||
// created on the server and set as a cookie
|
// created on the server and set as a cookie
|
||||||
const serverState = Cookie.get('state', { path: '/' });
|
const serverState = Cookie.get('state');
|
||||||
if (state !== this.oauthState && state !== serverState) {
|
if (state !== this.oauthState && state !== serverState) {
|
||||||
return {
|
return {
|
||||||
success: false,
|
success: false,
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
// @flow
|
// @flow
|
||||||
export default function getDataTransferFiles(event: SyntheticEvent) {
|
export default function getDataTransferFiles(event: SyntheticEvent<*>): File[] {
|
||||||
let dataTransferItemsList = [];
|
let dataTransferItemsList = [];
|
||||||
|
|
||||||
|
// $FlowFixMe
|
||||||
if (event.dataTransfer) {
|
if (event.dataTransfer) {
|
||||||
const dt = event.dataTransfer;
|
const dt = event.dataTransfer;
|
||||||
if (dt.files && dt.files.length) {
|
if (dt.files && dt.files.length) {
|
||||||
|
@ -10,6 +12,8 @@ export default function getDataTransferFiles(event: SyntheticEvent) {
|
||||||
// but Chrome implements some drag store, which is accesible via dataTransfer.items
|
// but Chrome implements some drag store, which is accesible via dataTransfer.items
|
||||||
dataTransferItemsList = dt.items;
|
dataTransferItemsList = dt.items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// $FlowFixMe
|
||||||
} else if (event.target && event.target.files) {
|
} else if (event.target && event.target.files) {
|
||||||
dataTransferItemsList = event.target.files;
|
dataTransferItemsList = event.target.files;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ export const uploadFile = async (
|
||||||
formData.append(key, data.form[key]);
|
formData.append(key, data.form[key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// $FlowFixMe
|
||||||
if (file.blob) {
|
if (file.blob) {
|
||||||
// $FlowFixMe
|
// $FlowFixMe
|
||||||
formData.append('file', file.file);
|
formData.append('file', file.file);
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
// flow-typed signature: 1716f73356cbdf5450e8d7ab82dd2e1a
|
||||||
|
// flow-typed version: <<STUB>>/@tommoor/slate-drop-or-paste-images_v^0.8.1/flow_v0.71.0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an autogenerated libdef stub for:
|
||||||
|
*
|
||||||
|
* '@tommoor/slate-drop-or-paste-images'
|
||||||
|
*
|
||||||
|
* Fill this stub out by replacing all the `any` types.
|
||||||
|
*
|
||||||
|
* Once filled out, we encourage you to share your work with the
|
||||||
|
* community by sending a pull request to:
|
||||||
|
* https://github.com/flowtype/flow-typed
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We include stubs for each file inside this npm package in case you need to
|
||||||
|
* require those files directly. Feel free to delete any files that aren't
|
||||||
|
* needed.
|
||||||
|
*/
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/dist/slate-drop-or-paste-images' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/dist/slate-drop-or-paste-images.min' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/data-uri-to-blob' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/image-to-data-uri' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/index' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/load-image-file' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filename aliases
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/dist/slate-drop-or-paste-images.js' {
|
||||||
|
declare module.exports: $Exports<'@tommoor/slate-drop-or-paste-images/dist/slate-drop-or-paste-images'>;
|
||||||
|
}
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/dist/slate-drop-or-paste-images.min.js' {
|
||||||
|
declare module.exports: $Exports<'@tommoor/slate-drop-or-paste-images/dist/slate-drop-or-paste-images.min'>;
|
||||||
|
}
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/data-uri-to-blob.js' {
|
||||||
|
declare module.exports: $Exports<'@tommoor/slate-drop-or-paste-images/lib/data-uri-to-blob'>;
|
||||||
|
}
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/image-to-data-uri.js' {
|
||||||
|
declare module.exports: $Exports<'@tommoor/slate-drop-or-paste-images/lib/image-to-data-uri'>;
|
||||||
|
}
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/index.js' {
|
||||||
|
declare module.exports: $Exports<'@tommoor/slate-drop-or-paste-images/lib/index'>;
|
||||||
|
}
|
||||||
|
declare module '@tommoor/slate-drop-or-paste-images/lib/load-image-file.js' {
|
||||||
|
declare module.exports: $Exports<'@tommoor/slate-drop-or-paste-images/lib/load-image-file'>;
|
||||||
|
}
|
|
@ -0,0 +1,431 @@
|
||||||
|
// flow-typed signature: 0cb55f2f1730c36c81fb4d6e5baedccf
|
||||||
|
// flow-typed version: <<STUB>>/autotrack_v^2.4.1/flow_v0.71.0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an autogenerated libdef stub for:
|
||||||
|
*
|
||||||
|
* 'autotrack'
|
||||||
|
*
|
||||||
|
* Fill this stub out by replacing all the `any` types.
|
||||||
|
*
|
||||||
|
* Once filled out, we encourage you to share your work with the
|
||||||
|
* community by sending a pull request to:
|
||||||
|
* https://github.com/flowtype/flow-typed
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare module 'autotrack' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We include stubs for each file inside this npm package in case you need to
|
||||||
|
* require those files directly. Feel free to delete any files that aren't
|
||||||
|
* needed.
|
||||||
|
*/
|
||||||
|
declare module 'autotrack/autotrack' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/bin/build' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/bin/errors' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/gulpfile' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/constants' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/event-emitter' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/analytics' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/clean-url-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/event-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/impression-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/max-scroll-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/media-query-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/outbound-form-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/outbound-link-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/page-visibility-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/session' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/social-widget-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/externs/url-change-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/index' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/method-chain' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/clean-url-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/event-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/impression-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/max-scroll-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/media-query-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/outbound-form-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/outbound-link-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/page-visibility-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/social-widget-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/plugins/url-change-tracker' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/provide' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/session' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/store' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/usage' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/lib/utilities' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/analytics_debug' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/analytics' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/clean-url-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/event-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/ga' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/impression-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/index-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/max-scroll-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/media-query-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/outbound-form-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/outbound-link-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/page-visibility-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/server' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/social-widget-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/url-change-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/e2e/wdio.conf' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/unit/event-emitter-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/unit/method-chain-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/unit/plugins/clean-url-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/unit/plugins/page-visibility-tracker-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/unit/session-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/unit/store-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'autotrack/test/unit/utilities-test' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filename aliases
|
||||||
|
declare module 'autotrack/autotrack.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/autotrack'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/bin/build.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/bin/build'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/bin/errors.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/bin/errors'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/gulpfile.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/gulpfile'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/constants.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/constants'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/event-emitter.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/event-emitter'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/analytics.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/analytics'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/clean-url-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/clean-url-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/event-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/event-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/impression-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/impression-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/max-scroll-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/max-scroll-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/media-query-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/media-query-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/outbound-form-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/outbound-form-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/outbound-link-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/outbound-link-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/page-visibility-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/page-visibility-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/session.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/session'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/social-widget-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/social-widget-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/externs/url-change-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/externs/url-change-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/index.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/index'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/method-chain.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/method-chain'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/clean-url-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/clean-url-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/event-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/event-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/impression-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/impression-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/max-scroll-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/max-scroll-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/media-query-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/media-query-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/outbound-form-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/outbound-form-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/outbound-link-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/outbound-link-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/page-visibility-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/page-visibility-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/social-widget-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/social-widget-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/plugins/url-change-tracker.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/plugins/url-change-tracker'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/provide.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/provide'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/session.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/session'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/store.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/store'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/usage.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/usage'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/lib/utilities.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/lib/utilities'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/analytics_debug.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/analytics_debug'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/analytics.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/analytics'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/clean-url-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/clean-url-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/event-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/event-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/ga.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/ga'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/impression-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/impression-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/index-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/index-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/max-scroll-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/max-scroll-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/media-query-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/media-query-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/outbound-form-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/outbound-form-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/outbound-link-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/outbound-link-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/page-visibility-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/page-visibility-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/server.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/server'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/social-widget-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/social-widget-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/url-change-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/url-change-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/e2e/wdio.conf.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/e2e/wdio.conf'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/unit/event-emitter-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/unit/event-emitter-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/unit/method-chain-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/unit/method-chain-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/unit/plugins/clean-url-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/unit/plugins/clean-url-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/unit/plugins/page-visibility-tracker-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/unit/plugins/page-visibility-tracker-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/unit/session-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/unit/session-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/unit/store-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/unit/store-test'>;
|
||||||
|
}
|
||||||
|
declare module 'autotrack/test/unit/utilities-test.js' {
|
||||||
|
declare module.exports: $Exports<'autotrack/test/unit/utilities-test'>;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: b44c78d7279f78b485d76b15c08cd683
|
// flow-typed signature: e24af6bf202d8e5fab4e87cde4d2bfa2
|
||||||
// flow-typed version: <<STUB>>/babel-core_v^6.24.1/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-core_v^6.24.1/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 1bf74b25fb82cd002e8b966a31086e1a
|
// flow-typed signature: 533f9ec506a216e4d7a0f986dfe83e8b
|
||||||
// flow-typed version: <<STUB>>/babel-eslint_v^7.2.3/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-eslint_v^8.1.2/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
@ -22,59 +22,102 @@ declare module 'babel-eslint' {
|
||||||
* require those files directly. Feel free to delete any files that aren't
|
* require those files directly. Feel free to delete any files that aren't
|
||||||
* needed.
|
* needed.
|
||||||
*/
|
*/
|
||||||
declare module 'babel-eslint/babylon-to-espree/attachComments' {
|
declare module 'babel-eslint/lib/analyze-scope' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'babel-eslint/babylon-to-espree/convertComments' {
|
declare module 'babel-eslint/lib/babylon-to-espree/attachComments' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'babel-eslint/babylon-to-espree/convertTemplateType' {
|
declare module 'babel-eslint/lib/babylon-to-espree/convertComments' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'babel-eslint/babylon-to-espree/index' {
|
declare module 'babel-eslint/lib/babylon-to-espree/convertTemplateType' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'babel-eslint/babylon-to-espree/toAST' {
|
declare module 'babel-eslint/lib/babylon-to-espree/index' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'babel-eslint/babylon-to-espree/toToken' {
|
declare module 'babel-eslint/lib/babylon-to-espree/toAST' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'babel-eslint/babylon-to-espree/toTokens' {
|
declare module 'babel-eslint/lib/babylon-to-espree/toToken' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-eslint/lib/babylon-to-espree/toTokens' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-eslint/lib/index' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-eslint/lib/parse-with-patch' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-eslint/lib/parse-with-scope' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-eslint/lib/parse' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-eslint/lib/patch-eslint-scope' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-eslint/lib/visitor-keys' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filename aliases
|
// Filename aliases
|
||||||
declare module 'babel-eslint/babylon-to-espree/attachComments.js' {
|
declare module 'babel-eslint/lib/analyze-scope.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint/babylon-to-espree/attachComments'>;
|
declare module.exports: $Exports<'babel-eslint/lib/analyze-scope'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/babylon-to-espree/convertComments.js' {
|
declare module 'babel-eslint/lib/babylon-to-espree/attachComments.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint/babylon-to-espree/convertComments'>;
|
declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/attachComments'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/babylon-to-espree/convertTemplateType.js' {
|
declare module 'babel-eslint/lib/babylon-to-espree/convertComments.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint/babylon-to-espree/convertTemplateType'>;
|
declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/convertComments'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/babylon-to-espree/index.js' {
|
declare module 'babel-eslint/lib/babylon-to-espree/convertTemplateType.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint/babylon-to-espree/index'>;
|
declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/convertTemplateType'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/babylon-to-espree/toAST.js' {
|
declare module 'babel-eslint/lib/babylon-to-espree/index.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toAST'>;
|
declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/index'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/babylon-to-espree/toToken.js' {
|
declare module 'babel-eslint/lib/babylon-to-espree/toAST.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toToken'>;
|
declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/toAST'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/babylon-to-espree/toTokens.js' {
|
declare module 'babel-eslint/lib/babylon-to-espree/toToken.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint/babylon-to-espree/toTokens'>;
|
declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/toToken'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/index' {
|
declare module 'babel-eslint/lib/babylon-to-espree/toTokens.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint'>;
|
declare module.exports: $Exports<'babel-eslint/lib/babylon-to-espree/toTokens'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-eslint/index.js' {
|
declare module 'babel-eslint/lib/index.js' {
|
||||||
declare module.exports: $Exports<'babel-eslint'>;
|
declare module.exports: $Exports<'babel-eslint/lib/index'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-eslint/lib/parse-with-patch.js' {
|
||||||
|
declare module.exports: $Exports<'babel-eslint/lib/parse-with-patch'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-eslint/lib/parse-with-scope.js' {
|
||||||
|
declare module.exports: $Exports<'babel-eslint/lib/parse-with-scope'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-eslint/lib/parse.js' {
|
||||||
|
declare module.exports: $Exports<'babel-eslint/lib/parse'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-eslint/lib/patch-eslint-scope.js' {
|
||||||
|
declare module.exports: $Exports<'babel-eslint/lib/patch-eslint-scope'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-eslint/lib/visitor-keys.js' {
|
||||||
|
declare module.exports: $Exports<'babel-eslint/lib/visitor-keys'>;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 3c809891622d6f698104648531a2877f
|
// flow-typed signature: 16a74ec1b3f30574b1d17af2e1aae17e
|
||||||
// flow-typed version: <<STUB>>/babel-jest_v^20.0.0/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-jest_v22/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 62273b6ed2d83e96178263d3cc4988ea
|
// flow-typed signature: a62195ffbfff5c6790934103be75a8ff
|
||||||
// flow-typed version: <<STUB>>/babel-loader_v6.2.5/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-loader_v^7.1.2/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
@ -26,11 +26,7 @@ declare module 'babel-loader/lib/fs-cache' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
declare module 'babel-loader/lib/helpers/exists' {
|
declare module 'babel-loader/lib/index' {
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'babel-loader/lib/helpers/read' {
|
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,22 +34,34 @@ declare module 'babel-loader/lib/resolve-rc' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare module 'babel-loader/lib/utils/exists' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-loader/lib/utils/read' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-loader/lib/utils/relative' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
// Filename aliases
|
// Filename aliases
|
||||||
declare module 'babel-loader/index' {
|
|
||||||
declare module.exports: $Exports<'babel-loader'>;
|
|
||||||
}
|
|
||||||
declare module 'babel-loader/index.js' {
|
|
||||||
declare module.exports: $Exports<'babel-loader'>;
|
|
||||||
}
|
|
||||||
declare module 'babel-loader/lib/fs-cache.js' {
|
declare module 'babel-loader/lib/fs-cache.js' {
|
||||||
declare module.exports: $Exports<'babel-loader/lib/fs-cache'>;
|
declare module.exports: $Exports<'babel-loader/lib/fs-cache'>;
|
||||||
}
|
}
|
||||||
declare module 'babel-loader/lib/helpers/exists.js' {
|
declare module 'babel-loader/lib/index.js' {
|
||||||
declare module.exports: $Exports<'babel-loader/lib/helpers/exists'>;
|
declare module.exports: $Exports<'babel-loader/lib/index'>;
|
||||||
}
|
|
||||||
declare module 'babel-loader/lib/helpers/read.js' {
|
|
||||||
declare module.exports: $Exports<'babel-loader/lib/helpers/read'>;
|
|
||||||
}
|
}
|
||||||
declare module 'babel-loader/lib/resolve-rc.js' {
|
declare module 'babel-loader/lib/resolve-rc.js' {
|
||||||
declare module.exports: $Exports<'babel-loader/lib/resolve-rc'>;
|
declare module.exports: $Exports<'babel-loader/lib/resolve-rc'>;
|
||||||
}
|
}
|
||||||
|
declare module 'babel-loader/lib/utils/exists.js' {
|
||||||
|
declare module.exports: $Exports<'babel-loader/lib/utils/exists'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-loader/lib/utils/read.js' {
|
||||||
|
declare module.exports: $Exports<'babel-loader/lib/utils/read'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-loader/lib/utils/relative.js' {
|
||||||
|
declare module.exports: $Exports<'babel-loader/lib/utils/relative'>;
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 312645f2a8bab19c593f2670a7ff103f
|
// flow-typed signature: 47c9088583f2a3b1c3bb03b4055baece
|
||||||
// flow-typed version: <<STUB>>/babel-plugin-lodash_v^3.2.11/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-plugin-lodash_v^3.2.11/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
// flow-typed signature: 9da92a15fa5848fd1ac62d37d77a6850
|
||||||
|
// flow-typed version: <<STUB>>/babel-plugin-styled-components_v^1.1.7/flow_v0.71.0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an autogenerated libdef stub for:
|
||||||
|
*
|
||||||
|
* 'babel-plugin-styled-components'
|
||||||
|
*
|
||||||
|
* Fill this stub out by replacing all the `any` types.
|
||||||
|
*
|
||||||
|
* Once filled out, we encourage you to share your work with the
|
||||||
|
* community by sending a pull request to:
|
||||||
|
* https://github.com/flowtype/flow-typed
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We include stubs for each file inside this npm package in case you need to
|
||||||
|
* require those files directly. Feel free to delete any files that aren't
|
||||||
|
* needed.
|
||||||
|
*/
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/placeholderUtils' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocess' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocessInjectGlobal' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocessKeyframes' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocessUtils' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/index' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/minify/index' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/detectors' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/getName' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/hash' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/options' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/displayNameAndId' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/minify' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/noParserImport' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/templateLiterals/index' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/templateLiterals/preprocess' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/templateLiterals/transpile' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filename aliases
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/placeholderUtils.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/css/placeholderUtils'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocess.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/css/preprocess'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocessInjectGlobal.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/css/preprocessInjectGlobal'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocessKeyframes.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/css/preprocessKeyframes'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/css/preprocessUtils.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/css/preprocessUtils'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/index.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/index'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/minify/index.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/minify/index'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/detectors.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/utils/detectors'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/getName.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/utils/getName'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/hash.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/utils/hash'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/utils/options.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/utils/options'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/displayNameAndId.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/visitors/displayNameAndId'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/minify.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/visitors/minify'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/noParserImport.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/visitors/noParserImport'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/templateLiterals/index.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/visitors/templateLiterals/index'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/templateLiterals/preprocess.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/visitors/templateLiterals/preprocess'>;
|
||||||
|
}
|
||||||
|
declare module 'babel-plugin-styled-components/lib/visitors/templateLiterals/transpile.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-styled-components/lib/visitors/templateLiterals/transpile'>;
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
// flow-typed signature: 652608d2e8431a8c5274bad836ee0926
|
||||||
|
// flow-typed version: <<STUB>>/babel-plugin-syntax-dynamic-import_v^6.18.0/flow_v0.71.0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an autogenerated libdef stub for:
|
||||||
|
*
|
||||||
|
* 'babel-plugin-syntax-dynamic-import'
|
||||||
|
*
|
||||||
|
* Fill this stub out by replacing all the `any` types.
|
||||||
|
*
|
||||||
|
* Once filled out, we encourage you to share your work with the
|
||||||
|
* community by sending a pull request to:
|
||||||
|
* https://github.com/flowtype/flow-typed
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare module 'babel-plugin-syntax-dynamic-import' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We include stubs for each file inside this npm package in case you need to
|
||||||
|
* require those files directly. Feel free to delete any files that aren't
|
||||||
|
* needed.
|
||||||
|
*/
|
||||||
|
declare module 'babel-plugin-syntax-dynamic-import/lib/index' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filename aliases
|
||||||
|
declare module 'babel-plugin-syntax-dynamic-import/lib/index.js' {
|
||||||
|
declare module.exports: $Exports<'babel-plugin-syntax-dynamic-import/lib/index'>;
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 1ac90a5b65b8621f1c6637100a3a49a0
|
// flow-typed signature: b26839abd705c305219fee62938d492b
|
||||||
// flow-typed version: <<STUB>>/babel-plugin-transform-class-properties_v^6.24.1/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-plugin-transform-class-properties_v^6.24.1/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 883d88f87fe00aad41cc10200f4ed5c7
|
// flow-typed signature: c7f83286bf05aa71691f77b01cfe5ca8
|
||||||
// flow-typed version: <<STUB>>/babel-plugin-transform-decorators-legacy_v1.3.4/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-plugin-transform-decorators-legacy_v1.3.4/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: c39ed7e0d504b99dbad16f4bc21577b7
|
// flow-typed signature: 9afa5c60629c28d30730ce2df5dcfcd7
|
||||||
// flow-typed version: <<STUB>>/babel-plugin-transform-es2015-destructuring_v^6.23.0/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-plugin-transform-es2015-destructuring_v^6.23.0/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: fabb91c6625b44603da3815cb1a0f606
|
// flow-typed signature: c96a996d8250423b12b2ed9faec13a86
|
||||||
// flow-typed version: <<STUB>>/babel-plugin-transform-es2015-modules-commonjs_v^6.24.1/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-plugin-transform-es2015-modules-commonjs_v^6.24.1/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 9d5aec989f663e1a1ee84160a9b94c9a
|
// flow-typed signature: 51b77fa264d9add521224f44df19df82
|
||||||
// flow-typed version: <<STUB>>/babel-plugin-transform-object-rest-spread_v^6.23.0/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-plugin-transform-object-rest-spread_v^6.23.0/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: d717de46f6c57058188f79e90ea26c27
|
// flow-typed signature: 246c54ac874037a4d9cffcb766e3bc91
|
||||||
// flow-typed version: <<STUB>>/babel-plugin-transform-regenerator_v^6.24.1/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-plugin-transform-regenerator_v^6.24.1/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 6faf55e0643acc0d5b765261064df0f4
|
// flow-typed signature: 5a748d46bf980bce1150ad979eb02e73
|
||||||
// flow-typed version: <<STUB>>/babel-polyfill_v^6.13.0/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-polyfill_v^6.13.0/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: b1c4442700dc843a41b14e8290b7e9d2
|
// flow-typed signature: b27490fff2d5c4468766643659a3eb2b
|
||||||
// flow-typed version: <<STUB>>/babel-preset-env_v^1.4.0/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-preset-env_v^1.4.0/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
@ -46,10 +46,18 @@ declare module 'babel-preset-env/lib/normalize-options' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare module 'babel-preset-env/lib/targets-parser' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
declare module 'babel-preset-env/lib/transform-polyfill-require-plugin' {
|
declare module 'babel-preset-env/lib/transform-polyfill-require-plugin' {
|
||||||
declare module.exports: any;
|
declare module.exports: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
declare module 'babel-preset-env/lib/utils' {
|
||||||
|
declare module.exports: any;
|
||||||
|
}
|
||||||
|
|
||||||
// Filename aliases
|
// Filename aliases
|
||||||
declare module 'babel-preset-env/data/built-in-features.js' {
|
declare module 'babel-preset-env/data/built-in-features.js' {
|
||||||
declare module.exports: $Exports<'babel-preset-env/data/built-in-features'>;
|
declare module.exports: $Exports<'babel-preset-env/data/built-in-features'>;
|
||||||
|
@ -69,6 +77,12 @@ declare module 'babel-preset-env/lib/module-transformations.js' {
|
||||||
declare module 'babel-preset-env/lib/normalize-options.js' {
|
declare module 'babel-preset-env/lib/normalize-options.js' {
|
||||||
declare module.exports: $Exports<'babel-preset-env/lib/normalize-options'>;
|
declare module.exports: $Exports<'babel-preset-env/lib/normalize-options'>;
|
||||||
}
|
}
|
||||||
|
declare module 'babel-preset-env/lib/targets-parser.js' {
|
||||||
|
declare module.exports: $Exports<'babel-preset-env/lib/targets-parser'>;
|
||||||
|
}
|
||||||
declare module 'babel-preset-env/lib/transform-polyfill-require-plugin.js' {
|
declare module 'babel-preset-env/lib/transform-polyfill-require-plugin.js' {
|
||||||
declare module.exports: $Exports<'babel-preset-env/lib/transform-polyfill-require-plugin'>;
|
declare module.exports: $Exports<'babel-preset-env/lib/transform-polyfill-require-plugin'>;
|
||||||
}
|
}
|
||||||
|
declare module 'babel-preset-env/lib/utils.js' {
|
||||||
|
declare module.exports: $Exports<'babel-preset-env/lib/utils'>;
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 71439ef11c08f129d231c93a25ce7736
|
// flow-typed signature: c846d354ff1571b99d50a1c57f08f6e6
|
||||||
// flow-typed version: <<STUB>>/babel-preset-react-hmre_v1.1.1/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-preset-react-hmre_v1.1.1/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: b8a09cacee593afd996e2174c52b3f54
|
// flow-typed signature: ff1392fee98b43939eca4077f29d32a4
|
||||||
// flow-typed version: <<STUB>>/babel-preset-react_v6.11.1/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-preset-react_v6.11.1/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// flow-typed signature: 452b03ec25e282c97f4b314724acb4b9
|
// flow-typed signature: 9feb616713e12a7d3ffecfc3f6a59af1
|
||||||
// flow-typed version: <<STUB>>/babel-regenerator-runtime_v6.5.0/flow_v0.49.1
|
// flow-typed version: <<STUB>>/babel-regenerator-runtime_v6.5.0/flow_v0.71.0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an autogenerated libdef stub for:
|
* This is an autogenerated libdef stub for:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue