"use strict";
exports.id = 728;
exports.ids = [728];
exports.modules = {

/***/ 180728:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {


// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "e": () => (/* binding */ Disclaimer),
  "Z": () => (/* binding */ Compare)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(920997);
// EXTERNAL MODULE: external "antd"
var external_antd_ = __webpack_require__(545725);
// EXTERNAL MODULE: ./components/misc/A.tsx
var A = __webpack_require__(617637);
;// CONCATENATED MODULE: ./components/landing/compare.json
const compare_namespaceObject = JSON.parse('[{"name":"jupyter","title":"Online Jupyter Notebooks","link":"/features/jupyter-notebook","products":[{"key":"cocalc","name":"CoCalc","link":"https://cocalc.com"},{"key":"mybinder","name":"MyBinder","link":"https://mybinder.org/"},{"key":"colab","name":"Colab","link":"https://colab.research.google.com/"},{"key":"datalore","name":"Datalore","link":"https://datalore.io"},{"key":"deepnote","name":"Deepnote","link":"https://www.deepnote.com/"}],"rows":[{"feature":"Programming languages","cocalc":"Python, Sage, R, Octave, and many more","mybinder":"Python, R, etc. and customizable","colab":"Python 3","datalore":"Python 3","deepnote":"Python 3, Quip"},{"feature":"IPython Widgets","cocalc":true,"mybinder":true,"colab":true,"datalore":true,"deepnote":true},{"feature":"File sharing between users","cocalc":true,"mybinder":false,"colab":true,"datalore":true,"deepnote":true},{"feature":"Realtime collaboration: multiple people use the same notebook together","cocalc":true,"colab":{"type":false,"note":"Colab used to have realtime sync, but it ended in 2017, when Google terminated their realtime API product.","link":"https://workspaceupdates.googleblog.com/2017/11/committed-to-storage-apis-retiring.html"},"mybinder":"Possible via experimental extension to JupyterLab.","datalore":true,"deepnote":true},{"feature":"Persistence","cocalc":true,"mybinder":false,"colab":"Notebook persists, but data and files do not.","datalore":true,"deepnote":true},{"feature":"Large preinstalled software environment","cocalc":{"type":true,"note":"1500+ Python libraries preinstalled; extensive R, Julia, Octave, and other packages.","link":"https://cocalc.com/software/python"},"mybinder":"Limited","deepnote":{"type":true,"note":"27 featured Python packages","link":"https://docs.deepnote.com/environment/pre-installed-packages"},"datalore":"Python3, SQL, Scala, R, and Kotlin kernels; large pre-installed env with top data science packages"},{"feature":"Paid Plans","cocalc":{"type":true,"note":" Basic - $2 person/month; Pro - scales linearly depending on the resources you need","link":"https://cocalc.com/store"},"mybinder":{"type":false,"note":"Free only"},"colab":{"type":true,"note":"Pro - $9.99 person/month; Pro+ - $49.99 person/month","link":"https://colab.research.google.com/signup/pricing"},"datalore":{"type":true,"note":"Pro - $19.90 person/month; Enterprise - $125 person/month","link":"https://www.jetbrains.com/datalore/enterprise/"},"deepnote":{"type":true,"note":"Pro - $12 person/month; Enterprise - $99 person / month; plus an additional hourly fee for more powerful compute resources at about 7x the market rate","link":"https://deepnote.com/pricing"}},{"feature":"Disk space","cocalc":"3GB/project for free","mybinder":"Ephemeral","colab":"Uses your Google Drive storage","datalore":"Limit of two simultaneously running notebooks","deepnote":"5GB for free"},{"feature":"Memory","cocalc":"1GB/project for free","datalore":"Limit of two simultaneously running notebooks","deepnote":"several GB for free"},{"feature":"Idle timeout","cocalc":"30 minutes for free; pay for more","deepnote":"15 minutes for free; pay for more"},{"feature":"Network access","cocalc":"Only for non-free projects (due to abuse)","colab":true,"datalore":true,"mybinder":true,"deepnote":true},{"feature":"Public Google-indexed searchable publishing of files","cocalc":"Paid","mybinder":false,"datalore":true,"deepnote":true},{"feature":"Self hosting","cocalc":{"type":true,"link":"https://github.com/sagemathinc/cocalc-docker#readme"},"mybinder":true,"colab":false,"datalore":{"type":true,"link":"https://www.jetbrains.com/datalore/enterprise/"},"deepnote":false},{"feature":"Open source","cocalc":{"type":false,"note":"Partial (AGPLv3 + noncommercial use clause)","link":"https://github.com/sagemathinc/cocalc"},"mybinder":true,"colab":{"type":false,"note":"Some components are open","link":"https://github.com/googlecolab"},"datalore":false,"deepnote":{"type":false,"note":"Some of their modifications to upstreams projects are open source","link":"https://github.com/deepnote"}},{"feature":"GPUs","cocalc":{"type":false,"note":"Only when self hosted"},"mybinder":"Only when self hosted","colab":"Yes, for free, and even better when paid.","datalore":"Datalore Professional and when self-hosted","deepnote":true}]},{"name":"latex","title":"Online LaTeX Editors","link":"/features/latex-editor","products":[{"key":"cocalc","name":"CoCalc","link":"https://cocalc.com"},{"key":"overleaf","name":"Overleaf","link":"https://www.overleaf.com/"},{"key":"authorea","name":"Authorea","link":"https://www.authorea.com/"},{"key":"papeeria","name":"Papeeria","link":"https://papeeria.com/"}],"rows":[{"feature":"Realtime collaboration and sync","cocalc":true,"overleaf":"Limited number of collaborators","authorea":false},{"feature":"PDFLaTeX rendering engine","cocalc":true,"overleaf":true,"authorea":false},{"feature":"XeLaTeX rendering engine","cocalc":true,"overleaf":true,"authorea":false},{"feature":"LuaTeX rendering engine","cocalc":true,"overleaf":true,"authorea":false},{"feature":"Upload files","cocalc":true,"overleaf":true,"authorea":true,"papeeria":true},{"feature":"Forward and inverse search","cocalc":true,"overleaf":true,"authorea":null,"papeeria":true},{"feature":"Multifile support","cocalc":true,"overleaf":true,"authorea":null,"papeeria":true},{"feature":"WYSIWYG","cocalc":false,"overleaf":{"type":true,"note":"This is only a partial WYSIWYG-like mode."},"authorea":true,"papeeria":false},{"feature":"Equation editor","cocalc":false,"overleaf":false,"authorea":true,"papeeria":false},{"feature":"Bibliography","cocalc":{"type":true,"note":"Only BibTex via LaTeX (nothing sophisticated)"},"overleaf":true,"authorea":true,"papeeria":{"type":true,"note":"Limited"}},{"feature":"Preloaded journal templates","cocalc":{"type":false,"note":"However, you can easily upload a template from a journal."},"overleaf":true,"authorea":true,"papeeria":false},{"feature":"Run Python, R and other scripts as part of compilation","cocalc":{"type":true,"note":"CoCalc is particularly good at this."},"overleaf":{"type":true,"note":"But limited."},"authorea":false,"papeeria":false},{"feature":"R/Knitr","cocalc":true,"overleaf":"Limited - very few packages, limited syntax, no caching, slow","authorea":false,"papeeria":false},{"feature":"SageTex","cocalc":true,"overleaf":false,"authorea":false,"papeeria":false},{"feature":"PythonTex","cocalc":true,"overleaf":false,"authorea":false,"papeeria":false},{"feature":"Self hosting","cocalc":true,"overleaf":true,"authorea":false,"papeeria":false}]},{"name":"terminal","title":"Online Linux Terminal","link":"/features/terminal","products":[{"key":"cocalc","name":"CoCalc","link":"https://cocalc.com"},{"key":"cloud","name":"GCE/AWS/Azure Clouds"},{"key":"lxd","name":"LXD.org","link":"https://linuxcontainers.org/"},{"key":"webminal","name":"Webminal","link":"https://www.webminal.org/"}],"rows":[{"feature":"Free access for unlimited time","cocalc":true,"cloud":{"type":false,"note":"Limited trial with credit card"},"lxd":true,"webminal":true},{"feature":"Full Linux","cocalc":true,"cloud":true,"lxd":true},{"feature":"Count of of pre-installed packages, by running \'apt list --installed | wc -l\' or \'rpm -qa | wc -l\'","cocalc":"~ 9500","cloud":null,"lxd":"~ 200","webminal":"~ 700"},{"feature":"Copy/paste","cocalc":true,"cloud":true,"lxd":true},{"feature":"Periodic backups of your data","cocalc":true,"cloud":true,"lxd":false,"webminal":false},{"feature":"Persistent of your data","cocalc":true,"cloud":true,"lxd":false},{"feature":"Ease of setup and configuration","cocalc":"Easy","cloud":"Hard","lxd":"Very Easy","webminal":"Medium"},{"feature":"Root access","cocalc":false,"cloud":true,"lxd":true,"webminal":{"note":"Limited"}}]}]');
// EXTERNAL MODULE: ../frontend/dist/components/icon.js
var icon = __webpack_require__(807772);
// EXTERNAL MODULE: ./components/landing/contact.tsx
var contact = __webpack_require__(745743);
;// CONCATENATED MODULE: ./components/landing/compare.tsx






function Compare({ name , disclaimer , title  }) {
    const v = [];
    for (const table of compare_namespaceObject){
        if (name != null && table.name != name) continue;
        v.push(/*#__PURE__*/ jsx_runtime_.jsx(ComparisonTable, {
            table: table,
            disclaimer: disclaimer,
            title: title
        }, table.name));
    }
    return /*#__PURE__*/ jsx_runtime_.jsx("div", {
        style: {
            background: "white",
            width: "100%"
        },
        children: v
    });
};
function cmp(a, b) {
    a = `${a}`;
    b = `${b}`;
    if (a < b) return -1;
    if (a > b) return 1;
    return 0;
}
function ComparisonTable({ table , disclaimer , title  }) {
    const columns = [
        {
            title: "Feature",
            dataIndex: "feature",
            key: "feature",
            width: "25%"
        }, 
    ];
    for (const product of table.products){
        columns.push({
            width: `${75 / table.products.length}%`,
            title: product.link ? /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                href: product.link,
                alt: "Link to information about this product",
                children: product.name
            }) : product.name,
            key: product.key,
            dataIndex: product.key,
            // @ts-ignore
            render: (support)=>{
                if (support === undefined) {
                    return /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
                        name: "question-circle",
                        style: {
                            color: "#888",
                            fontSize: "20px"
                        }
                    });
                }
                if (typeof support == "boolean" || support === null) {
                    return /*#__PURE__*/ jsx_runtime_.jsx(SupportMarker, {
                        type: support
                    });
                }
                let type;
                let note;
                let link = "";
                if (typeof support == "string") {
                    type = true;
                    note = support;
                } else {
                    type = support.type;
                    note = support.note;
                    link = support.link;
                }
                return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
                    children: [
                        /*#__PURE__*/ jsx_runtime_.jsx(SupportMarker, {
                            type: type
                        }),
                        " ",
                        type !== undefined && /*#__PURE__*/ jsx_runtime_.jsx("br", {}),
                        note && /*#__PURE__*/ jsx_runtime_.jsx("div", {
                            style: {
                                color: "#666",
                                fontSize: "9pt"
                            },
                            children: note
                        }),
                        link && /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                            style: {
                                fontSize: "7pt"
                            },
                            href: link,
                            children: link
                        })
                    ]
                });
            },
            sorter: (a, b)=>cmp(a[product.key], b[product.key])
        });
    }
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
        style: {
            margin: "auto",
            padding: "30px",
            overflowX: "auto"
        },
        children: [
            title ? title : /*#__PURE__*/ (0,jsx_runtime_.jsxs)("h1", {
                style: {
                    textAlign: "center"
                },
                children: [
                    table.title,
                    "\xa0\xa0\xa0\xa0",
                    /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                        href: table.link,
                        style: {
                            fontSize: "11pt"
                        },
                        alt: "Link to learn more about this",
                        children: "learn more"
                    })
                ]
            }),
            /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Table, {
                dataSource: table.rows,
                columns: columns,
                bordered: true,
                pagination: false,
                rowKey: "feature"
            }),
            disclaimer && /*#__PURE__*/ jsx_runtime_.jsx(Disclaimer, {})
        ]
    });
}
function SupportMarker({ type  }) {
    if (type === true) {
        return /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
            name: "check",
            style: {
                color: "green",
                fontSize: "20px"
            }
        });
    } else if (type === false) {
        return /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
            name: "times",
            style: {
                color: "red",
                fontSize: "20px"
            }
        });
    } else if (type === null) {
        return /*#__PURE__*/ jsx_runtime_.jsx("span", {
            style: {
                color: "#888"
            },
            children: "N/A"
        });
    } else {
        return null;
    }
}
function Disclaimer() {
    return /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Alert, {
        style: {
            margin: "30px auto",
            maxWidth: "900px"
        },
        message: "",
        description: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("span", {
            style: {
                fontSize: "10pt"
            },
            children: [
                "These comparisons were made in good faith; however, they may contain errors, since we know CoCalc better and the products are constantly improving. ",
                /*#__PURE__*/ jsx_runtime_.jsx(contact/* default */.Z, {}),
                " if anything looks wrong or incomplete!"
            ]
        }),
        type: "warning",
        showIcon: true
    });
}


/***/ })

};
;