UNPKG

23.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"react-firestore.umd.min.js","sources":["../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../src/FirestoreCache.js","../src/FirestoreProvider.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../src/withFirestore.js","../src/FirestoreCollection.js","../src/utils/deepEqual.js","../src/FirestoreDocument.js","../src/Firestore.js"],"sourcesContent":["export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default class FirestoreCache {}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport FirestoreCache from './FirestoreCache';\n\nexport const FirestoreContext = React.createContext(null);\n\nexport default class FirestoreProvider extends Component {\n static propTypes = {\n firebase: PropTypes.object.isRequired,\n children: PropTypes.node.isRequired,\n useTimestampsInSnapshots: PropTypes.bool,\n };\n\n static defaultProps = {};\n\n constructor(props) {\n super(props);\n\n const { firebase, useTimestampsInSnapshots } = props;\n const firestore = firebase.firestore();\n if (typeof useTimestampsInSnapshots !== 'undefined') {\n const settings = { timestampsInSnapshots: useTimestampsInSnapshots };\n firestore.settings(settings);\n }\n\n this.state = {\n firestoreDatabase: firestore,\n firestoreCache: new FirestoreCache(),\n };\n }\n\n render() {\n return (\n <FirestoreContext.Provider value={this.state}>\n {this.props.children}\n </FirestoreContext.Provider>\n );\n }\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/** @license React v16.8.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { FirestoreContext } from './FirestoreProvider';\n\nconst withFirestore = Component => {\n const C = ({ wrappedComponentRef, ...remainingProps }) => (\n <FirestoreContext.Consumer>\n {value => {\n if (!value) {\n throw new Error('FirestoreProvider is missing');\n }\n const { firestoreDatabase } = value;\n return (\n <Component\n {...remainingProps}\n firestore={firestoreDatabase}\n ref={wrappedComponentRef}\n />\n );\n }}\n </FirestoreContext.Consumer>\n );\n C.displayName = `withFirestore(${Component.displayName || Component.name})`;\n C.WrappedComponent = Component;\n C.propTypes = {\n wrappedComponentRef: PropTypes.func,\n };\n\n return hoistStatics(C, Component);\n};\n\nexport default withFirestore;\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport withFirestore from './withFirestore';\nimport deepEqual from './utils/deepEqual';\n\nclass FirestoreCollection extends Component {\n static propTypes = {\n path: PropTypes.string.isRequired,\n sort: PropTypes.string,\n limit: PropTypes.number,\n filter: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.object,\n ]),\n ),\n PropTypes.arrayOf(PropTypes.array),\n ]),\n children: PropTypes.func,\n render: PropTypes.func,\n firestore: PropTypes.object.isRequired,\n };\n\n state = {\n isLoading: true,\n data: [],\n error: null,\n snapshot: null,\n };\n\n componentDidMount() {\n this.setupFirestoreListener();\n }\n\n componentWillUnmount() {\n this.handleUnsubscribe();\n }\n\n componentWillReceiveProps(nextProps) {\n if (\n nextProps.path !== this.props.path ||\n nextProps.sort !== this.props.sort ||\n nextProps.limit !== this.props.limit ||\n !deepEqual(nextProps.filter, this.props.filter)\n ) {\n this.handleUnsubscribe();\n\n this.setState({ isLoading: true }, () => this.setupFirestoreListener());\n }\n }\n\n handleUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n setupFirestoreListener = () => {\n const { firestore, path, ...queryProps } = this.props;\n const collectionRef = firestore.collection(path);\n const query = this.buildQuery(collectionRef, queryProps);\n\n this.unsubscribe = query.onSnapshot(\n this.handleOnSnapshotSuccess,\n this.handleOnSnapshotError,\n );\n };\n\n handleOnSnapshotSuccess = snapshot => {\n if (snapshot) {\n this.setState({\n isLoading: false,\n data: snapshot.docs.map(doc => ({\n id: doc.id,\n ...doc.data(),\n })),\n error: null,\n snapshot,\n });\n }\n };\n\n handleOnSnapshotError = error => {\n this.setState({\n isLoading: false,\n data: [],\n error,\n snapshot: null,\n });\n };\n\n buildQuery = (collectionRef, queryProps) => {\n const { sort, limit, filter } = queryProps;\n let query = collectionRef;\n\n if (sort) {\n sort.split(',').forEach(sortItem => {\n const [field, order] = sortItem.split(':');\n\n query = query.orderBy(field, order);\n });\n }\n\n if (limit) {\n query = query.limit(limit);\n }\n\n if (filter) {\n //if filter is array of array, build the compound query\n if (Array.isArray(filter[0])) {\n filter.forEach(clause => {\n query = query.where(...clause);\n });\n } else {\n //build the simple query\n query = query.where(...filter);\n }\n }\n\n return query;\n };\n\n render() {\n const { children, render } = this.props;\n\n if (render) return render(this.state);\n\n if (typeof children === 'function') return children(this.state);\n\n return null;\n }\n}\n\nexport default withFirestore(FirestoreCollection);\n","/**\n * Deep equality comparison for Arrays\n * @param {Array} a The array to compare against\n * @param {Array} b The array to compare with\n * @returns {boolean} If the two arrays are equal\n */\nexport default function deepEqual(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n } else {\n return a === b;\n }\n}\n","import { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport withFirestore from './withFirestore';\n\nclass FirestoreDocument extends Component {\n static propTypes = {\n path: PropTypes.string.isRequired,\n children: PropTypes.func,\n render: PropTypes.func,\n firestore: PropTypes.object.isRequired,\n };\n\n state = {\n isLoading: true,\n data: null,\n error: null,\n snapshot: null,\n };\n\n componentDidMount() {\n this.setupFirestoreListener();\n }\n\n componentWillUnmount() {\n this.handleUnsubscribe();\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.path !== this.props.path) {\n this.handleUnsubscribe();\n\n this.setState({ isLoading: true }, () => this.setupFirestoreListener());\n }\n }\n\n handleUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n }\n }\n\n setupFirestoreListener = () => {\n const { firestore, path } = this.props;\n const documentRef = firestore.doc(path);\n\n this.unsubscribe = documentRef.onSnapshot(\n this.handleOnSnapshotSuccess,\n this.handleOnSnapshotError,\n );\n };\n\n handleOnSnapshotError = error => {\n this.setState({\n isLoading: false,\n error,\n data: null,\n snapshot: null,\n });\n };\n\n handleOnSnapshotSuccess = snapshot => {\n if (snapshot) {\n const newState = {\n isLoading: false,\n error: null,\n snapshot,\n };\n\n try {\n const documentData = snapshot.data();\n\n newState.data = {\n id: snapshot.id,\n ...documentData,\n };\n } catch (error) {\n newState.error = error;\n }\n\n this.setState(newState);\n }\n };\n\n render() {\n const { children, render } = this.props;\n\n if (render) return render(this.state);\n\n if (typeof children === 'function') return children(this.state);\n\n return null;\n }\n}\n\nexport default withFirestore(FirestoreDocument);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FirestoreContext } from './FirestoreProvider';\n\nconst Firestore = ({ render }) => (\n <FirestoreContext.Consumer>\n {({ firestoreDatabase }) => render({ firestore: firestoreDatabase })}\n </FirestoreContext.Consumer>\n);\n\nFirestore.propTypes = {\n render: PropTypes.func.isRequired,\n};\n\nexport default Firestore;\n"],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","__proto__","FirestoreCache","FirestoreContext","React","createContext","FirestoreProvider","props","_Component","firebase","useTimestampsInSnapshots","firestore","settings","timestampsInSnapshots","state","firestoreDatabase","firestoreCache","render","Provider","value","this","children","Component","defaultProps","_extends","assign","target","i","arguments","length","source","key","hasOwnProperty","call","apply","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","defineProperty","exports","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","a","u","$$typeof","type","v","module","require$$0","REACT_STATICS","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","name","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","ReactIs","isMemo","ForwardRef","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","concat","targetStatics","sourceStatics","descriptor","withFirestore","C","wrappedComponentRef","remainingProps","Consumer","Error","ref","WrappedComponent","hoistStatics","isLoading","data","error","snapshot","setupFirestoreListener","_this","path","queryProps","collectionRef","collection","query","buildQuery","unsubscribe","onSnapshot","handleOnSnapshotSuccess","handleOnSnapshotError","setState","docs","map","doc","id","sort","limit","filter","split","forEach","sortItem","field","order","orderBy","Array","isArray","clause","where","componentDidMount","componentWillUnmount","handleUnsubscribe","componentWillReceiveProps","nextProps","deepEqual","_this2","documentRef","newState","documentData"],"mappings":"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"}
\No newline at end of file