"use strict";
(() => {
var exports = {};
exports.id = 1156;
exports.ids = [1156,7206,9516];
exports.modules = {

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

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Code)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(545725);
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(antd__WEBPACK_IMPORTED_MODULE_1__);


const { Text  } = antd__WEBPACK_IMPORTED_MODULE_1__.Typography;
function Code({ children , style  }) {
    return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(Text, {
        code: true,
        style: style,
        children: children
    });
}


/***/ }),

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

// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* binding */ Executables),
  "getServerSideProps": () => (/* binding */ getServerSideProps)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(920997);
// EXTERNAL MODULE: external "antd"
var external_antd_ = __webpack_require__(545725);
// EXTERNAL MODULE: external "react"
var external_react_ = __webpack_require__(616689);
// EXTERNAL MODULE: ./components/landing/code.tsx
var code = __webpack_require__(556815);
// EXTERNAL MODULE: external "lodash"
var external_lodash_ = __webpack_require__(546517);
// EXTERNAL MODULE: ../util/dist/misc.js
var misc = __webpack_require__(477389);
// EXTERNAL MODULE: ../util/dist/misc-path.js
var misc_path = __webpack_require__(385702);
;// CONCATENATED MODULE: ./lib/landing/executables.ts


function executables(softwareSpec) {
    const exes = [];
    for(const path in softwareSpec){
        const name = (0,misc.capitalize)((0,misc_path.splitFirst)((0,misc_path.splitLast)(path, "/")[1], "-")[0]);
        exes.push({
            path,
            output: softwareSpec[path],
            name
        });
    }
    exes.sort((0,misc.field_cmp)("name"));
    return exes;
}

;// CONCATENATED MODULE: ./components/landing/executables-table.tsx
/*
 *  This file is part of CoCalc: Copyright © 2021 Sagemath, Inc.
 *  License: AGPLv3 s.t. "Commons Clause" – see LICENSE.md for details
 */ 





const { Text  } = external_antd_.Typography;
const INFO_STYLE = {
    overflow: "auto",
    maxHeight: "10em",
    maxWidth: "40vw",
    backgroundColor: "rgba(150, 150, 150, 0.1)",
    fontSize: "10px",
    border: "none",
    borderRadius: "3px"
};
const PRE_STYLE = {
    padding: "5px",
    margin: 0,
    overflow: "unset"
};
const COLUMNS = [
    {
        title: "Name",
        key: "name",
        dataIndex: "name",
        responsive: [
            "md"
        ],
        render: (name)=>/*#__PURE__*/ jsx_runtime_.jsx(Text, {
                strong: true,
                style: {
                    fontSize: "12pt"
                },
                children: name
            })
    },
    {
        title: "Path",
        key: "path",
        dataIndex: "path",
        render: (path)=>/*#__PURE__*/ jsx_runtime_.jsx(code/* default */.Z, {
                children: path
            })
    },
    {
        title: "Information",
        key: "output",
        dataIndex: "output",
        width: "40%",
        render: (output)=>/*#__PURE__*/ jsx_runtime_.jsx("div", {
                style: INFO_STYLE,
                children: /*#__PURE__*/ jsx_runtime_.jsx("pre", {
                    style: PRE_STYLE,
                    children: output
                })
            })
    }, 
];
function ExecutablesTable({ executablesSpec  }) {
    const dataSource = executables(executablesSpec);
    const { 0: search , 1: setSearch  } = (0,external_react_.useState)("");
    const onChange = (0,external_react_.useMemo)(()=>(0,external_lodash_.debounce)((e)=>{
            setSearch(e.target.value);
        }, 300), []);
    let data;
    if (!search) {
        data = dataSource;
    } else {
        const s = search.toLowerCase();
        data = [];
        for (const x of dataSource){
            if (x.path.includes(s)) {
                data.push(x);
            }
        }
    }
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
        style: {
            clear: "both"
        },
        children: [
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("h2", {
                children: [
                    "Showing ",
                    data.length,
                    " executables"
                ]
            }),
            /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Input.Search, {
                style: {
                    padding: "0 30px 15px 0",
                    width: "50%",
                    minWidth: "300px"
                },
                placeholder: "Search...",
                allowClear: true,
                onChange: onChange,
                onPressEnter: (e)=>setSearch(e.target.value)
            }),
            /*#__PURE__*/ jsx_runtime_.jsx("div", {
                style: {
                    overflowX: "auto",
                    width: "100%"
                },
                children: /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Table, {
                    columns: COLUMNS,
                    bordered: true,
                    pagination: false,
                    rowKey: "path",
                    dataSource: data
                })
            })
        ]
    });
}

// EXTERNAL MODULE: ./components/landing/footer.tsx + 1 modules
var footer = __webpack_require__(831910);
// EXTERNAL MODULE: ./components/landing/head.tsx
var head = __webpack_require__(373306);
// EXTERNAL MODULE: ./components/landing/header.tsx + 2 modules
var header = __webpack_require__(131498);
// EXTERNAL MODULE: ./components/landing/image.tsx
var landing_image = __webpack_require__(428053);
// EXTERNAL MODULE: ./components/misc/A.tsx
var A = __webpack_require__(940981);
// EXTERNAL MODULE: ./lib/customize.ts
var lib_customize = __webpack_require__(400054);
// EXTERNAL MODULE: ./lib/landing/software-specs.ts + 2 modules
var software_specs = __webpack_require__(262368);
// EXTERNAL MODULE: ./public/software/executables.png
var software_executables = __webpack_require__(53494);
// EXTERNAL MODULE: ./pages/software/index.tsx
var software = __webpack_require__(686648);
;// CONCATENATED MODULE: ./pages/software/executables.tsx
/*
 *  This file is part of CoCalc: Copyright © 2021 Sagemath, Inc.
 *  License: AGPLv3 s.t. "Commons Clause" – see LICENSE.md for details
 */ 











function Executables(props) {
    const { customize , executablesSpec  } = props;
    function renderInfo() {
        return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
            style: {
                maxWidth: software.STYLE_PAGE.maxWidth,
                margin: "0 auto"
            },
            children: [
                /*#__PURE__*/ jsx_runtime_.jsx("h1", {
                    style: {
                        textAlign: "center",
                        fontSize: "32pt",
                        color: "#444"
                    },
                    children: "Executables in CoCalc"
                }),
                /*#__PURE__*/ jsx_runtime_.jsx("div", {
                    style: {
                        width: "50%",
                        float: "right",
                        paddingBottom: "15px",
                        paddingLeft: "15px"
                    },
                    children: /*#__PURE__*/ jsx_runtime_.jsx(landing_image/* default */.Z, {
                        src: software_executables/* default */.Z,
                        alt: "Terminal showing listing executables in CoCalc"
                    })
                }),
                /*#__PURE__*/ jsx_runtime_.jsx("p", {
                    children: "This is a non-comprehensive list of executables available on CoCalc."
                }),
                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                    children: [
                        "To run anything listed below, you need to either",
                        " ",
                        /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                            href: "/features/terminal",
                            children: 'open a "Terminal"'
                        }),
                        " or run the command indirectly via a",
                        " ",
                        /*#__PURE__*/ jsx_runtime_.jsx(A/* default */.Z, {
                            href: "/features/jupyter-notebook",
                            children: "Jupyter notebook"
                        }),
                        "."
                    ]
                }),
                /*#__PURE__*/ (0,jsx_runtime_.jsxs)("p", {
                    children: [
                        "On CoCalc, you can also install or compile your own executable binaries. You have a lot of control about your own project, which is a containerized x86_64 Ubuntu Linux environment.",
                        " "
                    ]
                })
            ]
        });
    }
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(lib_customize/* Customize */.l, {
        value: customize,
        children: [
            /*#__PURE__*/ jsx_runtime_.jsx(head/* default */.Z, {
                title: "Executables in CoCalc"
            }),
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout, {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx(header/* default */.Z, {
                        page: "software",
                        subPage: "executables"
                    }),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout.Content, {
                        style: {
                            backgroundColor: "white"
                        },
                        children: [
                            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                                style: software.STYLE_PAGE_WIDE,
                                children: [
                                    renderInfo(),
                                    /*#__PURE__*/ jsx_runtime_.jsx(ExecutablesTable, {
                                        executablesSpec: executablesSpec
                                    })
                                ]
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(footer/* default */.Z, {})
                        ]
                    })
                ]
            })
        ]
    });
}
async function getServerSideProps(context) {
    return await (0,software_specs/* withCustomizedAndSoftwareSpec */.b)(context, "executables");
}


/***/ }),

/***/ 545725:
/***/ ((module) => {

module.exports = require("antd");

/***/ }),

/***/ 281416:
/***/ ((module) => {

module.exports = require("async-await-utils/hof");

/***/ }),

/***/ 546517:
/***/ ((module) => {

module.exports = require("lodash");

/***/ }),

/***/ 65680:
/***/ ((module) => {

module.exports = require("lru-cache");

/***/ }),

/***/ 903280:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/app-router-context.js");

/***/ }),

/***/ 492796:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/head-manager-context.js");

/***/ }),

/***/ 294957:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/head.js");

/***/ }),

/***/ 703539:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/i18n/detect-domain-locale.js");

/***/ }),

/***/ 734014:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js");

/***/ }),

/***/ 450744:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/image-config-context.js");

/***/ }),

/***/ 435843:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/image-config.js");

/***/ }),

/***/ 278524:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/is-plain-object.js");

/***/ }),

/***/ 878020:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/mitt.js");

/***/ }),

/***/ 664406:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/page-path/denormalize-page-path.js");

/***/ }),

/***/ 424964:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router-context.js");

/***/ }),

/***/ 493431:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/add-locale.js");

/***/ }),

/***/ 611751:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix.js");

/***/ }),

/***/ 746220:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/compare-states.js");

/***/ }),

/***/ 110299:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/format-next-pathname-info.js");

/***/ }),

/***/ 623938:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/format-url.js");

/***/ }),

/***/ 329565:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js");

/***/ }),

/***/ 735789:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/get-next-pathname-info.js");

/***/ }),

/***/ 801897:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/is-bot.js");

/***/ }),

/***/ 901428:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js");

/***/ }),

/***/ 528854:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/parse-path.js");

/***/ }),

/***/ 491292:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js");

/***/ }),

/***/ 734567:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/path-has-prefix.js");

/***/ }),

/***/ 980979:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/querystring.js");

/***/ }),

/***/ 393297:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash.js");

/***/ }),

/***/ 836052:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js");

/***/ }),

/***/ 584226:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js");

/***/ }),

/***/ 95052:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/router/utils/route-regex.js");

/***/ }),

/***/ 359232:
/***/ ((module) => {

module.exports = require("next/dist/shared/lib/utils.js");

/***/ }),

/***/ 40968:
/***/ ((module) => {

module.exports = require("next/head");

/***/ }),

/***/ 371853:
/***/ ((module) => {

module.exports = require("next/router");

/***/ }),

/***/ 616689:
/***/ ((module) => {

module.exports = require("react");

/***/ }),

/***/ 920997:
/***/ ((module) => {

module.exports = require("react/jsx-runtime");

/***/ }),

/***/ 439491:
/***/ ((module) => {

module.exports = require("assert");

/***/ }),

/***/ 714300:
/***/ ((module) => {

module.exports = require("buffer");

/***/ }),

/***/ 706113:
/***/ ((module) => {

module.exports = require("crypto");

/***/ }),

/***/ 809523:
/***/ ((module) => {

module.exports = require("dns");

/***/ }),

/***/ 582361:
/***/ ((module) => {

module.exports = require("events");

/***/ }),

/***/ 657147:
/***/ ((module) => {

module.exports = require("fs");

/***/ }),

/***/ 773292:
/***/ ((module) => {

module.exports = require("fs/promises");

/***/ }),

/***/ 113685:
/***/ ((module) => {

module.exports = require("http");

/***/ }),

/***/ 241808:
/***/ ((module) => {

module.exports = require("net");

/***/ }),

/***/ 822037:
/***/ ((module) => {

module.exports = require("os");

/***/ }),

/***/ 371017:
/***/ ((module) => {

module.exports = require("path");

/***/ }),

/***/ 677282:
/***/ ((module) => {

module.exports = require("process");

/***/ }),

/***/ 12781:
/***/ ((module) => {

module.exports = require("stream");

/***/ }),

/***/ 371576:
/***/ ((module) => {

module.exports = require("string_decoder");

/***/ }),

/***/ 924404:
/***/ ((module) => {

module.exports = require("tls");

/***/ }),

/***/ 76224:
/***/ ((module) => {

module.exports = require("tty");

/***/ }),

/***/ 257310:
/***/ ((module) => {

module.exports = require("url");

/***/ }),

/***/ 473837:
/***/ ((module) => {

module.exports = require("util");

/***/ })

};
;

// load runtime
var __webpack_require__ = require("../../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = __webpack_require__.X(0, [6918,1199,676,1746,1664,7545,3854,8759,2003,9066,981,5997,9580,2418,6648,2368], () => (__webpack_exec__(577558)));
module.exports = __webpack_exports__;

})();