diff --git a/.DS_Store b/.DS_Store index ab06f46b39c59bd0d6d6daa96ff0a860059f2f39..519190355aa0c29b7f552e9c0cecff70fde619bb 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/GUI/package-lock.json b/GUI/package-lock.json index f5b09647f8e90e4ef16851bfc29cc70ea9d0fb84..de6deab82d8a0fdac35a00c4eead2601bf267d3c 100644 --- a/GUI/package-lock.json +++ b/GUI/package-lock.json @@ -14,7 +14,9 @@ "leaflet": "^1.8.0", "leaflet-geonames": "^0.4.9", "leaflet.markercluster": "^1.5.3", + "timelines-chart": "^2.11.5", "unisort": "^1.1.0", + "vis-timeline": "^7.5.1", "vue": "^3.2.13", "vue-router": "^4.0.15" }, @@ -1700,6 +1702,18 @@ "node": ">=6.9.0" } }, + "node_modules/@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "peer": true, + "dependencies": { + "@types/hammerjs": "^2.0.36" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -2089,6 +2103,12 @@ "@types/range-parser": "*" } }, + "node_modules/@types/hammerjs": { + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", + "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==", + "peer": true + }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -4202,6 +4222,12 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "peer": true + }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -4678,6 +4704,12 @@ "node": ">=4" } }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "peer": true + }, "node_modules/cssnano": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", @@ -4856,6 +4888,11 @@ "node": ">=12" } }, + "node_modules/d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, "node_modules/d3-color": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", @@ -4864,6 +4901,23 @@ "node": ">=12" } }, + "node_modules/d3-color-legend": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-color-legend/-/d3-color-legend-1.3.2.tgz", + "integrity": "sha512-xsXWkAcW10ZS8VGSCVLgbktFGfBx7nXPA4Xgr2iSQp2e+9lP+lDSTMuv+eWEa8uDKeypYFZB51n3N5GTDUkxnw==", + "dependencies": { + "d3-selection": "^2.0.0", + "kapsule": "^1.13.4", + "svg-text-fit": "^1.1.7", + "svg-utils": "^1.2.8", + "tinycolor2": "^1.4.2" + } + }, + "node_modules/d3-color-legend/node_modules/d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==" + }, "node_modules/d3-contour": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-3.0.1.tgz", @@ -5127,6 +5181,23 @@ "node": ">=12" } }, + "node_modules/d3-tip": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/d3-tip/-/d3-tip-0.9.1.tgz", + "integrity": "sha512-EVBfG9d+HnjIoyVXfhpytWxlF59JaobwizqMX9EBXtsFmJytjwHeYiUs74ldHQjE7S9vzfKTx2LCtvUrIbuFYg==", + "dependencies": { + "d3-collection": "^1.0.4", + "d3-selection": "^1.3.0" + }, + "engines": { + "node": ">=4.2.6" + } + }, + "node_modules/d3-tip/node_modules/d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + }, "node_modules/d3-transition": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", @@ -5160,6 +5231,11 @@ "node": ">=12" } }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -7669,6 +7745,20 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/kapsule": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.13.7.tgz", + "integrity": "sha512-CKhyHyKyz5bYehAzz95U0ji5T9f4P0RXXPqQ2tGKjuTz3bJnHIUj8vCzGjnhFZ4XYtVT2wMvIq8D8Awb5rawcQ==", + "dependencies": { + "debounce": "^1.2.1" + } + }, + "node_modules/keycharm": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.4.0.tgz", + "integrity": "sha512-TyQTtsabOVv3MeOpR92sIKk/br9wxS+zGj4BG7CR8YbK4jM3tyIBaF0zhzeBUMx36/Q/iQLOKKOT+3jOQtemRQ==", + "peer": true + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -8580,6 +8670,15 @@ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", "dev": true }, + "node_modules/moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "peer": true, + "engines": { + "node": "*" + } + }, "node_modules/mrmime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", @@ -9963,6 +10062,15 @@ "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" } }, + "node_modules/propagating-hammerjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagating-hammerjs/-/propagating-hammerjs-2.0.1.tgz", + "integrity": "sha512-PH3zG5whbSxMocphXJzVtvKr+vWAgfkqVvtuwjSJ/apmEACUoiw6auBAT5HYXpZOR0eGcTAfYG5Yl8h91O5Elg==", + "peer": true, + "peerDependencies": { + "@egjs/hammerjs": "^2.0.17" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -11014,6 +11122,89 @@ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, + "node_modules/svg-text-fit": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/svg-text-fit/-/svg-text-fit-1.1.8.tgz", + "integrity": "sha512-uKYGn2FIr0wgXJAgfUxpFvreRQxp23wDJZ//RJTLUOzfURB9vohUgl/Tlb2Kqc8Zgea37TaB67u+ssX4QS6OMg==", + "dependencies": { + "kapsule": "^1.13.4" + } + }, + "node_modules/svg-utils": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/svg-utils/-/svg-utils-1.2.9.tgz", + "integrity": "sha512-OxbrZzueXPGdW7eniZW6o4WoYIXuSlLvr02f+RGItEwyZw/+0vwQZvHOK0hlRkiniW45oh5u7KvYIivKkpQ2CQ==", + "dependencies": { + "d3-array": "^2.12.1", + "d3-scale": "^3.3.0", + "d3-selection": "^2.0.0", + "kapsule": "^1.13.4" + } + }, + "node_modules/svg-utils/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/svg-utils/node_modules/d3-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + }, + "node_modules/svg-utils/node_modules/d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + }, + "node_modules/svg-utils/node_modules/d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "dependencies": { + "d3-color": "1 - 2" + } + }, + "node_modules/svg-utils/node_modules/d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "dependencies": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "node_modules/svg-utils/node_modules/d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==" + }, + "node_modules/svg-utils/node_modules/d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "dependencies": { + "d3-array": "2" + } + }, + "node_modules/svg-utils/node_modules/d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "dependencies": { + "d3-time": "1 - 2" + } + }, + "node_modules/svg-utils/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, "node_modules/svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", @@ -11318,12 +11509,39 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, + "node_modules/timelines-chart": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/timelines-chart/-/timelines-chart-2.11.5.tgz", + "integrity": "sha512-rRG1f8sXxhEqgVoLTYgvj/mG5JJy04nr46HaU6/xkPQ+dy7JODPKYHNSrgOzDKoK2atN0iSh/mAo03qMh9CGOw==", + "dependencies": { + "d3-array": "1 - 3", + "d3-axis": "1 - 3", + "d3-brush": "2 - 3", + "d3-color-legend": "1", + "d3-scale": "1 - 4", + "d3-scale-chromatic": "1 - 3", + "d3-selection": "2 - 3", + "d3-time-format": "1 - 4", + "d3-tip": "^0.9", + "kapsule": "^1.13", + "svg-text-fit": "^1.1", + "svg-utils": "^1.2" + } + }, "node_modules/timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, + "node_modules/tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", + "engines": { + "node": "*" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -11517,7 +11735,6 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, "bin": { "uuid": "dist/bin/uuid" } @@ -11547,6 +11764,59 @@ "node": ">= 0.8" } }, + "node_modules/vis-data": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.4.tgz", + "integrity": "sha512-usy+ePX1XnArNvJ5BavQod7YRuGQE1pjFl+pu7IS6rCom2EBoG0o1ZzCqf3l5US6MW51kYkLR+efxRbnjxNl7w==", + "hasInstallScript": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/visjs" + }, + "peerDependencies": { + "uuid": "^7.0.0 || ^8.0.0", + "vis-util": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/vis-timeline": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/vis-timeline/-/vis-timeline-7.5.1.tgz", + "integrity": "sha512-XZMHHbA8xm9/Y/iu3mE9MT7J5tfWgbdsW+PmqrgINU2QRX24AiqifNHZHV4YYzeJstiTSOg9Gs5qRkxQ0BvZJw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/visjs" + }, + "peerDependencies": { + "@egjs/hammerjs": "^2.0.0", + "component-emitter": "^1.3.0", + "keycharm": "^0.3.0 || ^0.4.0", + "moment": "^2.24.0", + "propagating-hammerjs": "^1.4.0 || ^2.0.0", + "uuid": "^3.4.0 || ^7.0.0 || ^8.0.0", + "vis-data": "^6.3.0 || ^7.0.0", + "vis-util": "^3.0.0 || ^4.0.0 || ^5.0.0", + "xss": "^1.0.0" + } + }, + "node_modules/vis-util": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.3.tgz", + "integrity": "sha512-Wf9STUcFrDzK4/Zr7B6epW2Kvm3ORNWF+WiwEz2dpf5RdWkLUXFSbLcuB88n1W6tCdFwVN+v3V4/Xmn9PeL39g==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/visjs" + }, + "peerDependencies": { + "@egjs/hammerjs": "^2.0.0", + "component-emitter": "^1.3.0" + } + }, "node_modules/vue": { "version": "3.2.31", "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.31.tgz", @@ -12400,6 +12670,28 @@ } } }, + "node_modules/xss": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz", + "integrity": "sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==", + "peer": true, + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -13727,6 +14019,15 @@ "to-fast-properties": "^2.0.0" } }, + "@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "peer": true, + "requires": { + "@types/hammerjs": "^2.0.36" + } + }, "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", @@ -14054,6 +14355,12 @@ "@types/range-parser": "*" } }, + "@types/hammerjs": { + "version": "2.0.41", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz", + "integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA==", + "peer": true + }, "@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -15721,6 +16028,12 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "peer": true + }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -16056,6 +16369,12 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "peer": true + }, "cssnano": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", @@ -16195,11 +16514,35 @@ "d3-path": "1 - 3" } }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" + }, "d3-color": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, + "d3-color-legend": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-color-legend/-/d3-color-legend-1.3.2.tgz", + "integrity": "sha512-xsXWkAcW10ZS8VGSCVLgbktFGfBx7nXPA4Xgr2iSQp2e+9lP+lDSTMuv+eWEa8uDKeypYFZB51n3N5GTDUkxnw==", + "requires": { + "d3-selection": "^2.0.0", + "kapsule": "^1.13.4", + "svg-text-fit": "^1.1.7", + "svg-utils": "^1.2.8", + "tinycolor2": "^1.4.2" + }, + "dependencies": { + "d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==" + } + } + }, "d3-contour": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-3.0.1.tgz", @@ -16379,6 +16722,22 @@ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" }, + "d3-tip": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/d3-tip/-/d3-tip-0.9.1.tgz", + "integrity": "sha512-EVBfG9d+HnjIoyVXfhpytWxlF59JaobwizqMX9EBXtsFmJytjwHeYiUs74ldHQjE7S9vzfKTx2LCtvUrIbuFYg==", + "requires": { + "d3-collection": "^1.0.4", + "d3-selection": "^1.3.0" + }, + "dependencies": { + "d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + } + } + }, "d3-transition": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", @@ -16403,6 +16762,11 @@ "d3-transition": "2 - 3" } }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -18253,6 +18617,20 @@ "universalify": "^2.0.0" } }, + "kapsule": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.13.7.tgz", + "integrity": "sha512-CKhyHyKyz5bYehAzz95U0ji5T9f4P0RXXPqQ2tGKjuTz3bJnHIUj8vCzGjnhFZ4XYtVT2wMvIq8D8Awb5rawcQ==", + "requires": { + "debounce": "^1.2.1" + } + }, + "keycharm": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.4.0.tgz", + "integrity": "sha512-TyQTtsabOVv3MeOpR92sIKk/br9wxS+zGj4BG7CR8YbK4jM3tyIBaF0zhzeBUMx36/Q/iQLOKKOT+3jOQtemRQ==", + "peer": true + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -18938,6 +19316,12 @@ "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", "dev": true }, + "moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "peer": true + }, "mrmime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", @@ -19876,6 +20260,13 @@ "log-update": "^2.1.0" } }, + "propagating-hammerjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagating-hammerjs/-/propagating-hammerjs-2.0.1.tgz", + "integrity": "sha512-PH3zG5whbSxMocphXJzVtvKr+vWAgfkqVvtuwjSJ/apmEACUoiw6auBAT5HYXpZOR0eGcTAfYG5Yl8h91O5Elg==", + "peer": true, + "requires": {} + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -20690,6 +21081,91 @@ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, + "svg-text-fit": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/svg-text-fit/-/svg-text-fit-1.1.8.tgz", + "integrity": "sha512-uKYGn2FIr0wgXJAgfUxpFvreRQxp23wDJZ//RJTLUOzfURB9vohUgl/Tlb2Kqc8Zgea37TaB67u+ssX4QS6OMg==", + "requires": { + "kapsule": "^1.13.4" + } + }, + "svg-utils": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/svg-utils/-/svg-utils-1.2.9.tgz", + "integrity": "sha512-OxbrZzueXPGdW7eniZW6o4WoYIXuSlLvr02f+RGItEwyZw/+0vwQZvHOK0hlRkiniW45oh5u7KvYIivKkpQ2CQ==", + "requires": { + "d3-array": "^2.12.1", + "d3-scale": "^3.3.0", + "d3-selection": "^2.0.0", + "kapsule": "^1.13.4" + }, + "dependencies": { + "d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "requires": { + "internmap": "^1.0.0" + } + }, + "d3-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + }, + "d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + }, + "d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "requires": { + "d3-color": "1 - 2" + } + }, + "d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "requires": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==" + }, + "d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "requires": { + "d3-array": "2" + } + }, + "d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "requires": { + "d3-time": "1 - 2" + } + }, + "internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + } + } + }, "svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", @@ -20914,12 +21390,36 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, + "timelines-chart": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/timelines-chart/-/timelines-chart-2.11.5.tgz", + "integrity": "sha512-rRG1f8sXxhEqgVoLTYgvj/mG5JJy04nr46HaU6/xkPQ+dy7JODPKYHNSrgOzDKoK2atN0iSh/mAo03qMh9CGOw==", + "requires": { + "d3-array": "1 - 3", + "d3-axis": "1 - 3", + "d3-brush": "2 - 3", + "d3-color-legend": "1", + "d3-scale": "1 - 4", + "d3-scale-chromatic": "1 - 3", + "d3-selection": "2 - 3", + "d3-time-format": "1 - 4", + "d3-tip": "^0.9", + "kapsule": "^1.13", + "svg-text-fit": "^1.1", + "svg-utils": "^1.2" + } + }, "timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, + "tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -21067,8 +21567,7 @@ "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { "version": "2.3.0", @@ -21092,6 +21591,26 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vis-data": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.4.tgz", + "integrity": "sha512-usy+ePX1XnArNvJ5BavQod7YRuGQE1pjFl+pu7IS6rCom2EBoG0o1ZzCqf3l5US6MW51kYkLR+efxRbnjxNl7w==", + "peer": true, + "requires": {} + }, + "vis-timeline": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/vis-timeline/-/vis-timeline-7.5.1.tgz", + "integrity": "sha512-XZMHHbA8xm9/Y/iu3mE9MT7J5tfWgbdsW+PmqrgINU2QRX24AiqifNHZHV4YYzeJstiTSOg9Gs5qRkxQ0BvZJw==", + "requires": {} + }, + "vis-util": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.3.tgz", + "integrity": "sha512-Wf9STUcFrDzK4/Zr7B6epW2Kvm3ORNWF+WiwEz2dpf5RdWkLUXFSbLcuB88n1W6tCdFwVN+v3V4/Xmn9PeL39g==", + "peer": true, + "requires": {} + }, "vue": { "version": "3.2.31", "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.31.tgz", @@ -21718,6 +22237,24 @@ "dev": true, "requires": {} }, + "xss": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz", + "integrity": "sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==", + "peer": true, + "requires": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + } + } + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/GUI/package.json b/GUI/package.json index 74509d9c68e43a7d7c7427ee05c95911a4bb83e9..c1e729ee9a1c0e15fc4dd191b99c1e91b07d8a79 100644 --- a/GUI/package.json +++ b/GUI/package.json @@ -14,7 +14,9 @@ "leaflet": "^1.8.0", "leaflet-geonames": "^0.4.9", "leaflet.markercluster": "^1.5.3", + "timelines-chart": "^2.11.5", "unisort": "^1.1.0", + "vis-timeline": "^7.5.1", "vue": "^3.2.13", "vue-router": "^4.0.15" }, diff --git a/GUI/public/index.html b/GUI/public/index.html index 6f0e5f9885d107d0bb498a55d14996f145dc2d8b..b42929013a29092be670496d59937a3fd96a1520 100644 --- a/GUI/public/index.html +++ b/GUI/public/index.html @@ -4,13 +4,14 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> - <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.8.0/dist/leaflet.css" integrity="sha512-hoalWLoI8r4UszCkZ5kL8vayOGVae1oxXe/2A4AO6J9+580uKHDO3JdHb7NzwwzK5xr/Fs0W40kiNHxM9vyTtQ==" crossorigin=""/> <script src="https://unpkg.com/leaflet@1.8.0/dist/leaflet.js" integrity="sha512-BB3hKbKWOc9Ez/TAwyWxNXeoV9c1v6FIeYiBieIWkpLjauysF18NzgR1MBNBXf8/KABdlkX68nAhlwcDFLGPCQ==" crossorigin=""></script> + <script src="https://unpkg.com/timelines-chart"></script> + <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.css" /> <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" /> <script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script> diff --git a/GUI/public/timesheet-white.min.css b/GUI/public/timesheet-white.min.css new file mode 100644 index 0000000000000000000000000000000000000000..ffeb63f30cc141f9d79eb980a5f708f308e4bfe0 --- /dev/null +++ b/GUI/public/timesheet-white.min.css @@ -0,0 +1,2 @@ +.white .timesheet{width:720px;height:292px;margin:0 auto}.white .timesheet{border-top:1px solid rgba(60,60,60,0.3);background-color:#fbfbfb;position:relative}.white .timesheet.color-scheme-default .bubble-default{background-color:RGBA(252, 70, 74, 1)}.white .timesheet.color-scheme-default .bubble-lorem{background-color:RGBA(154, 202, 39, 1)}.white .timesheet.color-scheme-default .bubble-ipsum{background-color:RGBA(60, 182, 227, 1)}.white .timesheet.color-scheme-default .bubble-dolor{background-color:RGBA(244, 207, 48, 1)}.white .timesheet.color-scheme-default .bubble-sit{background-color:RGBA(169, 105, 202, 1)}.white .timesheet.color-scheme-alternative .bubble-default{background-color:#f3552e}.white .timesheet.color-scheme-alternative .bubble-lorem{background-color:#88c33a}.white .timesheet.color-scheme-alternative .bubble-ipsum{background-color:#436ae0}.white .timesheet.color-scheme-alternative .bubble-dolor{background-color:#f4d234}.white .timesheet.color-scheme-alternative .bubble-sit{background-color:#707d86}.white .timesheet .scale{height:100%;position:absolute;top:0;left:0;float:left}.white .timesheet .scale section{float:left;width:59px;color:rgba(50,50,50,0.8);font-family:"Signika Negative";font-size:13px;line-height:24px;font-weight:300;border-left:1px dashed rgba(50,50,50,0.1);height:100%}.white .timesheet .data{margin:28px 0 0 0;padding:0;text-align:left;list-style-type:none;color:rgba(250,250,250,0.8);font-family:"Signika Negative";font-size:13px;overflow:hidden}.white .timesheet .data li{margin:0 0 3px 0;line-height:22px;height:21px;display:block;cursor:pointer;clear:both;position:relative;white-space:nowrap}.white .timesheet .data li:hover .bubble{opacity:1}.white .timesheet .data li .date{color:#797979;font-size:14px}.white .timesheet .data li .label{font-weight:lighter;font-size:14px;padding-left:5px;line-height:21px;color:#333332;white-space:nowrap}.white .timesheet .data li .bubble{width:24px;height:7px;display:block;float:left;position:relative;top:7px;border-radius:4px;margin:0 10px 0 0;opacity:0.7} +/*# sourceMappingURL=timesheet-white.min.css.map */ diff --git a/GUI/public/timesheet.min.js b/GUI/public/timesheet.min.js new file mode 100644 index 0000000000000000000000000000000000000000..8c498e0f27219fe269c08e1d030eadf0055db79e --- /dev/null +++ b/GUI/public/timesheet.min.js @@ -0,0 +1 @@ +!function(){"use strict";var Timesheet=function(container,min,max,data){this.data=[],this.year={min:min,max:max},this.parse(data||[]),"undefined"!=typeof document&&(this.container="string"==typeof container?document.querySelector("#"+container):container,this.drawSections(),this.insertData())};Timesheet.prototype.insertData=function(){for(var html=[],widthMonth=this.container.querySelector(".scale section").offsetWidth,n=0,m=this.data.length;m>n;n++){var cur=this.data[n],bubble=this.createBubble(widthMonth,this.year.min,cur.start,cur.end),line=['<span style="margin-left: '+bubble.getStartOffset()+"px; width: "+bubble.getWidth()+'px;" class="bubble bubble-'+(cur.type||"default")+'" data-duration="'+(cur.end?Math.round((cur.end-cur.start)/1e3/60/60/24/39):"")+'"></span>','<span class="date">'+bubble.getDateLabel()+"</span> ",'<span class="label">'+cur.label+"</span>"].join("");html.push("<li>"+line+"</li>")}this.container.innerHTML+='<ul class="data">'+html.join("")+"</ul>"},Timesheet.prototype.drawSections=function(){for(var html=[],c=this.year.min;c<=this.year.max;c++)html.push("<section>"+c+"</section>");this.container.className="timesheet color-scheme-default",this.container.innerHTML='<div class="scale">'+html.join("")+"</div>"},Timesheet.prototype.parseDate=function(date){return-1===date.indexOf("/")?(date=new Date(parseInt(date,10),0,1),date.hasMonth=!1):(date=date.split("/"),date=new Date(parseInt(date[1],10),parseInt(date[0],10)-1,1),date.hasMonth=!0),date},Timesheet.prototype.parse=function(data){for(var n=0,m=data.length;m>n;n++){var beg=this.parseDate(data[n][0]),end=4===data[n].length?this.parseDate(data[n][1]):null,lbl=4===data[n].length?data[n][2]:data[n][1],cat=4===data[n].length?data[n][3]:3===data[n].length?data[n][2]:"default";beg.getFullYear()<this.year.min&&(this.year.min=beg.getFullYear()),end&&end.getFullYear()>this.year.max?this.year.max=end.getFullYear():beg.getFullYear()>this.year.max&&(this.year.max=beg.getFullYear()),this.data.push({start:beg,end:end,label:lbl,type:cat})}},Timesheet.prototype.createBubble=function(wMonth,min,start,end){return new Bubble(wMonth,min,start,end)};var Bubble=function(wMonth,min,start,end){this.min=min,this.start=start,this.end=end,this.widthMonth=wMonth};Bubble.prototype.formatMonth=function(num){return num=parseInt(num,10),num>=10?num:"0"+num},Bubble.prototype.getStartOffset=function(){return this.widthMonth/12*(12*(this.start.getFullYear()-this.min)+this.start.getMonth())},Bubble.prototype.getFullYears=function(){return(this.end&&this.end.getFullYear()||this.start.getFullYear())-this.start.getFullYear()},Bubble.prototype.getMonths=function(){var fullYears=this.getFullYears(),months=0;return this.end?this.end.hasMonth?(months+=this.end.getMonth()+1,months+=12-(this.start.hasMonth?this.start.getMonth():0),months+=12*(fullYears-1)):(months+=12-(this.start.hasMonth?this.start.getMonth():0),months+=12*(fullYears-1>0?fullYears-1:0)):months+=this.start.hasMonth?1:12,months},Bubble.prototype.getWidth=function(){return this.widthMonth/12*this.getMonths()},Bubble.prototype.getDateLabel=function(){return[(this.start.hasMonth?this.formatMonth(this.start.getMonth()+1)+"/":"")+this.start.getFullYear(),this.end?"-"+((this.end.hasMonth?this.formatMonth(this.end.getMonth()+1)+"/":"")+this.end.getFullYear()):""].join("")},window.Timesheet=Timesheet}(); \ No newline at end of file diff --git a/GUI/src/components/TagBubble.vue b/GUI/src/components/TagBubble.vue index af38bfe70e5351db7b12917e30fb1d4a24dfcf58..c3f5aae9544f6bdbddee513fd30d828490ed7220 100644 --- a/GUI/src/components/TagBubble.vue +++ b/GUI/src/components/TagBubble.vue @@ -42,7 +42,6 @@ export default defineComponent({ } }; case 'cat': - console.log('Link', props.link); return { name: 'projectCategories', params: { @@ -53,7 +52,6 @@ export default defineComponent({ } }); - console.log(targetArr); return { isArabic, now, diff --git a/GUI/src/styles/app.css b/GUI/src/styles/app.css index 2b09ebc78a69f30a5e6ecc129cab4a07e5f5d196..497b1b98ff9e8cc42186d9d26d19748fb467a75a 100644 --- a/GUI/src/styles/app.css +++ b/GUI/src/styles/app.css @@ -108,4 +108,21 @@ a:hover { #map { min-height: 500px; height: 100%; +} + +#barchart { + color: #fff; +} + +.visualbox { + overflow-x: scroll; +} + +.stickybox { + z-index: 100; + background-color: #2E4A61; +} + +.elementcount { + color: #fff; } \ No newline at end of file diff --git a/GUI/src/views/FormView.vue b/GUI/src/views/FormView.vue index b33b6f312103be5ebfbf32cfafac2f1be57fe141..4016af2a2d5074a661a4c83c5f4f68d6ade811d3 100644 --- a/GUI/src/views/FormView.vue +++ b/GUI/src/views/FormView.vue @@ -304,6 +304,159 @@ </label> </div> </label> + <!-- Parents --> + <label + class="block col-span-2" + > + <span>Related projects or organisations</span> + <div + class="w-full" + > + <div + class="flex flex-row mr-7 w-full" + v-for="(rel, relKey) in project.relations" + :key="relKey" + > + <svg + @click="addRelation" + xmlns="http://www.w3.org/2000/svg" + class="h-6 w-6 mr-1 my-auto" + fill="none" + viewBox="0 0 24 24" + stroke="currentColor" + stroke-width="2"> + <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z" /> + </svg> + <svg + v-if="project.relations.length > 1" + @click="project.relations.splice(relKey, 1)" + xmlns="http://www.w3.org/2000/svg" + class="h-6 w-6 mr-1 my-auto" + fill="none" + viewBox="0 0 24 24" + stroke="currentColor" + stroke-width="2"> + <path stroke-linecap="round" stroke-linejoin="round" d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z" /> + </svg> + <div class="border border-black rounded rounded-xl grid grid-cols-2 border-1 m-2 p-4 w-full gap-2"> + <label> + <span>Relation Type</span> + <select class="mt-1 block w-full" + v-model="project.relations[relKey].group" + > + <option value="parents">Parent</option> + <option value="siblings">Sibling</option> + <option value="children">Child</option> + </select> + </label> + <label> + <span>Type</span> + <select class="mt-1 block w-full" v-model="project.relations[relKey].type"> + <option value="organisation">Organisation</option> + <option value="project">Project</option> + </select> + </label> + <label class="col-span-2"> + <span>Choose existing {{ rel.type }} or add new entry</span> + <select class="mt-1 block w-full" v-model="project.relations[relKey].existingEntry"> + <option value="null">NEW ENTRY</option> + <option + v-for="(p, pKey) in projectList" + :key="pKey" + :value="p.uuid" + >{{ p.title }}</option> + </select> + </label> + <div class="col-span-2 grid grid-cols-2 gap-2" v-if="project.relations[relKey].existingEntry === 'null'"> + <label class="block col-span-2"> + <span>Name of the {{ rel.type }}</span> + <input + type="text" + class="mt-1 left w-full" + v-model="project.relations[relKey].title" + /> + </label> + <!-- Refs --> + <label + class="block" + > + <span>Authority File URIs of the {{ rel.type.charAt(0).toUpperCase() + rel.type.slice(1) }}</span> + <div + class="flex flex-row" + v-for="(relRef, relRefKey) in rel.refs" + :key="relRefKey" + > + <svg + @click="project.relations[relKey].refs.push('')" + xmlns="http://www.w3.org/2000/svg" + class="h-6 w-6 mr-1 my-auto" + fill="none" + viewBox="0 0 24 24" + stroke="currentColor" + stroke-width="2"> + <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z" /> + </svg> + <svg + v-if="rel.refs.length > 1" + @click="project.relations[relKey].refs.splice(relRefKey, 1)" + xmlns="http://www.w3.org/2000/svg" + class="h-6 w-6 mr-1 my-auto" + fill="none" + viewBox="0 0 24 24" + stroke="currentColor" + stroke-width="2"> + <path stroke-linecap="round" stroke-linejoin="round" d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z" /> + </svg> + <input + type="text" + class="mt-1 left w-full" + v-model="project.relations[relKey].refs[relRefKey]" + /> + </div> + </label> + <!-- Websites --> + <label + class="block" + > + <span>Websites of the {{ rel.type.charAt(0).toUpperCase() + rel.type.slice(1) }}</span> + <div + class="flex flex-row" + v-for="(relWebsite, relWebsiteKey) in rel.websites" + :key="relWebsiteKey" + > + <svg + @click="project.relations[relKey].websites.push('')" + xmlns="http://www.w3.org/2000/svg" + class="h-6 w-6 mr-1 my-auto" + fill="none" + viewBox="0 0 24 24" + stroke="currentColor" + stroke-width="2"> + <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z" /> + </svg> + <svg + v-if="rel.websites.length > 1" + @click="project.relations[relKey].websites.splice(relWebsiteKey, 1)" + xmlns="http://www.w3.org/2000/svg" + class="h-6 w-6 mr-1 my-auto" + fill="none" + viewBox="0 0 24 24" + stroke="currentColor" + stroke-width="2"> + <path stroke-linecap="round" stroke-linejoin="round" d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z" /> + </svg> + <input + type="text" + class="mt-1 left w-full" + v-model="project.relations[relKey].websites[relWebsiteKey]" + /> + </div> + </label> + </div> + </div> + </div> + </div> + </label> <div class="block col-span-2 bubble p-3 rounded-2xl mt-2 button text-center">Generate JSON</div> </div> </div> @@ -313,14 +466,36 @@ <script> import { defineComponent, - reactive + reactive, + ref } from 'vue'; +import axios from 'axios'; export default defineComponent({ components: { // tagList, }, setup() { + const projectList = ref([]); + const relationsTemplate = [ + { + group: 'parents', + type: 'project', + existingEntry: 'null', + title: '', + refs: [''], + websites: [''], + places: [ + { + place_name: { + text: '', + ref: [''], + }, + } + ], + relations: [], + } + ]; const project = reactive({ type: 'project', ref: [''], @@ -339,11 +514,28 @@ export default defineComponent({ lng: '', }, }], + relations: [...relationsTemplate], lang: [''], }); + const addRelation = () => { + project.relations.push(...relationsTemplate); + project.relations[project.relations.length - 1].relations = [...relationsTemplate]; + }; + + axios.get('https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master/PROJECTS.json') + .then((responseIndex) => { + Object.keys(responseIndex.data).map((key) => { + projectList.value.push({ + uuid: key, + title: responseIndex.data[key].title, + }); + }); + }); return { - project + project, + projectList, + addRelation }; } }); diff --git a/GUI/src/views/NetworkView.vue b/GUI/src/views/NetworkView.vue index 49193d17236ce7342a6f9b1c02409e8049daf5f6..edc4fec97adc6fe45c0d2aec5226ed498968dc95 100644 --- a/GUI/src/views/NetworkView.vue +++ b/GUI/src/views/NetworkView.vue @@ -1,11 +1,38 @@ <template> - <div class="w-full"> + <div class="w-full visualbox"> <!-- <tag-list :taglist="tags" /> --> - <div id="networkgraph" class="w-auto m-5" /> + <h5>Timeline</h5> + <p>CAUTION! This timeline only contains projects of which we have gathered dedicated funding periods. Projects with unknown or incomplete funding data are not included.</p> + + <table class="box"> + <tr> + <th + v-for="(y, yKey) in years" + :key="yKey" + class="border-l text-xs px-2 pb-1" + >{{ y }}</th> + </tr> + <tr + v-for="(p, pKey) in projects" + :key="pKey" + > + <td + v-for="(y, yKey) in filteredProjectYears(p, years)" + :key="yKey" + :colspan="isInFundingPeriod(p, y)" + :class="(isInFundingPeriod(p, y) && !p.noDataOnEnding) ? 'bg-darkblue p-2 border-b-1' : + (isInFundingPeriod(p, y) && p.noDataOnEnding) ? 'from-nlsdarkblue bg-gradient-to-r p-2 text-white border-b-1' : + ''" + class="m-1 p-0 text-xs border-l" + > + <span v-if="isInFundingPeriod(p, y)">{{ p.title }}</span> + </td> + </tr> + </table> </div> </template> @@ -35,6 +62,12 @@ export default defineComponent({ const network = ref([]); const networkLinks = ref([]); + const years = ref([]); + const projects = ref([]); + + let start = new Date().getFullYear(); + let finish = new Date().getFullYear(); + let svg = null; const width = 1000; const height = 640; @@ -56,16 +89,59 @@ export default defineComponent({ Object.keys(responseIndex.data).map((uuid, key) => { axios.get(`https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master${responseIndex.data[uuid].path}${uuid}.json`) .then((responseProject) => { - network.value.push({ - _n: key, - _key: uuid, - // Need to clean this up - id: key, - _id: responseProject.data.record_metadata.uuid, - project: responseProject.data.project, - source: `https://github.com/Closing-the-Gap-in-NLS-DH/Projects/blob/master${responseIndex.data[uuid].path}${uuid}.json`, + const period = []; + let noEnding = false; + responseProject.data.project.date.map((p) => { + if (p.from !== '') { + let begin = Number(p.from); + let end = -1; + if (begin < start) start = begin; + if (p.to !== '') { + end = Number(p.to); + } else noEnding = true; + if (end > finish) finish = end; + period.push([begin, end]); + } + }); + if (period.length) { + projects.value.push({ + title: responseProject.data.project.title, + periods: period, + noDataOnEnding: noEnding, + }); + } + /* + const projectPeriods = []; + console.log(responseProject.data.project); + responseProject.data.project.date.map((p) => { + if (p.from !== '') { + let begin = Number(p.from); + let end = (p.to !== '') ? Number(p.to) : new Date().getFullYear(); + + for (let i =begin; i <= end; i += 1) { + console.log(i); + projectPeriods.push(i); + } + } }); + for (let i = 0; i < projectPeriods.length; i += 1) { + let exists = false; + for (let j = 0; j < years.value.length; j += 1) { + if (projectPeriods[i] === years.value[j].year) { + years.value[j].count += 1; + exists = true; + break; + } + } + if (!exists) { + years.value.push({ + year: projectPeriods[i], + count: 1, + }); + } + } + */ responseProject.data.project.keywords.map((tag) => { if (!tags.value.includes(tag)) tags.value.push(tag); }); @@ -82,201 +158,52 @@ export default defineComponent({ return promise; }; - loadData().then(() => { - console.log('Jetzt'); - - network.value.map((p, pKey) => { - ['parents', 'children', 'siblings'].map((target) => { - p.project[target].map((p2, p2Key) => { - if (p2.uuid) { - let source = pKey; - let target = 0; - let i = 0; - for (i; i < network.value.length; i += 1) { - if (network.value[i]._id === p2.uuid) { - target = i; - break; - } - } - let exists = false; - networkLinks.value.map((n, nKey) => { - if ( - (n.source === source && n.target === target) || - (n.source === target && n.target === source) - ) exists = true; - }); - if (!exists) networkLinks.value.push({ - id: `${source}_${target}`, - source, - target - }); - } - }); - /* - if (p.project[target] && p.project[target].length > 0) { - p.project[target].map((p2) => { - network.value.map((targetP, tPKey) => { - if (p2.uuid === targetP._key) { - let exists = false; - networkLinks.value.map((l) => { - if ( - (key === l.source && tPKey === l.target) - || (key === l.target && tPKey === l.source) - ) { - exists = true; - } - }); - if (!exists) networkLinks.value.push({ - source: key, - target: tPKey, - }); - } - }); - }); - } */ - }); + const isInFundingPeriod = (project, year) => { + let result = null; + project.periods.map(period => { + if (year >= period[0] && year < period[1]) { + result = period[1] - period[0] + 1; + } }); + return result; + }; - console.log(network.value); - console.log(networkLinks); - - const svg = d3.select('#networkgraph') - .append('svg') - .attr('width', width) - .attr('height', height) - - const forceNode = d3.forceManyBody().strength(-20); - const forceLink = d3.forceLink(networkLinks.value) - .id(link => link.id); - - const simulation = d3.forceSimulation(network.value) - .force("link", forceLink) - .force("charge", forceNode) - .force('collision', d3.forceCollide().radius(10)) - .force("center", d3.forceCenter(width / 2, height / 2)) - .on("tick", ticked); - - const nodeElements = svg.append('g') - .selectAll('circle') - .data(network.value) - .enter().append('circle') - .attr('r', 10) - .attr('fill', 'black') -/* - const textElements = svg.append('g') - .selectAll('text') - .data(network.value) - .enter().append('text') - .text(node => node.project.title) - .attr('font-size', 15) - .attr('dx', 15) - .attr('dy', 4); -*/ - const linkElements = svg.append('g') - .selectAll('line') - .data(networkLinks.value) - .enter().append('line') - .attr('stroke-width', 1) - .attr('stroke', '#E5E5E5') - - simulation.on('tick', () => { - simulation.nodes(network.value); - - nodeElements - .attr('cx', (node) => { - return node.x = Math.max(10, Math.min(width - 10, node.x)) - }) - .attr('cy', (node) => { - return node.y = Math.max(10, Math.min(height - 10, node.y)) - }) - /* - textElements - .attr('x', node => node.x) - .attr('y', node => node.y) -*/ - linkElements - .attr("x1", d => d.source.x) - .attr("y1", d => d.source.y) - .attr("x2", d => d.target.x) - .attr("y2", d => d.target.y); + const filteredProjectYears = (project, years) => { + const newYearArr = [...years]; + const yearsToDel = []; + project.periods.map((period, periodKey) => { + for (let i = period[0] + 1; i <= period[1]; i += 1) { + yearsToDel.push(i); + } }); + yearsToDel.map((y) => { + newYearArr.splice(newYearArr.indexOf(y), 1); + }); + if (project.title.includes('Topoi')) console.log(newYearArr) + return newYearArr; + }; - simulation.force('link').link(networkLinks.value) - -/* - - svg = d3.select("#networkgraph") - .append("svg") - .attr("width", width) - .attr("height", height); - - /* eslint-disable-next-line no-unused-vars */ - /* const simulation = d3.forceSimulation(network.value) - .force('charge', d3.forceManyBody().strength(-10)) - .force('center', d3.forceCenter(width / 2, height / 2)) - .force('link', d3.forceLink().distance(100)) - .on('tick', ticked); -- - - const simulation = d3.forceSimulation(network.value) - .force('charge', d3.forceManyBody()) - .force('link', d3.forceLink(networkLinks.value).distance(50)) - .force('center', d3.forceCenter(300, 300)) - - /* eslint-disable-next-line no-unused-vars -- - const node = svg.selectAll('circle') - .data(network.value) - .enter() - .append('circle') - .attr('r', 10) - .attr('fill', 'black'); - - const link = svg.selectAll('path.link') - .data(networkLinks.value) - .enter() - .append('line') - .attr('class', 'link') - .attr('stroke-width', '5') - .attr('stroke', 'black'); - - const lineGenerator = d3.line(); - - simulation.on('tick', () => { - simulation.nodes(network.value); - simulation.force(networkLinks.value); - node.data(network.value).attr('cx', (d) => { - return d.x = Math.max(10, Math.min(width - 10, d.x)); - }) - node.attr('cy', (d) => { - return d.y = Math.max(10, Math.min(height - 10, d.y)); - }) - link - .data(networkLinks.value) - .enter() - .attr('d', (d) => { - lineGenerator([ - [d.source.x, d.source.y], - [d.target.x, d.target.y] - ]); - }) + loadData().then(() => { + for (let i = start; i <= finish; i += 1) { + years.value.push(i); + } + projects.value.map((p, i) => { + p.periods.map((pp, pi) => { + if (pp[1] === -1) projects.value[i].periods[pi][1] = finish; + }); }); - */ + + console.log(projects.value); + //Timeline }).catch((e) => { console.log(e); }) - watchEffect(() => { - loadData(); - }); - - watch(route, (to) => { - if (!to.hash) { - resetData(); - loadData(); - } - }); - return { - + projects, + years, + isInFundingPeriod, + filteredProjectYears }; } }); diff --git a/GUI/src/views/ProjectList.vue b/GUI/src/views/ProjectList.vue index 7d651046fc42bb40fc506eee5370c0fb675ada4d..bac409efda89bdd7587f2bf23892eb1ae69dd350 100644 --- a/GUI/src/views/ProjectList.vue +++ b/GUI/src/views/ProjectList.vue @@ -1,11 +1,14 @@ <template> <div class="flex flex-wrap m-5"> - <div class="w-full"> - <cat-list /> - <tag-list - :taglist="tags" - /> + <div class="sticky top-0 stickybox rounded-xl w-full py-2"> + <div class="w-full"> + <cat-list /> + <tag-list + :taglist="tags" + /> + </div> </div> + <div class="w-full text-xl m-2 elementcount">{{ projectList.length }} Elements</div> <project-item v-for="project in projectList" :key="project._id" diff --git a/GUI/tailwind.config.js b/GUI/tailwind.config.js index 2df6995448de4fd4471dc02b8f58b85992f496e8..2af5d1e90909af60f483f3c48063e9b58d241b47 100644 --- a/GUI/tailwind.config.js +++ b/GUI/tailwind.config.js @@ -2,6 +2,9 @@ module.exports = { purge: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], darkMode: false, // or 'media' or 'class' theme: { + colors: { + 'nlsdarkblue': '#202C39', + }, extend: {}, }, variants: { diff --git a/PROJECTS/.DS_Store b/PROJECTS/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..77e1a928e14ba899f1d13b78885b87183e0011c7 Binary files /dev/null and b/PROJECTS/.DS_Store differ diff --git a/css/49.f9c7bd92.css b/css/49.f9c7bd92.css new file mode 100644 index 0000000000000000000000000000000000000000..f7a671f1661c43903bbcc36ef7347b829e72e01f --- /dev/null +++ b/css/49.f9c7bd92.css @@ -0,0 +1 @@ +.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:hsla(0,0%,100%,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-control-attribution svg{display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;box-sizing:border-box;background:#fff;background:hsla(0,0%,100%,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;color-adjust:exact}} \ No newline at end of file diff --git a/css/app.f09d8ca8.css b/css/app.f09d8ca8.css new file mode 100644 index 0000000000000000000000000000000000000000..d492914a6466dd1cb04419bdef7fec2895141154 --- /dev/null +++ b/css/app.f09d8ca8.css @@ -0,0 +1,2 @@ +@import url(https://fonts.googleapis.com/css2?family=Comfortaa:wght@300&display=swap);@import url(https://fonts.googleapis.com/css2?family=Comfortaa:wght@300&family=Noto+Sans:wght@300&display=swap); +/* ! tailwindcss v3.0.24 | MIT License | https://tailwindcss.com */*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af}input::placeholder,textarea::placeholder{color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.right-5{right:1.25rem}.top-0{top:0}.col-span-2{grid-column:span 2/span 2}.float-right{float:right}.float-left{float:left}.m-auto{margin:auto}.m-4{margin:1rem}.m-3{margin:.75rem}.m-5{margin:1.25rem}.m-2{margin:.5rem}.m-1{margin:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-0{margin-top:0;margin-bottom:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-auto{margin-top:auto;margin-bottom:auto}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.ml-5{margin-left:1.25rem}.mb-2{margin-bottom:.5rem}.mb-0{margin-bottom:0}.ml-2{margin-left:.5rem}.mt-0{margin-top:0}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mb-3{margin-bottom:.75rem}.mr-3{margin-right:.75rem}.mb-5{margin-bottom:1.25rem}.mr-2{margin-right:.5rem}.mt-5{margin-top:1.25rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.mr-0{margin-right:0}.mr-7{margin-right:1.75rem}.mt-2{margin-top:.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-5{height:1.25rem}.h-8{height:2rem}.h-auto{height:auto}.h-6{height:1.5rem}.h-full{height:100%}.h-max{height:-webkit-max-content;height:-moz-max-content;height:max-content}.w-full{width:100%}.w-auto{width:auto}.w-5{width:1.25rem}.w-8{width:2rem}.w-6{width:1.5rem}.w-20{width:5rem}.max-w-2xl{max-width:42rem}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.gap-2{gap:.5rem}.gap-y-1{row-gap:.25rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.overflow-scroll{overflow:scroll}.rounded-full{border-radius:9999px}.rounded-2xl{border-radius:1rem}.rounded{border-radius:.25rem}.rounded-xl{border-radius:.75rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.rounded-b-xl{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.rounded-tr-lg{border-top-right-radius:.5rem}.border-2{border-width:2px}.border{border-width:1px}.border-l{border-left-width:1px}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-nlsdarkblue{--tw-gradient-from:#202c39;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(32,44,57,0))}.p-5{padding:1.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-2{padding:.5rem}.p-0{padding:0}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-0{padding-top:0;padding-bottom:0}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-4{padding-left:1rem;padding-right:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.pl-3{padding-left:.75rem}.pb-7{padding-bottom:1.75rem}.pb-10{padding-bottom:2.5rem}.pl-7{padding-left:1.75rem}.pr-4{padding-right:1rem}.pl-4{padding-left:1rem}.pr-0{padding-right:0}.pb-1{padding-bottom:.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-5xl{font-size:3rem;line-height:1}.text-2xl{font-size:1.5rem;line-height:2rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-light{font-weight:300}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#2e4a61}.head{color:#fff}.head,.text-comfortaa{font-family:Noto Sans,sans-serif}.nav{background-color:#f29559;color:#202c39}.box,.tag-container{background-color:#b8b08d}.tag-container{border-color:#202c39;cursor:pointer}.box .footer{background-color:#202c39}.icon{background-color:#f29559;position:relative;top:-50%;border-color:#202c39}.bubble{background-color:#f2d492}a.bubble:hover{color:#f29559;background-color:#2e4a61}.codebox{background-color:#000;color:#fff}.nav-item:hover{color:#f2d492;cursor:pointer}.bg-orange{background-color:#f29559}.text-orange{color:#f29559!important}.bg-brightblue,.bg-darkblue{background-color:#202c39;color:#b8b08d}.bright-text{color:#b8b08d}.button{cursor:pointer;border-color:#202c39}a:hover{color:#f2d492}#app{font-family:Noto Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:60px}#map{min-height:500px;height:100%}#barchart{color:#fff}.visualbox{overflow-x:scroll}.stickybox{z-index:100;background-color:#2e4a61}.elementcount{color:#fff}@media (min-width:768px){.md\:basis-1\/2{flex-basis:50%}.md\:flex-row{flex-direction:row}}@media (min-width:1024px){.lg\:basis-1\/3{flex-basis:33.333333%}} \ No newline at end of file diff --git a/index.html b/index.html index 61c5cba60614ae735f0b098c3a28a844e2df9f45..3b62d49800dda9e6ea1ebe8962f256cfb9468192 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/Closing-The-Gap-In-Non-Latin-Script-Data/favicon.ico"><link rel="stylesheet" href="https://unpkg.com/leaflet@1.8.0/dist/leaflet.css" integrity="sha512-hoalWLoI8r4UszCkZ5kL8vayOGVae1oxXe/2A4AO6J9+580uKHDO3JdHb7NzwwzK5xr/Fs0W40kiNHxM9vyTtQ==" crossorigin=""/><script src="https://unpkg.com/leaflet@1.8.0/dist/leaflet.js" integrity="sha512-BB3hKbKWOc9Ez/TAwyWxNXeoV9c1v6FIeYiBieIWkpLjauysF18NzgR1MBNBXf8/KABdlkX68nAhlwcDFLGPCQ==" crossorigin=""></script><link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.css"/><link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css"/><script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script><title>Closing the Gap in Non-Latin Script Data - Graphical User Interface</title><script defer="defer" src="/Closing-The-Gap-In-Non-Latin-Script-Data/js/chunk-vendors.89100f2c.js"></script><script defer="defer" src="/Closing-The-Gap-In-Non-Latin-Script-Data/js/app.5dc3e3d1.js"></script><link href="/Closing-The-Gap-In-Non-Latin-Script-Data/css/app.648b04ec.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but gui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html> \ No newline at end of file +<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="https://unpkg.com/leaflet@1.8.0/dist/leaflet.css" integrity="sha512-hoalWLoI8r4UszCkZ5kL8vayOGVae1oxXe/2A4AO6J9+580uKHDO3JdHb7NzwwzK5xr/Fs0W40kiNHxM9vyTtQ==" crossorigin=""/><script src="https://unpkg.com/leaflet@1.8.0/dist/leaflet.js" integrity="sha512-BB3hKbKWOc9Ez/TAwyWxNXeoV9c1v6FIeYiBieIWkpLjauysF18NzgR1MBNBXf8/KABdlkX68nAhlwcDFLGPCQ==" crossorigin=""></script><script src="https://unpkg.com/timelines-chart"></script><link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.css"/><link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css"/><script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script><title>Closing the Gap in Non-Latin Script Data - Graphical User Interface</title><script defer="defer" src="/Closing-The-Gap-In-Non-Latin-Script-Data/js/chunk-vendors.89100f2c.js"></script><script defer="defer" src="/Closing-The-Gap-In-Non-Latin-Script-Data/js/app.8a4790c0.js"></script><link href="/Closing-The-Gap-In-Non-Latin-Script-Data/css/app.f09d8ca8.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but gui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html> \ No newline at end of file diff --git a/js/49.b20b4ba4.js b/js/49.b20b4ba4.js new file mode 100644 index 0000000000000000000000000000000000000000..1904380c4b7f10c5eb39772b4e6d4ef7adf90913 --- /dev/null +++ b/js/49.b20b4ba4.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkgui"]=self["webpackChunkgui"]||[]).push([[49],{1049:function(t,n,e){e.r(n),e.d(n,{default:function(){return Yi}});var r=e(3396),i=e(7139);const o={class:"w-full visualbox"},u=(0,r._)("h5",null,"Timeline",-1),a=(0,r._)("p",null,"CAUTION! This timeline only contains projects of which we have gathered dedicated funding periods. Projects with unknown or incomplete funding data are not included.",-1),s={class:"box"},l=["colspan"],c={key:0};function h(t,n,e,h,f,p){return(0,r.wg)(),(0,r.iD)("div",o,[u,a,(0,r._)("table",s,[(0,r._)("tr",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.years,((t,n)=>((0,r.wg)(),(0,r.iD)("th",{key:n,class:"border-l text-xs px-2 pb-1"},(0,i.zw)(t),1)))),128))]),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.projects,((n,e)=>((0,r.wg)(),(0,r.iD)("tr",{key:e},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.filteredProjectYears(n,t.years),((e,o)=>((0,r.wg)(),(0,r.iD)("td",{key:o,colspan:t.isInFundingPeriod(n,e),class:(0,i.C_)([t.isInFundingPeriod(n,e)&&!n.noDataOnEnding?"bg-darkblue p-2 border-b-1":t.isInFundingPeriod(n,e)&&n.noDataOnEnding?"from-nlsdarkblue bg-gradient-to-r p-2 text-white border-b-1":"","m-1 p-0 text-xs border-l"])},[t.isInFundingPeriod(n,e)?((0,r.wg)(),(0,r.iD)("span",c,(0,i.zw)(n.title),1)):(0,r.kq)("",!0)],10,l)))),128))])))),128))])])}var f=e(4870),p=e(678),d=e(6265),g=e.n(d);function y(){}function v(t){return null==t?y:function(){return this.querySelector(t)}}function _(t){"function"!==typeof t&&(t=v(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,a=n[i],s=a.length,l=r[i]=new Array(s),c=0;c<s;++c)(o=a[c])&&(u=t.call(o,o.__data__,c,a))&&("__data__"in o&&(u.__data__=o.__data__),l[c]=u);return new pn(r,this._parents)}function w(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function m(){return[]}function b(t){return null==t?m:function(){return this.querySelectorAll(t)}}function x(t){return function(){return w(t.apply(this,arguments))}}function k(t){t="function"===typeof t?x(t):b(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,a=n[o],s=a.length,l=0;l<s;++l)(u=a[l])&&(r.push(t.call(u,u.__data__,l,a)),i.push(u));return new pn(r,i)}function A(t){return function(){return this.matches(t)}}function N(t){return function(n){return n.matches(t)}}var $=Array.prototype.find;function E(t){return function(){return $.call(this.children,t)}}function M(){return this.firstElementChild}function S(t){return this.select(null==t?M:E("function"===typeof t?t:N(t)))}var C=Array.prototype.filter;function P(){return Array.from(this.children)}function j(t){return function(){return C.call(this.children,t)}}function D(t){return this.selectAll(null==t?P:j("function"===typeof t?t:N(t)))}function O(t){"function"!==typeof t&&(t=A(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,s=r[i]=[],l=0;l<a;++l)(o=u[l])&&t.call(o,o.__data__,l,u)&&s.push(o);return new pn(r,this._parents)}function H(t){return new Array(t.length)}function q(){return new pn(this._enter||this._groups.map(H),this._parents)}function T(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function X(t){return function(){return t}}function Y(t,n,e,r,i,o){for(var u,a=0,s=n.length,l=o.length;a<l;++a)(u=n[a])?(u.__data__=o[a],r[a]=u):e[a]=new T(t,o[a]);for(;a<s;++a)(u=n[a])&&(i[a]=u)}function I(t,n,e,r,i,o,u){var a,s,l,c=new Map,h=n.length,f=o.length,p=new Array(h);for(a=0;a<h;++a)(s=n[a])&&(p[a]=l=u.call(s,s.__data__,a,n)+"",c.has(l)?i[a]=s:c.set(l,s));for(a=0;a<f;++a)l=u.call(t,o[a],a,o)+"",(s=c.get(l))?(r[a]=s,s.__data__=o[a],c.delete(l)):e[a]=new T(t,o[a]);for(a=0;a<h;++a)(s=n[a])&&c.get(p[a])===s&&(i[a]=s)}function R(t){return t.__data__}function L(t,n){if(!arguments.length)return Array.from(this,R);var e=n?I:Y,r=this._parents,i=this._groups;"function"!==typeof t&&(t=X(t));for(var o=i.length,u=new Array(o),a=new Array(o),s=new Array(o),l=0;l<o;++l){var c=r[l],h=i[l],f=h.length,p=z(t.call(c,c&&c.__data__,l,r)),d=p.length,g=a[l]=new Array(d),y=u[l]=new Array(d),v=s[l]=new Array(f);e(c,h,g,y,v,p,n);for(var _,w,m=0,b=0;m<d;++m)if(_=g[m]){m>=b&&(b=m+1);while(!(w=y[b])&&++b<d);_._next=w||null}}return u=new pn(u,r),u._enter=a,u._exit=s,u}function z(t){return"object"===typeof t&&"length"in t?t:Array.from(t)}function B(){return new pn(this._exit||this._groups.map(H),this._parents)}function F(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"===typeof t?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),null!=n&&(i=n(i),i&&(i=i.selection())),null==e?o.remove():e(o),r&&i?r.merge(i).order():i}function V(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,u=Math.min(i,o),a=new Array(i),s=0;s<u;++s)for(var l,c=e[s],h=r[s],f=c.length,p=a[s]=new Array(f),d=0;d<f;++d)(l=c[d]||h[d])&&(p[d]=l);for(;s<i;++s)a[s]=e[s];return new pn(a,this._parents)}function U(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&4^r.compareDocumentPosition(u)&&u.parentNode.insertBefore(r,u),u=r);return this}function K(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=G);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var u,a=e[o],s=a.length,l=i[o]=new Array(s),c=0;c<s;++c)(u=a[c])&&(l[c]=u);l.sort(n)}return new pn(i,this._parents).order()}function G(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function Z(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function J(){return Array.from(this)}function W(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null}function Q(){let t=0;for(const n of this)++t;return t}function tt(){return!this.node()}function nt(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,a=o.length;u<a;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this}T.prototype={constructor:T,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var et="http://www.w3.org/1999/xhtml",rt={svg:"http://www.w3.org/2000/svg",xhtml:et,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function it(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),rt.hasOwnProperty(n)?{space:rt[n],local:t}:t}function ot(t){return function(){this.removeAttribute(t)}}function ut(t){return function(){this.removeAttributeNS(t.space,t.local)}}function at(t,n){return function(){this.setAttribute(t,n)}}function st(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function lt(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function ct(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function ht(t,n){var e=it(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?ut:ot:"function"===typeof n?e.local?ct:lt:e.local?st:at)(e,n))}function ft(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function pt(t){return function(){this.style.removeProperty(t)}}function dt(t,n,e){return function(){this.style.setProperty(t,n,e)}}function gt(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function yt(t,n,e){return arguments.length>1?this.each((null==n?pt:"function"===typeof n?gt:dt)(t,n,null==e?"":e)):vt(this.node(),t)}function vt(t,n){return t.style.getPropertyValue(n)||ft(t).getComputedStyle(t,null).getPropertyValue(n)}function _t(t){return function(){delete this[t]}}function wt(t,n){return function(){this[t]=n}}function mt(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function bt(t,n){return arguments.length>1?this.each((null==n?_t:"function"===typeof n?mt:wt)(t,n)):this.node()[t]}function xt(t){return t.trim().split(/^|\s+/)}function kt(t){return t.classList||new At(t)}function At(t){this._node=t,this._names=xt(t.getAttribute("class")||"")}function Nt(t,n){var e=kt(t),r=-1,i=n.length;while(++r<i)e.add(n[r])}function $t(t,n){var e=kt(t),r=-1,i=n.length;while(++r<i)e.remove(n[r])}function Et(t){return function(){Nt(this,t)}}function Mt(t){return function(){$t(this,t)}}function St(t,n){return function(){(n.apply(this,arguments)?Nt:$t)(this,t)}}function Ct(t,n){var e=xt(t+"");if(arguments.length<2){var r=kt(this.node()),i=-1,o=e.length;while(++i<o)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"===typeof n?St:n?Et:Mt)(e,n))}function Pt(){this.textContent=""}function jt(t){return function(){this.textContent=t}}function Dt(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function Ot(t){return arguments.length?this.each(null==t?Pt:("function"===typeof t?Dt:jt)(t)):this.node().textContent}function Ht(){this.innerHTML=""}function qt(t){return function(){this.innerHTML=t}}function Tt(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function Xt(t){return arguments.length?this.each(null==t?Ht:("function"===typeof t?Tt:qt)(t)):this.node().innerHTML}function Yt(){this.nextSibling&&this.parentNode.appendChild(this)}function It(){return this.each(Yt)}function Rt(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Lt(){return this.each(Rt)}function zt(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===et&&n.documentElement.namespaceURI===et?n.createElement(t):n.createElementNS(e,t)}}function Bt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ft(t){var n=it(t);return(n.local?Bt:zt)(n)}function Vt(t){var n="function"===typeof t?t:Ft(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))}function Ut(){return null}function Kt(t,n){var e="function"===typeof t?t:Ft(t),r=null==n?Ut:"function"===typeof n?n:v(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))}function Gt(){var t=this.parentNode;t&&t.removeChild(this)}function Zt(){return this.each(Gt)}function Jt(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Wt(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Qt(t){return this.select(t?Wt:Jt)}function tn(t){return arguments.length?this.property("__data__",t):this.node().__data__}function nn(t){return function(n){t.call(this,n,this.__data__)}}function en(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}function rn(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function on(t,n,e){return function(){var r,i=this.__on,o=nn(n);if(i)for(var u=0,a=i.length;u<a;++u)if((r=i[u]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),void(r.value=n);this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function un(t,n,e){var r,i,o=en(t+""),u=o.length;if(!(arguments.length<2)){for(a=n?on:rn,r=0;r<u;++r)this.each(a(o[r],n,e));return this}var a=this.node().__on;if(a)for(var s,l=0,c=a.length;l<c;++l)for(r=0,s=a[l];r<u;++r)if((i=o[r]).type===s.type&&i.name===s.name)return s.value}function an(t,n,e){var r=ft(t),i=r.CustomEvent;"function"===typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function sn(t,n){return function(){return an(this,t,n)}}function ln(t,n){return function(){return an(this,t,n.apply(this,arguments))}}function cn(t,n){return this.each(("function"===typeof n?ln:sn)(t,n))}function*hn(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,u=i.length;o<u;++o)(r=i[o])&&(yield r)}At.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var fn=[null];function pn(t,n){this._groups=t,this._parents=n}function dn(){return new pn([[document.documentElement]],fn)}function gn(){return this}pn.prototype=dn.prototype={constructor:pn,select:_,selectAll:k,selectChild:S,selectChildren:D,filter:O,data:L,enter:q,exit:B,join:F,merge:V,selection:gn,order:U,sort:K,call:Z,nodes:J,node:W,size:Q,empty:tt,each:nt,attr:ht,style:yt,property:bt,classed:Ct,text:Ot,html:Xt,raise:It,lower:Lt,append:Vt,insert:Kt,remove:Zt,clone:Qt,datum:tn,on:un,dispatch:cn,[Symbol.iterator]:hn};var yn=dn,vn=(e(1703),{value:()=>{}});function _n(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new wn(r)}function wn(t){this._=t}function mn(t,n){return t.trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))}function bn(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function xn(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=vn,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}wn.prototype=_n.prototype={constructor:wn,on:function(t,n){var e,r=this._,i=mn(t+"",r),o=-1,u=i.length;if(!(arguments.length<2)){if(null!=n&&"function"!==typeof n)throw new Error("invalid callback: "+n);while(++o<u)if(e=(t=i[o]).type)r[e]=xn(r[e],t.name,n);else if(null==n)for(e in r)r[e]=xn(r[e],t.name,null);return this}while(++o<u)if((e=(t=i[o]).type)&&(e=bn(r[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new wn(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var kn,An,Nn=_n,$n=0,En=0,Mn=0,Sn=1e3,Cn=0,Pn=0,jn=0,Dn="object"===typeof performance&&performance.now?performance:Date,On="object"===typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Hn(){return Pn||(On(qn),Pn=Dn.now()+jn)}function qn(){Pn=0}function Tn(){this._call=this._time=this._next=null}function Xn(t,n,e){var r=new Tn;return r.restart(t,n,e),r}function Yn(){Hn(),++$n;var t,n=kn;while(n)(t=Pn-n._time)>=0&&n._call.call(void 0,t),n=n._next;--$n}function In(){Pn=(Cn=Dn.now())+jn,$n=En=0;try{Yn()}finally{$n=0,Ln(),Pn=0}}function Rn(){var t=Dn.now(),n=t-Cn;n>Sn&&(jn-=n,Cn=t)}function Ln(){var t,n,e=kn,r=1/0;while(e)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:kn=n);An=t,zn(r)}function zn(t){if(!$n){En&&(En=clearTimeout(En));var n=t-Pn;n>24?(t<1/0&&(En=setTimeout(In,t-Dn.now()-jn)),Mn&&(Mn=clearInterval(Mn))):(Mn||(Cn=Dn.now(),Mn=setInterval(Rn,Sn)),$n=1,On(In))}}function Bn(t,n,e){var r=new Tn;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}Tn.prototype=Xn.prototype={constructor:Tn,restart:function(t,n,e){if("function"!==typeof t)throw new TypeError("callback is not a function");e=(null==e?Hn():+e)+(null==n?0:+n),this._next||An===this||(An?An._next=this:kn=this,An=this),this._call=t,this._time=e,zn()},stop:function(){this._call&&(this._call=null,this._time=1/0,zn())}};var Fn=Nn("start","end","cancel","interrupt"),Vn=[],Un=0,Kn=1,Gn=2,Zn=3,Jn=4,Wn=5,Qn=6;function te(t,n,e,r,i,o){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};ie(t,e,{name:n,index:r,group:i,on:Fn,tween:Vn,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Un})}function ne(t,n){var e=re(t,n);if(e.state>Un)throw new Error("too late; already scheduled");return e}function ee(t,n){var e=re(t,n);if(e.state>Zn)throw new Error("too late; already running");return e}function re(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function ie(t,n,e){var r,i=t.__transition;function o(t){e.state=Kn,e.timer.restart(u,e.delay,e.time),e.delay<=t&&u(t-e.delay)}function u(o){var l,c,h,f;if(e.state!==Kn)return s();for(l in i)if(f=i[l],f.name===e.name){if(f.state===Zn)return Bn(u);f.state===Jn?(f.state=Qn,f.timer.stop(),f.on.call("interrupt",t,t.__data__,f.index,f.group),delete i[l]):+l<n&&(f.state=Qn,f.timer.stop(),f.on.call("cancel",t,t.__data__,f.index,f.group),delete i[l])}if(Bn((function(){e.state===Zn&&(e.state=Jn,e.timer.restart(a,e.delay,e.time),a(o))})),e.state=Gn,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Gn){for(e.state=Zn,r=new Array(h=e.tween.length),l=0,c=-1;l<h;++l)(f=e.tween[l].value.call(t,t.__data__,e.index,e.group))&&(r[++c]=f);r.length=c+1}}function a(n){var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(s),e.state=Wn,1),o=-1,u=r.length;while(++o<u)r[o].call(t,i);e.state===Wn&&(e.on.call("end",t,t.__data__,e.index,e.group),s())}function s(){for(var r in e.state=Qn,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=Xn(o,0,e.time)}function oe(t,n){var e,r,i,o=t.__transition,u=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>Gn&&e.state<Wn,e.state=Qn,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}}function ue(t){return this.each((function(){oe(this,t)}))}function ae(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var se,le=180/Math.PI,ce={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function he(t,n,e,r,i,o){var u,a,s;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,s/=a),t*r<n*e&&(t=-t,n=-n,s=-s,u=-u),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*le,skewX:Math.atan(s)*le,scaleX:u,scaleY:a}}function fe(t){const n=new("function"===typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?ce:he(n.a,n.b,n.c,n.d,n.e,n.f)}function pe(t){return null==t?ce:(se||(se=document.createElementNS("http://www.w3.org/2000/svg","g")),se.setAttribute("transform",t),(t=se.transform.baseVal.consolidate())?(t=t.matrix,he(t.a,t.b,t.c,t.d,t.e,t.f)):ce)}function de(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}function o(t,r,i,o,u,a){if(t!==i||r!==o){var s=u.push("translate(",null,n,null,e);a.push({i:s-4,x:ae(t,i)},{i:s-2,x:ae(r,o)})}else(i||o)&&u.push("translate("+i+n+o+e)}function u(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:ae(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:ae(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function s(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:ae(t,e)},{i:a-2,x:ae(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),s(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){var n,e=-1,o=i.length;while(++e<o)r[(n=i[e]).i]=n.x(t);return r.join("")}}}var ge=de(fe,"px, ","px)","deg)"),ye=de(pe,", ",")",")");function ve(t,n){var e,r;return function(){var i=ee(this,t),o=i.tween;if(o!==e){r=e=o;for(var u=0,a=r.length;u<a;++u)if(r[u].name===n){r=r.slice(),r.splice(u,1);break}}i.tween=r}}function _e(t,n,e){var r,i;if("function"!==typeof e)throw new Error;return function(){var o=ee(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=a;break}s===l&&i.push(a)}o.tween=i}}function we(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=re(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?ve:_e)(e,t,n))}function me(t,n,e){var r=t._id;return t.each((function(){var t=ee(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return re(t,r).value[n]}}function be(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function xe(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function ke(){}var Ae=.7,Ne=1/Ae,$e="\\s*([+-]?\\d+)\\s*",Ee="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Me="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Se=/^#([0-9a-f]{3,8})$/,Ce=new RegExp(`^rgb\\(${$e},${$e},${$e}\\)$`),Pe=new RegExp(`^rgb\\(${Me},${Me},${Me}\\)$`),je=new RegExp(`^rgba\\(${$e},${$e},${$e},${Ee}\\)$`),De=new RegExp(`^rgba\\(${Me},${Me},${Me},${Ee}\\)$`),Oe=new RegExp(`^hsl\\(${Ee},${Me},${Me}\\)$`),He=new RegExp(`^hsla\\(${Ee},${Me},${Me},${Ee}\\)$`),qe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Te(){return this.rgb().formatHex()}function Xe(){return this.rgb().formatHex8()}function Ye(){return tr(this).formatHsl()}function Ie(){return this.rgb().formatRgb()}function Re(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Se.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?Le(n):3===e?new Ve(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?ze(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?ze(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Ce.exec(t))?new Ve(n[1],n[2],n[3],1):(n=Pe.exec(t))?new Ve(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=je.exec(t))?ze(n[1],n[2],n[3],n[4]):(n=De.exec(t))?ze(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Oe.exec(t))?Qe(n[1],n[2]/100,n[3]/100,1):(n=He.exec(t))?Qe(n[1],n[2]/100,n[3]/100,n[4]):qe.hasOwnProperty(t)?Le(qe[t]):"transparent"===t?new Ve(NaN,NaN,NaN,0):null}function Le(t){return new Ve(t>>16&255,t>>8&255,255&t,1)}function ze(t,n,e,r){return r<=0&&(t=n=e=NaN),new Ve(t,n,e,r)}function Be(t){return t instanceof ke||(t=Re(t)),t?(t=t.rgb(),new Ve(t.r,t.g,t.b,t.opacity)):new Ve}function Fe(t,n,e,r){return 1===arguments.length?Be(t):new Ve(t,n,e,null==r?1:r)}function Ve(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Ue(){return`#${We(this.r)}${We(this.g)}${We(this.b)}`}function Ke(){return`#${We(this.r)}${We(this.g)}${We(this.b)}${We(255*(isNaN(this.opacity)?1:this.opacity))}`}function Ge(){const t=Ze(this.opacity);return`${1===t?"rgb(":"rgba("}${Je(this.r)}, ${Je(this.g)}, ${Je(this.b)}${1===t?")":`, ${t})`}`}function Ze(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Je(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function We(t){return t=Je(t),(t<16?"0":"")+t.toString(16)}function Qe(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new er(t,n,e,r)}function tr(t){if(t instanceof er)return new er(t.h,t.s,t.l,t.opacity);if(t instanceof ke||(t=Re(t)),!t)return new er;if(t instanceof er)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,s=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e<r):e===o?(r-n)/a+2:(n-e)/a+4,a/=s<.5?o+i:2-o-i,u*=60):a=s>0&&s<1?0:u,new er(u,a,s,t.opacity)}function nr(t,n,e,r){return 1===arguments.length?tr(t):new er(t,n,e,null==r?1:r)}function er(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function rr(t){return t=(t||0)%360,t<0?t+360:t}function ir(t){return Math.max(0,Math.min(1,t||0))}function or(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function ur(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function ar(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],u=r>0?t[r-1]:2*i-o,a=r<n-1?t[r+2]:2*o-i;return ur((e-r/n)*n,u,i,o,a)}}function sr(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],u=t[(r+1)%n],a=t[(r+2)%n];return ur((e-r/n)*n,i,o,u,a)}}be(ke,Re,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Te,formatHex:Te,formatHex8:Xe,formatHsl:Ye,formatRgb:Ie,toString:Ie}),be(Ve,Fe,xe(ke,{brighter(t){return t=null==t?Ne:Math.pow(Ne,t),new Ve(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Ae:Math.pow(Ae,t),new Ve(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ve(Je(this.r),Je(this.g),Je(this.b),Ze(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ue,formatHex:Ue,formatHex8:Ke,formatRgb:Ge,toString:Ge})),be(er,nr,xe(ke,{brighter(t){return t=null==t?Ne:Math.pow(Ne,t),new er(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Ae:Math.pow(Ae,t),new er(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Ve(or(t>=240?t-240:t+120,i,r),or(t,i,r),or(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new er(rr(this.h),ir(this.s),ir(this.l),Ze(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ze(this.opacity);return`${1===t?"hsl(":"hsla("}${rr(this.h)}, ${100*ir(this.s)}%, ${100*ir(this.l)}%${1===t?")":`, ${t})`}`}}));var lr=t=>()=>t;function cr(t,n){return function(e){return t+e*n}}function hr(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function fr(t){return 1===(t=+t)?pr:function(n,e){return e-n?hr(n,e,t):lr(isNaN(n)?e:n)}}function pr(t,n){var e=n-t;return e?cr(t,e):lr(isNaN(t)?n:t)}var dr=function t(n){var e=fr(n);function r(t,n){var r=e((t=Fe(t)).r,(n=Fe(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),u=pr(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=u(n),t+""}}return r.gamma=t,r}(1);function gr(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e<i;++e)r=Fe(n[e]),o[e]=r.r||0,u[e]=r.g||0,a[e]=r.b||0;return o=t(o),u=t(u),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=u(t),r.b=a(t),r+""}}}gr(ar),gr(sr);var yr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,vr=new RegExp(yr.source,"g");function _r(t){return function(){return t}}function wr(t){return function(n){return t(n)+""}}function mr(t,n){var e,r,i,o=yr.lastIndex=vr.lastIndex=0,u=-1,a=[],s=[];t+="",n+="";while((e=yr.exec(t))&&(r=vr.exec(n)))(i=r.index)>o&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,s.push({i:u,x:ae(e,r)})),o=vr.lastIndex;return o<n.length&&(i=n.slice(o),a[u]?a[u]+=i:a[++u]=i),a.length<2?s[0]?wr(s[0].x):_r(n):(n=s.length,function(t){for(var e,r=0;r<n;++r)a[(e=s[r]).i]=e.x(t);return a.join("")})}function br(t,n){var e;return("number"===typeof n?ae:n instanceof Re?dr:(e=Re(n))?(n=e,dr):mr)(t,n)}function xr(t){return function(){this.removeAttribute(t)}}function kr(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ar(t,n,e){var r,i,o=e+"";return function(){var u=this.getAttribute(t);return u===o?null:u===r?i:i=n(r=u,e)}}function Nr(t,n,e){var r,i,o=e+"";return function(){var u=this.getAttributeNS(t.space,t.local);return u===o?null:u===r?i:i=n(r=u,e)}}function $r(t,n,e){var r,i,o;return function(){var u,a,s=e(this);if(null!=s)return u=this.getAttribute(t),a=s+"",u===a?null:u===r&&a===i?o:(i=a,o=n(r=u,s));this.removeAttribute(t)}}function Er(t,n,e){var r,i,o;return function(){var u,a,s=e(this);if(null!=s)return u=this.getAttributeNS(t.space,t.local),a=s+"",u===a?null:u===r&&a===i?o:(i=a,o=n(r=u,s));this.removeAttributeNS(t.space,t.local)}}function Mr(t,n){var e=it(t),r="transform"===e?ye:br;return this.attrTween(t,"function"===typeof n?(e.local?Er:$r)(e,r,me(this,"attr."+t,n)):null==n?(e.local?kr:xr)(e):(e.local?Nr:Ar)(e,r,n))}function Sr(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function Cr(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function Pr(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&Cr(t,i)),e}return i._value=n,i}function jr(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&Sr(t,i)),e}return i._value=n,i}function Dr(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!==typeof n)throw new Error;var r=it(t);return this.tween(e,(r.local?Pr:jr)(r,n))}function Or(t,n){return function(){ne(this,t).delay=+n.apply(this,arguments)}}function Hr(t,n){return n=+n,function(){ne(this,t).delay=n}}function qr(t){var n=this._id;return arguments.length?this.each(("function"===typeof t?Or:Hr)(n,t)):re(this.node(),n).delay}function Tr(t,n){return function(){ee(this,t).duration=+n.apply(this,arguments)}}function Xr(t,n){return n=+n,function(){ee(this,t).duration=n}}function Yr(t){var n=this._id;return arguments.length?this.each(("function"===typeof t?Tr:Xr)(n,t)):re(this.node(),n).duration}function Ir(t,n){if("function"!==typeof n)throw new Error;return function(){ee(this,t).ease=n}}function Rr(t){var n=this._id;return arguments.length?this.each(Ir(n,t)):re(this.node(),n).ease}function Lr(t,n){return function(){var e=n.apply(this,arguments);if("function"!==typeof e)throw new Error;ee(this,t).ease=e}}function zr(t){if("function"!==typeof t)throw new Error;return this.each(Lr(this._id,t))}function Br(t){"function"!==typeof t&&(t=A(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,s=r[i]=[],l=0;l<a;++l)(o=u[l])&&t.call(o,o.__data__,l,u)&&s.push(o);return new wi(r,this._parents,this._name,this._id)}function Fr(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var s,l=n[a],c=e[a],h=l.length,f=u[a]=new Array(h),p=0;p<h;++p)(s=l[p]||c[p])&&(f[p]=s);for(;a<r;++a)u[a]=n[a];return new wi(u,this._parents,this._name,this._id)}function Vr(t){return(t+"").trim().split(/^|\s+/).every((function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t}))}function Ur(t,n,e){var r,i,o=Vr(n)?ne:ee;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function Kr(t,n){var e=this._id;return arguments.length<2?re(this.node(),e).on.on(t):this.each(Ur(e,t,n))}function Gr(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Zr(){return this.on("end.remove",Gr(this._id))}function Jr(t){var n=this._name,e=this._id;"function"!==typeof t&&(t=v(t));for(var r=this._groups,i=r.length,o=new Array(i),u=0;u<i;++u)for(var a,s,l=r[u],c=l.length,h=o[u]=new Array(c),f=0;f<c;++f)(a=l[f])&&(s=t.call(a,a.__data__,f,l))&&("__data__"in a&&(s.__data__=a.__data__),h[f]=s,te(h[f],n,e,f,h,re(a,e)));return new wi(o,this._parents,n,e)}function Wr(t){var n=this._name,e=this._id;"function"!==typeof t&&(t=b(t));for(var r=this._groups,i=r.length,o=[],u=[],a=0;a<i;++a)for(var s,l=r[a],c=l.length,h=0;h<c;++h)if(s=l[h]){for(var f,p=t.call(s,s.__data__,h,l),d=re(s,e),g=0,y=p.length;g<y;++g)(f=p[g])&&te(f,n,e,g,p,d);o.push(p),u.push(s)}return new wi(o,u,n,e)}var Qr=yn.prototype.constructor;function ti(){return new Qr(this._groups,this._parents)}function ni(t,n){var e,r,i;return function(){var o=vt(this,t),u=(this.style.removeProperty(t),vt(this,t));return o===u?null:o===e&&u===r?i:i=n(e=o,r=u)}}function ei(t){return function(){this.style.removeProperty(t)}}function ri(t,n,e){var r,i,o=e+"";return function(){var u=vt(this,t);return u===o?null:u===r?i:i=n(r=u,e)}}function ii(t,n,e){var r,i,o;return function(){var u=vt(this,t),a=e(this),s=a+"";return null==a&&(this.style.removeProperty(t),s=a=vt(this,t)),u===s?null:u===r&&s===i?o:(i=s,o=n(r=u,a))}}function oi(t,n){var e,r,i,o,u="style."+n,a="end."+u;return function(){var s=ee(this,t),l=s.on,c=null==s.value[u]?o||(o=ei(n)):void 0;l===e&&i===c||(r=(e=l).copy()).on(a,i=c),s.on=r}}function ui(t,n,e){var r="transform"===(t+="")?ge:br;return null==n?this.styleTween(t,ni(t,r)).on("end.style."+t,ei(t)):"function"===typeof n?this.styleTween(t,ii(t,r,me(this,"style."+t,n))).each(oi(this._id,t)):this.styleTween(t,ri(t,r,n),e).on("end.style."+t,null)}function ai(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function si(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&ai(t,o,e)),r}return o._value=n,o}function li(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!==typeof n)throw new Error;return this.tween(r,si(t,n,null==e?"":e))}function ci(t){return function(){this.textContent=t}}function hi(t){return function(){var n=t(this);this.textContent=null==n?"":n}}function fi(t){return this.tween("text","function"===typeof t?hi(me(this,"text",t)):ci(null==t?"":t+""))}function pi(t){return function(n){this.textContent=t.call(this,n)}}function di(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&pi(r)),n}return r._value=t,r}function gi(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!==typeof t)throw new Error;return this.tween(n,di(t))}function yi(){for(var t=this._name,n=this._id,e=bi(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],s=a.length,l=0;l<s;++l)if(u=a[l]){var c=re(u,n);te(u,t,e,l,a,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new wi(r,this._parents,t,e)}function vi(){var t,n,e=this,r=e._id,i=e.size();return new Promise((function(o,u){var a={value:u},s={value:function(){0===--i&&o()}};e.each((function(){var e=ee(this,r),i=e.on;i!==t&&(n=(t=i).copy(),n._.cancel.push(a),n._.interrupt.push(a),n._.end.push(s)),e.on=n})),0===i&&o()}))}var _i=0;function wi(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function mi(t){return yn().transition(t)}function bi(){return++_i}var xi=yn.prototype;function ki(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}wi.prototype=mi.prototype={constructor:wi,select:Jr,selectAll:Wr,selectChild:xi.selectChild,selectChildren:xi.selectChildren,filter:Br,merge:Fr,selection:ti,transition:yi,call:xi.call,nodes:xi.nodes,node:xi.node,size:xi.size,empty:xi.empty,each:xi.each,on:Kr,attr:Mr,attrTween:Dr,style:ui,styleTween:li,text:fi,textTween:gi,remove:Zr,tween:we,delay:qr,duration:Yr,ease:Rr,easeVarying:zr,end:vi,[Symbol.iterator]:xi[Symbol.iterator]};var Ai={time:null,delay:0,duration:250,ease:ki};function Ni(t,n){var e;while(!(e=t.__transition)||!(e=e[n]))if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function $i(t){var n,e;t instanceof wi?(n=t._id,t=t._name):(n=bi(),(e=Ai).time=Hn(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],s=a.length,l=0;l<s;++l)(u=a[l])&&te(u,t,n,l,a,e||Ni(u,n));return new wi(r,this._parents,t,n)}yn.prototype.interrupt=ue,yn.prototype.transition=$i;const{abs:Ei,max:Mi,min:Si}=Math;function Ci(t){return[+t[0],+t[1]]}function Pi(t){return[Ci(t[0]),Ci(t[1])]}["w","e"].map(ji),["n","s"].map(ji),["n","w","e","s","nw","ne","sw","se"].map(ji);function ji(t){return{type:t}}function Di(t,n,e){this.k=t,this.x=n,this.y=e}Di.prototype={constructor:Di,scale:function(t){return 1===t?this:new Di(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Di(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Oi=new Di(1,0,0);function Hi(t){while(!t.__zoom)if(!(t=t.parentNode))return Oi;return t.__zoom}Hi.prototype=Di.prototype;e(5588);var qi=(0,r.aZ)({components:{},setup(){const t=(0,f.iH)([]),n=((0,p.yj)(),(0,f.iH)([]),(0,f.iH)([]),(0,f.iH)([])),e=(0,f.iH)([]);let r=(new Date).getFullYear(),i=(new Date).getFullYear();const o=()=>{console.log("Begin to load data");let n=new Promise((n=>{g().get("https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master/PROJECTS.json").then((o=>{Object.keys(o.data).map(((u,a)=>(g().get(`https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master${o.data[u].path}${u}.json`).then((u=>{const s=[];let l=!1;return u.data.project.date.map((t=>{if(""!==t.from){let n=Number(t.from),e=-1;n<r&&(r=n),""!==t.to?e=Number(t.to):l=!0,e>i&&(i=e),s.push([n,e])}})),s.length&&e.value.push({title:u.data.project.title,periods:s,noDataOnEnding:l}),u.data.project.keywords.map((n=>{t.value.includes(n)||t.value.push(n)})),a===Object.keys(o.data).length-1&&n("ready"),null})),null)))}))}));return n},u=(t,n)=>{let e=null;return t.periods.map((t=>{n>=t[0]&&n<t[1]&&(e=t[1]-t[0]+1)})),e},a=(t,n)=>{const e=[...n],r=[];return t.periods.map(((t,n)=>{for(let e=t[0]+1;e<=t[1];e+=1)r.push(e)})),r.map((t=>{e.splice(e.indexOf(t),1)})),t.title.includes("Topoi")&&console.log(e),e};return o().then((()=>{for(let t=r;t<=i;t+=1)n.value.push(t);e.value.map(((t,n)=>{t.periods.map(((t,r)=>{-1===t[1]&&(e.value[n].periods[r][1]=i)}))})),console.log(e.value)})).catch((t=>{console.log(t)})),{projects:e,years:n,isInFundingPeriod:u,filteredProjectYears:a}}}),Ti=e(89);const Xi=(0,Ti.Z)(qi,[["render",h]]);var Yi=Xi}}]); +//# sourceMappingURL=49.b20b4ba4.js.map \ No newline at end of file diff --git a/js/49.b20b4ba4.js.map b/js/49.b20b4ba4.js.map new file mode 100644 index 0000000000000000000000000000000000000000..e39799b4ff59069ac985820e6ac72ef7f9833689 --- /dev/null +++ b/js/49.b20b4ba4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/49.b20b4ba4.js","mappings":"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","sources":["webpack://gui/./src/views/NetworkView.vue","webpack://gui/./node_modules/d3-selection/src/selector.js","webpack://gui/./node_modules/d3-selection/src/selection/select.js","webpack://gui/./node_modules/d3-selection/src/array.js","webpack://gui/./node_modules/d3-selection/src/selectorAll.js","webpack://gui/./node_modules/d3-selection/src/selection/selectAll.js","webpack://gui/./node_modules/d3-selection/src/matcher.js","webpack://gui/./node_modules/d3-selection/src/selection/selectChild.js","webpack://gui/./node_modules/d3-selection/src/selection/selectChildren.js","webpack://gui/./node_modules/d3-selection/src/selection/filter.js","webpack://gui/./node_modules/d3-selection/src/selection/sparse.js","webpack://gui/./node_modules/d3-selection/src/selection/enter.js","webpack://gui/./node_modules/d3-selection/src/constant.js","webpack://gui/./node_modules/d3-selection/src/selection/data.js","webpack://gui/./node_modules/d3-selection/src/selection/exit.js","webpack://gui/./node_modules/d3-selection/src/selection/join.js","webpack://gui/./node_modules/d3-selection/src/selection/merge.js","webpack://gui/./node_modules/d3-selection/src/selection/order.js","webpack://gui/./node_modules/d3-selection/src/selection/sort.js","webpack://gui/./node_modules/d3-selection/src/selection/call.js","webpack://gui/./node_modules/d3-selection/src/selection/nodes.js","webpack://gui/./node_modules/d3-selection/src/selection/node.js","webpack://gui/./node_modules/d3-selection/src/selection/size.js","webpack://gui/./node_modules/d3-selection/src/selection/empty.js","webpack://gui/./node_modules/d3-selection/src/selection/each.js","webpack://gui/./node_modules/d3-selection/src/namespaces.js","webpack://gui/./node_modules/d3-selection/src/namespace.js","webpack://gui/./node_modules/d3-selection/src/selection/attr.js","webpack://gui/./node_modules/d3-selection/src/window.js","webpack://gui/./node_modules/d3-selection/src/selection/style.js","webpack://gui/./node_modules/d3-selection/src/selection/property.js","webpack://gui/./node_modules/d3-selection/src/selection/classed.js","webpack://gui/./node_modules/d3-selection/src/selection/text.js","webpack://gui/./node_modules/d3-selection/src/selection/html.js","webpack://gui/./node_modules/d3-selection/src/selection/raise.js","webpack://gui/./node_modules/d3-selection/src/selection/lower.js","webpack://gui/./node_modules/d3-selection/src/creator.js","webpack://gui/./node_modules/d3-selection/src/selection/append.js","webpack://gui/./node_modules/d3-selection/src/selection/insert.js","webpack://gui/./node_modules/d3-selection/src/selection/remove.js","webpack://gui/./node_modules/d3-selection/src/selection/clone.js","webpack://gui/./node_modules/d3-selection/src/selection/datum.js","webpack://gui/./node_modules/d3-selection/src/selection/on.js","webpack://gui/./node_modules/d3-selection/src/selection/dispatch.js","webpack://gui/./node_modules/d3-selection/src/selection/iterator.js","webpack://gui/./node_modules/d3-selection/src/selection/index.js","webpack://gui/./node_modules/d3-dispatch/src/dispatch.js","webpack://gui/./node_modules/d3-timer/src/timer.js","webpack://gui/./node_modules/d3-timer/src/timeout.js","webpack://gui/./node_modules/d3-transition/src/transition/schedule.js","webpack://gui/./node_modules/d3-transition/src/interrupt.js","webpack://gui/./node_modules/d3-transition/src/selection/interrupt.js","webpack://gui/./node_modules/d3-interpolate/src/number.js","webpack://gui/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://gui/./node_modules/d3-interpolate/src/transform/parse.js","webpack://gui/./node_modules/d3-interpolate/src/transform/index.js","webpack://gui/./node_modules/d3-transition/src/transition/tween.js","webpack://gui/./node_modules/d3-color/src/define.js","webpack://gui/./node_modules/d3-color/src/color.js","webpack://gui/./node_modules/d3-interpolate/src/basis.js","webpack://gui/./node_modules/d3-interpolate/src/basisClosed.js","webpack://gui/./node_modules/d3-interpolate/src/constant.js","webpack://gui/./node_modules/d3-interpolate/src/color.js","webpack://gui/./node_modules/d3-interpolate/src/rgb.js","webpack://gui/./node_modules/d3-interpolate/src/string.js","webpack://gui/./node_modules/d3-transition/src/transition/interpolate.js","webpack://gui/./node_modules/d3-transition/src/transition/attr.js","webpack://gui/./node_modules/d3-transition/src/transition/attrTween.js","webpack://gui/./node_modules/d3-transition/src/transition/delay.js","webpack://gui/./node_modules/d3-transition/src/transition/duration.js","webpack://gui/./node_modules/d3-transition/src/transition/ease.js","webpack://gui/./node_modules/d3-transition/src/transition/easeVarying.js","webpack://gui/./node_modules/d3-transition/src/transition/filter.js","webpack://gui/./node_modules/d3-transition/src/transition/merge.js","webpack://gui/./node_modules/d3-transition/src/transition/on.js","webpack://gui/./node_modules/d3-transition/src/transition/remove.js","webpack://gui/./node_modules/d3-transition/src/transition/select.js","webpack://gui/./node_modules/d3-transition/src/transition/selectAll.js","webpack://gui/./node_modules/d3-transition/src/transition/selection.js","webpack://gui/./node_modules/d3-transition/src/transition/style.js","webpack://gui/./node_modules/d3-transition/src/transition/styleTween.js","webpack://gui/./node_modules/d3-transition/src/transition/text.js","webpack://gui/./node_modules/d3-transition/src/transition/textTween.js","webpack://gui/./node_modules/d3-transition/src/transition/transition.js","webpack://gui/./node_modules/d3-transition/src/transition/end.js","webpack://gui/./node_modules/d3-transition/src/transition/index.js","webpack://gui/./node_modules/d3-ease/src/cubic.js","webpack://gui/./node_modules/d3-transition/src/selection/transition.js","webpack://gui/./node_modules/d3-transition/src/selection/index.js","webpack://gui/./node_modules/d3-brush/src/brush.js","webpack://gui/./node_modules/d3-zoom/src/transform.js","webpack://gui/./src/views/NetworkView.vue?09b2"],"sourcesContent":["<template>\n <div class=\"w-full visualbox\">\n <!--\n <tag-list\n :taglist=\"tags\"\n />\n -->\n <h5>Timeline</h5>\n <p>CAUTION! This timeline only contains projects of which we have gathered dedicated funding periods. Projects with unknown or incomplete funding data are not included.</p>\n \n <table class=\"box\">\n <tr> \n <th\n v-for=\"(y, yKey) in years\"\n :key=\"yKey\"\n class=\"border-l text-xs px-2 pb-1\"\n >{{ y }}</th>\n </tr>\n <tr\n v-for=\"(p, pKey) in projects\"\n :key=\"pKey\"\n >\n <td\n v-for=\"(y, yKey) in filteredProjectYears(p, years)\"\n :key=\"yKey\"\n :colspan=\"isInFundingPeriod(p, y)\"\n :class=\"(isInFundingPeriod(p, y) && !p.noDataOnEnding) ? 'bg-darkblue p-2 border-b-1' : \n (isInFundingPeriod(p, y) && p.noDataOnEnding) ? 'from-nlsdarkblue bg-gradient-to-r p-2 text-white border-b-1' : \n ''\"\n class=\"m-1 p-0 text-xs border-l\"\n >\n <span v-if=\"isInFundingPeriod(p, y)\">{{ p.title }}</span>\n </td>\n </tr>\n </table>\n </div>\n</template>\n\n<script>\n/* eslint-disable no-unused-vars */\nimport {\n defineComponent,\n ref,\n watchEffect,\n watch,\n} from 'vue';\nimport {\n useRoute,\n} from 'vue-router';\nimport axios from 'axios';\nimport * as d3 from 'd3';\nimport 'leaflet/dist/leaflet.css';\nimport 'leaflet.markercluster';\n\nexport default defineComponent({\n components: {\n// tagList,\n },\n setup() {\n const tags = ref([]);\n const route = useRoute();\n const network = ref([]);\n const networkLinks = ref([]);\n\n const years = ref([]);\n const projects = ref([]);\n\n let start = new Date().getFullYear();\n let finish = new Date().getFullYear();\n\n let svg = null;\n const width = 1000;\n const height = 640;\n\n const resetData = () => {\n network.value = [];\n networkLinks.value = [];\n };\n\n const ticked = () => {\n /* eslint-disable-next-line no-unused-vars */\n };\n\n const loadData = () => {\n console.log('Begin to load data');\n let promise = new Promise((resolve) => {\n axios.get('https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master/PROJECTS.json')\n .then((responseIndex) => {\n Object.keys(responseIndex.data).map((uuid, key) => {\n axios.get(`https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master${responseIndex.data[uuid].path}${uuid}.json`)\n .then((responseProject) => {\n const period = [];\n let noEnding = false;\n responseProject.data.project.date.map((p) => {\n if (p.from !== '') {\n let begin = Number(p.from);\n let end = -1;\n if (begin < start) start = begin;\n if (p.to !== '') {\n end = Number(p.to);\n } else noEnding = true;\n if (end > finish) finish = end;\n period.push([begin, end]);\n }\n });\n if (period.length) {\n projects.value.push({\n title: responseProject.data.project.title,\n periods: period,\n noDataOnEnding: noEnding,\n });\n }\n /*\n const projectPeriods = [];\n console.log(responseProject.data.project);\n responseProject.data.project.date.map((p) => {\n if (p.from !== '') {\n let begin = Number(p.from);\n let end = (p.to !== '') ? Number(p.to) : new Date().getFullYear();\n\n for (let i =begin; i <= end; i += 1) {\n console.log(i);\n projectPeriods.push(i);\n }\n }\n });\n\n for (let i = 0; i < projectPeriods.length; i += 1) {\n let exists = false;\n for (let j = 0; j < years.value.length; j += 1) {\n if (projectPeriods[i] === years.value[j].year) {\n years.value[j].count += 1;\n exists = true;\n break;\n }\n }\n if (!exists) {\n years.value.push({\n year: projectPeriods[i],\n count: 1,\n });\n }\n }\n */\n responseProject.data.project.keywords.map((tag) => {\n if (!tags.value.includes(tag)) tags.value.push(tag);\n });\n\n if (key === Object.keys(responseIndex.data).length - 1) {\n resolve('ready');\n }\n return null;\n });\n return null;\n });\n });\n });\n return promise;\n };\n\n const isInFundingPeriod = (project, year) => {\n let result = null;\n project.periods.map(period => {\n if (year >= period[0] && year < period[1]) {\n result = period[1] - period[0] + 1;\n }\n });\n return result;\n };\n\n const filteredProjectYears = (project, years) => {\n const newYearArr = [...years];\n const yearsToDel = [];\n project.periods.map((period, periodKey) => {\n for (let i = period[0] + 1; i <= period[1]; i += 1) {\n yearsToDel.push(i);\n }\n });\n yearsToDel.map((y) => {\n newYearArr.splice(newYearArr.indexOf(y), 1);\n });\n if (project.title.includes('Topoi')) console.log(newYearArr)\n return newYearArr;\n };\n\n loadData().then(() => {\n for (let i = start; i <= finish; i += 1) {\n years.value.push(i);\n }\n projects.value.map((p, i) => {\n p.periods.map((pp, pi) => {\n if (pp[1] === -1) projects.value[i].periods[pi][1] = finish;\n });\n });\n \n console.log(projects.value);\n //Timeline\n }).catch((e) => {\n console.log(e);\n })\n\n return {\n projects,\n years,\n isInFundingPeriod,\n filteredProjectYears\n };\n }\n});\n</script>\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import { render } from \"./NetworkView.vue?vue&type=template&id=38b5342b\"\nimport script from \"./NetworkView.vue?vue&type=script&lang=js\"\nexport * from \"./NetworkView.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","_createElementVNode","_createElementBlock","_hoisted_2","_hoisted_3","_Fragment","_renderList","_ctx","y","yKey","key","p","pKey","colspan","noDataOnEnding","_hoisted_6","_toDisplayString","title","none","selector","this","querySelector","select","groups","_groups","m","length","subgroups","Array","j","node","subnode","group","n","subgroup","i","call","__data__","Selection","_parents","array","x","isArray","from","empty","querySelectorAll","arrayAll","apply","arguments","selectorAll","parents","push","matches","childMatcher","find","prototype","childFind","match","children","childFirst","firstElementChild","filter","childrenFilter","selectAll","matcher","update","_enter","map","sparse","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","has","set","get","delete","value","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","previous","next","i0","i1","_exit","onenter","onupdate","onexit","selection","append","remove","merge","order","context","groups0","groups1","m0","m1","Math","min","merges","group0","group1","compareDocumentPosition","parentNode","insertBefore","compare","compareNode","a","b","ascending","sortgroups","sortgroup","sort","NaN","callback","size","constructor","appendChild","child","xhtml","svg","xlink","xml","xmlns","name","prefix","indexOf","slice","namespaces","hasOwnProperty","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","namespace","getAttributeNS","getAttribute","each","defaultView","document","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","parseTypenames","typenames","t","type","onRemove","typename","on","__on","o","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","join","splice","root","selection_selection","selection_select","selection_selectAll","selectChild","selection_selectChild","selectChildren","selection_selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_join","selection_merge","selection_order","selection_sort","selection_call","nodes","selection_nodes","selection_node","selection_size","selection_empty","selection_each","attr","selection_attr","selection_style","selection_property","classed","selection_classed","text","selection_text","html","selection_html","selection_raise","selection_lower","selection_append","insert","selection_insert","selection_remove","selection_clone","selection_datum","selection_on","dispatch","selection_dispatch","Symbol","iterator","selection_iterator","noop","_","test","Error","Dispatch","types","c","concat","T","copy","that","args","taskHead","taskTail","frame","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","timerFlush","e","undefined","wake","nap","poke","t0","t2","t1","Infinity","sleep","clearTimeout","clearInterval","setInterval","elapsed","stop","TypeError","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","id","index","timing","schedules","__transition","tween","duration","ease","state","init","schedule","self","start","tick","active","interrupt","svgNode","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","d","sqrt","atan2","atan","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","transform","baseVal","consolidate","matrix","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","translate","xa","ya","xb","yb","q","number","scale","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","transition","factory","extend","definition","Object","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatHex8","formatHex8","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","color","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatHex8","isNaN","rgb_formatRgb","clampa","clampi","max","round","toString","h","Hsl","hsl","clamph","clampt","hsl2rgb","m2","basis","v0","v1","v2","v3","t3","values","floor","define","channels","assign","displayable","k","pow","clamp","linear","exponential","gamma","nogamma","rgbGamma","end","colorRgb","rgbSpline","spline","colors","basisClosed","reA","reB","source","zero","one","am","bm","bs","bi","lastIndex","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","cubicInOut","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_ease","transition_easeVarying","transition_end","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","abs","number1","number2","Transform","point","applyX","applyY","invert","location","invertX","invertY","rescaleX","domain","range","rescaleY","__zoom","defineComponent","components","setup","tags","ref","years","useRoute","projects","getFullYear","finish","loadData","console","log","promise","axios","then","responseIndex","keys","uuid","path","responseProject","period","noEnding","project","date","begin","Number","to","periods","keywords","tag","includes","isInFundingPeriod","year","result","filteredProjectYears","newYearArr","yearsToDel","periodKey","pp","pi","catch","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/js/918.fad09cd2.js b/js/918.fad09cd2.js new file mode 100644 index 0000000000000000000000000000000000000000..c09a8d3d350882edf8470e891c38d9f2434f0e94 --- /dev/null +++ b/js/918.fad09cd2.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkgui"]=self["webpackChunkgui"]||[]).push([[918],{918:function(e,l,t){t.r(l),t.d(l,{default:function(){return gl}});var o=t(3396),s=t(7139),n=t(9242);const a={class:"w-full"},r={class:"box m-5 rounded-2xl p-5"},i=(0,o._)("h3",{class:"text-xl"},"Contribute (not yet working)",-1),c={class:"grid grid-cols-2 gap-y-1 gap-x-4 text-left"},p=(0,o._)("label",{class:"block col-span-2"},[(0,o._)("span",null,"Name of the Editor (Surname, Forename)"),(0,o._)("input",{type:"text",class:"mt-1 block w-full"})],-1),u={class:"block col-span-2"},w=(0,o._)("input",{type:"text",class:"mt-1 block w-full"},null,-1),d=(0,o._)("label",{class:"block"},[(0,o._)("span",null,"Abbreviation*"),(0,o._)("input",{type:"text",class:"mt-1 block w-full"})],-1),m={class:"block"},k=(0,o._)("span",null,"Type",-1),g=(0,o._)("option",{value:"project"},"Project",-1),h=(0,o._)("option",{value:"organisation"},"Organisation",-1),f=[g,h],v={class:"block col-span-2"},y=["onClick"],j=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),_=[j],b=["onClick"],x=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),C=[x],D=["onUpdate:modelValue"],U={class:"block col-span-2"},H=(0,o._)("span",null,"Funding periods",-1),z=["onClick"],V=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),M=[V],B=["onClick"],q=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),A=[q],R=["onUpdate:modelValue"],Y=(0,o._)("span",{class:"my-auto mx-2"},"to",-1),K=["onUpdate:modelValue"],E={class:"block col-span-2"},N=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),S=[N],L=["onClick"],O=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),P=[O],T=["onUpdate:modelValue"],F=(0,o._)("label",{class:"block col-span-2"},[(0,o._)("span",null,"Project Description"),(0,o._)("textarea",{class:"block w-full mt-1"})],-1),I={class:"block col-span-2"},W=(0,o._)("label",{class:"block"},"Name of the place",-1),G={class:"flex flex-row"},J=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),Z=[J],Q=["onClick"],X=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),$=[X],ee=["onUpdate:modelValue"],le=(0,o._)("label",{class:"block"},"Authority File URIs of the place",-1),te=["onClick"],oe=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),se=[oe],ne=["onClick"],ae=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),re=[ae],ie=["onUpdate:modelValue"],ce={class:"block col-span-2"},pe={class:"flex flex-row"},ue=["onClick"],we=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),de=[we],me=["onClick"],ke=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),ge=[ke],he=["onUpdate:modelValue"],fe=(0,o.uE)('<label class="block col-span-2"><span>Topics</span><div class="flex flex-row"><label class="mr-7"><input type="checkbox"><span class="ml-1">Digital Humanities</span></label><label class="mr-7"><input type="checkbox"><span class="ml-1">Non-Latin Script</span></label><label class="mr-7"><input type="checkbox"><span class="ml-1">Research Data Management</span></label><label class="mr-7"><input type="checkbox"><span class="ml-1">Infrastructure</span></label><label class="mr-7"><input type="checkbox"><span class="ml-1">Meta</span></label></div></label>',1),ve={class:"block col-span-2"},ye=(0,o._)("span",null,"Related projects or organisations",-1),je={class:"w-full"},_e=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),be=[_e],xe=["onClick"],Ce=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),De=[Ce],Ue={class:"border border-black rounded rounded-xl grid grid-cols-2 border-1 m-2 p-4 w-full gap-2"},He=(0,o._)("span",null,"Relation Type",-1),ze=["onUpdate:modelValue"],Ve=(0,o._)("option",{value:"parents"},"Parent",-1),Me=(0,o._)("option",{value:"siblings"},"Sibling",-1),Be=(0,o._)("option",{value:"children"},"Child",-1),qe=[Ve,Me,Be],Ae=(0,o._)("span",null,"Type",-1),Re=["onUpdate:modelValue"],Ye=(0,o._)("option",{value:"organisation"},"Organisation",-1),Ke=(0,o._)("option",{value:"project"},"Project",-1),Ee=[Ye,Ke],Ne={class:"col-span-2"},Se=["onUpdate:modelValue"],Le=(0,o._)("option",{value:"null"},"NEW ENTRY",-1),Oe=["value"],Pe={key:0,class:"col-span-2 grid grid-cols-2 gap-2"},Te={class:"block col-span-2"},Fe=["onUpdate:modelValue"],Ie={class:"block"},We=["onClick"],Ge=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),Je=[Ge],Ze=["onClick"],Qe=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),Xe=[Qe],$e=["onUpdate:modelValue"],el={class:"block"},ll=["onClick"],tl=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),ol=[tl],sl=["onClick"],nl=(0,o._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1),al=[nl],rl=["onUpdate:modelValue"],il=(0,o._)("div",{class:"block col-span-2 bubble p-3 rounded-2xl mt-2 button text-center"},"Generate JSON",-1);function cl(e,l,t,g,h,j){return(0,o.wg)(),(0,o.iD)("div",a,[(0,o._)("div",r,[i,(0,o._)("div",c,[p,(0,o._)("label",u,[(0,o._)("span",null,"Name of the "+(0,s.zw)(e.project.type.charAt(0).toUpperCase()+e.project.type.slice(1)),1),w]),d,(0,o._)("label",m,[k,(0,o.wy)((0,o._)("select",{class:"mt-1 block w-full","onUpdate:modelValue":l[0]||(l[0]=l=>e.project.type=l)},f,512),[[n.bM,e.project.type]])]),(0,o._)("label",v,[(0,o._)("span",null,"Authority File URIs of the "+(0,s.zw)(e.project.type.charAt(0).toUpperCase()+e.project.type.slice(1)),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.project.ref,((l,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row",key:t},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l=>e.project.ref.push(""),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},_,8,y)),e.project.ref.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.ref.splice(t,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},C,8,b)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-full","onUpdate:modelValue":l=>e.project.ref[t]=l},null,8,D),[[n.nr,e.project.ref[t]]])])))),128))]),(0,o._)("label",U,[H,((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.project.date,((l,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row",key:t},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l=>e.project.date.push({from:"",to:""}),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},M,8,z)),e.project.date.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.date.splice(t,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},A,8,B)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left","onUpdate:modelValue":l=>e.project.date[t].from=l},null,8,R),[[n.nr,e.project.date[t].from]]),Y,(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 right","onUpdate:modelValue":l=>e.project.date[t].to=l},null,8,K),[[n.nr,e.project.date[t].to]])])))),128))]),(0,o._)("label",E,[(0,o._)("span",null,"Websites of the "+(0,s.zw)(e.project.type.charAt(0).toUpperCase()+e.project.type.slice(1)),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.project.websites,((t,s)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row",key:s},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l[1]||(l[1]=l=>e.project.websites.push("")),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},S)),e.project.websites.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.websites.splice(s,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},P,8,L)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-full","onUpdate:modelValue":l=>e.project.websites[s]=l},null,8,T),[[n.nr,e.project.websites[s]]])])))),128))]),F,(0,o._)("label",I,[(0,o._)("span",null,"Locations of the "+(0,s.zw)(e.project.type.charAt(0).toUpperCase()+e.project.type.slice(1)),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.project.places,((t,s)=>((0,o.wg)(),(0,o.iD)("div",{class:"grid grid-cols-2",key:s},[(0,o._)("div",null,[W,(0,o._)("div",G,[((0,o.wg)(),(0,o.iD)("svg",{onClick:l[2]||(l[2]=l=>e.project.places.push({place_name:{text:"",ref:[""]},coordinates:{lat:"",lng:""}})),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},Z)),e.project.places.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.places.splice(s,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},$,8,Q)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-full","onUpdate:modelValue":l=>e.project.places[s].place_name.text=l},null,8,ee),[[n.nr,e.project.places[s].place_name.text]])])]),(0,o._)("div",null,[le,((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.project.places[s].place_name.ref,((l,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row ml-1",key:t},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l=>e.project.places[s].place_name.ref.push(""),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},se,8,te)),e.project.places[s].place_name.ref.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.places[s].place_name.ref.splice(s,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},re,8,ne)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-full","onUpdate:modelValue":l=>e.project.places[s].place_name.ref[t]=l},null,8,ie),[[n.nr,e.project.places[s].place_name.ref[t]]])])))),128))])])))),128))]),(0,o._)("label",ce,[(0,o._)("span",null,"Languages used in the interfaces and publications of the "+(0,s.zw)(e.project.type.charAt(0).toUpperCase()+e.project.type.slice(1))+" (ISO-639-2)",1),(0,o._)("div",pe,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.project.lang,((l,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row mr-7",key:t},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l=>e.project.lang.push(""),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},de,8,ue)),e.project.lang.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.lang.splice(t,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},ge,8,me)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-20","onUpdate:modelValue":l=>e.project.lang[t]=l},null,8,he),[[n.nr,e.project.lang[t]]])])))),128))])]),fe,(0,o._)("label",ve,[ye,(0,o._)("div",je,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.project.relations,((t,a)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row mr-7 w-full",key:a},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l[3]||(l[3]=(...l)=>e.addRelation&&e.addRelation(...l)),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},be)),e.project.relations.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.relations.splice(a,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},De,8,xe)):(0,o.kq)("",!0),(0,o._)("div",Ue,[(0,o._)("label",null,[He,(0,o.wy)((0,o._)("select",{class:"mt-1 block w-full","onUpdate:modelValue":l=>e.project.relations[a].group=l},qe,8,ze),[[n.bM,e.project.relations[a].group]])]),(0,o._)("label",null,[Ae,(0,o.wy)((0,o._)("select",{class:"mt-1 block w-full","onUpdate:modelValue":l=>e.project.relations[a].type=l},Ee,8,Re),[[n.bM,e.project.relations[a].type]])]),(0,o._)("label",Ne,[(0,o._)("span",null,"Choose existing "+(0,s.zw)(t.type)+" or add new entry",1),(0,o.wy)((0,o._)("select",{class:"mt-1 block w-full","onUpdate:modelValue":l=>e.project.relations[a].existingEntry=l},[Le,((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.projectList,((e,l)=>((0,o.wg)(),(0,o.iD)("option",{key:l,value:e.uuid},(0,s.zw)(e.title),9,Oe)))),128))],8,Se),[[n.bM,e.project.relations[a].existingEntry]])]),"null"===e.project.relations[a].existingEntry?((0,o.wg)(),(0,o.iD)("div",Pe,[(0,o._)("label",Te,[(0,o._)("span",null,"Name of the "+(0,s.zw)(t.type),1),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-full","onUpdate:modelValue":l=>e.project.relations[a].title=l},null,8,Fe),[[n.nr,e.project.relations[a].title]])]),(0,o._)("label",Ie,[(0,o._)("span",null,"Authority File URIs of the "+(0,s.zw)(t.type.charAt(0).toUpperCase()+t.type.slice(1)),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.refs,((l,s)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row",key:s},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l=>e.project.relations[a].refs.push(""),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},Je,8,We)),t.refs.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.relations[a].refs.splice(s,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},Xe,8,Ze)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-full","onUpdate:modelValue":l=>e.project.relations[a].refs[s]=l},null,8,$e),[[n.nr,e.project.relations[a].refs[s]]])])))),128))]),(0,o._)("label",el,[(0,o._)("span",null,"Websites of the "+(0,s.zw)(t.type.charAt(0).toUpperCase()+t.type.slice(1)),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.websites,((l,s)=>((0,o.wg)(),(0,o.iD)("div",{class:"flex flex-row",key:s},[((0,o.wg)(),(0,o.iD)("svg",{onClick:l=>e.project.relations[a].websites.push(""),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},ol,8,ll)),t.websites.length>1?((0,o.wg)(),(0,o.iD)("svg",{key:0,onClick:l=>e.project.relations[a].websites.splice(s,1),xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-1 my-auto",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},al,8,sl)):(0,o.kq)("",!0),(0,o.wy)((0,o._)("input",{type:"text",class:"mt-1 left w-full","onUpdate:modelValue":l=>e.project.relations[a].websites[s]=l},null,8,rl),[[n.nr,e.project.relations[a].websites[s]]])])))),128))])])):(0,o.kq)("",!0)])])))),128))])]),il])])])}var pl=t(4870),ul=t(6265),wl=t.n(ul),dl=(0,o.aZ)({components:{},setup(){const e=(0,pl.iH)([]),l=[{group:"parents",type:"project",existingEntry:"null",title:"",refs:[""],websites:[""],places:[{place_name:{text:"",ref:[""]}}],relations:[]}],t=(0,pl.qj)({type:"project",ref:[""],date:[{from:"",to:""}],websites:[""],places:[{place_name:{text:"",ref:[""]},coordinates:{lat:"",lng:""}}],relations:[...l],lang:[""]}),o=()=>{t.relations.push(...l),t.relations[t.relations.length-1].relations=[...l]};return wl().get("https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master/PROJECTS.json").then((l=>{Object.keys(l.data).map((t=>{e.value.push({uuid:t,title:l.data[t].title})}))})),{project:t,projectList:e,addRelation:o}}}),ml=t(89);const kl=(0,ml.Z)(dl,[["render",cl]]);var gl=kl}}]); +//# sourceMappingURL=918.fad09cd2.js.map \ No newline at end of file diff --git a/js/918.fad09cd2.js.map b/js/918.fad09cd2.js.map new file mode 100644 index 0000000000000000000000000000000000000000..0e039e15dfc97e6cc9a8b1280f869084bfeeac52 --- /dev/null +++ b/js/918.fad09cd2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/918.fad09cd2.js","mappings":"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","sources":["webpack://gui/./src/views/FormView.vue","webpack://gui/./src/views/FormView.vue?720a"],"sourcesContent":["<template>\n <div class=\"w-full\">\n <div class=\"box m-5 rounded-2xl p-5\">\n <h3 class=\"text-xl\">Contribute (not yet working)</h3>\n <div class=\"grid grid-cols-2 gap-y-1 gap-x-4 text-left\">\n <label class=\"block col-span-2\">\n <span>Name of the Editor (Surname, Forename)</span>\n <input type=\"text\" class=\"mt-1 block w-full\" />\n </label>\n <label class=\"block col-span-2\">\n <span>Name of the {{ project.type.charAt(0).toUpperCase() + project.type.slice(1) }}</span>\n <input type=\"text\" class=\"mt-1 block w-full\" />\n </label>\n <label class=\"block\">\n <span>Abbreviation*</span>\n <input type=\"text\" class=\"mt-1 block w-full\" />\n </label>\n <label class=\"block\">\n <span>Type</span>\n <select class=\"mt-1 block w-full\" v-model=\"project.type\">\n <option value=\"project\">Project</option>\n <option value=\"organisation\">Organisation</option>\n </select>\n </label>\n <!-- Refs -->\n <label\n class=\"block col-span-2\"\n >\n <span>Authority File URIs of the {{ project.type.charAt(0).toUpperCase() + project.type.slice(1) }}</span>\n <div\n class=\"flex flex-row\"\n v-for=\"(ref, refKey) in project.ref\"\n :key=\"refKey\"\n >\n <svg\n @click=\"project.ref.push('')\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"project.ref.length > 1\"\n @click=\"project.ref.splice(refKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left w-full\"\n v-model=\"project.ref[refKey]\"\n />\n </div>\n </label>\n <!-- Funding periods -->\n <label\n class=\"block col-span-2\"\n >\n <span>Funding periods</span>\n <div\n class=\"flex flex-row\"\n v-for=\"(date, dateKey) in project.date\"\n :key=\"dateKey\"\n >\n <svg\n @click=\"project.date.push({ from: '', to: '' })\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"project.date.length > 1\"\n @click=\"project.date.splice(dateKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left\"\n v-model=\"project.date[dateKey].from\"\n />\n <span class=\"my-auto mx-2\">to</span>\n <input\n type=\"text\"\n class=\"mt-1 right\"\n v-model=\"project.date[dateKey].to\"\n />\n </div>\n </label>\n <!-- Websites -->\n <label\n class=\"block col-span-2\"\n >\n <span>Websites of the {{ project.type.charAt(0).toUpperCase() + project.type.slice(1) }}</span>\n <div\n class=\"flex flex-row\"\n v-for=\"(website, websiteKey) in project.websites\"\n :key=\"websiteKey\"\n >\n <svg\n @click=\"project.websites.push('')\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"project.websites.length > 1\"\n @click=\"project.websites.splice(websiteKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left w-full\"\n v-model=\"project.websites[websiteKey]\"\n />\n </div>\n </label>\n <!-- description -->\n <label class=\"block col-span-2\">\n <span>Project Description</span>\n <textarea class=\"block w-full mt-1\"></textarea>\n </label>\n <!-- Places -->\n <label\n class=\"block col-span-2\"\n >\n <span>Locations of the {{ project.type.charAt(0).toUpperCase() + project.type.slice(1) }}</span>\n <div\n class=\"grid grid-cols-2\"\n v-for=\"(place, placeKey) in project.places\"\n :key=\"placeKey\"\n >\n <div>\n <label class=\"block\">Name of the place</label>\n <div \n class=\"flex flex-row\"\n >\n <svg\n @click=\"project.places.push({\n place_name: {\n text: '',\n ref: [''],\n },\n coordinates: {\n lat: '',\n lng: '',\n },\n })\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"project.places.length > 1\"\n @click=\"project.places.splice(placeKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left w-full\"\n v-model=\"project.places[placeKey].place_name.text\"\n />\n </div>\n </div>\n <div>\n <label class=\"block\">Authority File URIs of the place</label>\n <div\n v-for=\"(ref, refKey) in project.places[placeKey].place_name.ref\"\n class=\"flex flex-row ml-1\"\n :key=\"refKey\"\n >\n <svg\n @click=\"project.places[placeKey].place_name.ref.push('')\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"project.places[placeKey].place_name.ref.length > 1\"\n @click=\"project.places[placeKey].place_name.ref.splice(placeKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left w-full\"\n v-model=\"project.places[placeKey].place_name.ref[refKey]\"\n />\n </div>\n </div>\n </div>\n </label>\n <!-- Languages -->\n <label\n class=\"block col-span-2\"\n >\n <span>Languages used in the interfaces and publications of the {{ project.type.charAt(0).toUpperCase() + project.type.slice(1) }} (ISO-639-2)</span>\n <div \n class=\"flex flex-row\"\n >\n <div\n class=\"flex flex-row mr-7\"\n v-for=\"(lang, langKey) in project.lang\"\n :key=\"langKey\"\n >\n <svg\n @click=\"project.lang.push('')\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"project.lang.length > 1\"\n @click=\"project.lang.splice(langKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left w-20\"\n v-model=\"project.lang[langKey]\"\n />\n </div>\n </div>\n </label>\n <!-- Topic Relations -->\n <label class=\"block col-span-2\">\n <span>Topics</span>\n <div class=\"flex flex-row\">\n <label class=\"mr-7\">\n <input type=\"checkbox\" />\n <span class=\"ml-1\">Digital Humanities</span>\n </label>\n <label class=\"mr-7\">\n <input type=\"checkbox\" />\n <span class=\"ml-1\">Non-Latin Script</span>\n </label>\n <label class=\"mr-7\">\n <input type=\"checkbox\" />\n <span class=\"ml-1\">Research Data Management</span>\n </label>\n <label class=\"mr-7\">\n <input type=\"checkbox\" />\n <span class=\"ml-1\">Infrastructure</span>\n </label>\n <label class=\"mr-7\">\n <input type=\"checkbox\" />\n <span class=\"ml-1\">Meta</span>\n </label>\n </div>\n </label>\n <!-- Parents -->\n <label\n class=\"block col-span-2\"\n >\n <span>Related projects or organisations</span>\n <div \n class=\"w-full\"\n >\n <div\n class=\"flex flex-row mr-7 w-full\"\n v-for=\"(rel, relKey) in project.relations\"\n :key=\"relKey\"\n >\n <svg\n @click=\"addRelation\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"project.relations.length > 1\"\n @click=\"project.relations.splice(relKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <div class=\"border border-black rounded rounded-xl grid grid-cols-2 border-1 m-2 p-4 w-full gap-2\">\n <label>\n <span>Relation Type</span>\n <select class=\"mt-1 block w-full\"\n v-model=\"project.relations[relKey].group\"\n >\n <option value=\"parents\">Parent</option>\n <option value=\"siblings\">Sibling</option>\n <option value=\"children\">Child</option>\n </select>\n </label>\n <label>\n <span>Type</span>\n <select class=\"mt-1 block w-full\" v-model=\"project.relations[relKey].type\">\n <option value=\"organisation\">Organisation</option>\n <option value=\"project\">Project</option>\n </select>\n </label>\n <label class=\"col-span-2\">\n <span>Choose existing {{ rel.type }} or add new entry</span>\n <select class=\"mt-1 block w-full\" v-model=\"project.relations[relKey].existingEntry\">\n <option value=\"null\">NEW ENTRY</option>\n <option\n v-for=\"(p, pKey) in projectList\"\n :key=\"pKey\"\n :value=\"p.uuid\"\n >{{ p.title }}</option>\n </select>\n </label>\n <div class=\"col-span-2 grid grid-cols-2 gap-2\" v-if=\"project.relations[relKey].existingEntry === 'null'\">\n <label class=\"block col-span-2\">\n <span>Name of the {{ rel.type }}</span>\n <input\n type=\"text\"\n class=\"mt-1 left w-full\"\n v-model=\"project.relations[relKey].title\"\n />\n </label>\n <!-- Refs -->\n <label\n class=\"block\"\n >\n <span>Authority File URIs of the {{ rel.type.charAt(0).toUpperCase() + rel.type.slice(1) }}</span>\n <div\n class=\"flex flex-row\"\n v-for=\"(relRef, relRefKey) in rel.refs\"\n :key=\"relRefKey\"\n >\n <svg\n @click=\"project.relations[relKey].refs.push('')\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"rel.refs.length > 1\"\n @click=\"project.relations[relKey].refs.splice(relRefKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left w-full\"\n v-model=\"project.relations[relKey].refs[relRefKey]\"\n />\n </div>\n </label>\n <!-- Websites -->\n <label\n class=\"block\"\n >\n <span>Websites of the {{ rel.type.charAt(0).toUpperCase() + rel.type.slice(1) }}</span>\n <div\n class=\"flex flex-row\"\n v-for=\"(relWebsite, relWebsiteKey) in rel.websites\"\n :key=\"relWebsiteKey\"\n >\n <svg\n @click=\"project.relations[relKey].websites.push('')\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <svg\n v-if=\"rel.websites.length > 1\"\n @click=\"project.relations[relKey].websites.splice(relWebsiteKey, 1)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"h-6 w-6 mr-1 my-auto\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <input\n type=\"text\"\n class=\"mt-1 left w-full\"\n v-model=\"project.relations[relKey].websites[relWebsiteKey]\"\n />\n </div>\n </label>\n </div>\n </div>\n </div>\n </div>\n </label>\n <div class=\"block col-span-2 bubble p-3 rounded-2xl mt-2 button text-center\">Generate JSON</div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport {\n defineComponent,\n reactive,\n ref\n} from 'vue';\nimport axios from 'axios';\n\nexport default defineComponent({\n components: {\n// tagList,\n },\n setup() {\n const projectList = ref([]);\n const relationsTemplate = [\n {\n group: 'parents',\n type: 'project',\n existingEntry: 'null',\n title: '',\n refs: [''],\n websites: [''],\n places: [\n {\n place_name: {\n text: '',\n ref: [''],\n },\n }\n ],\n relations: [],\n }\n ];\n const project = reactive({\n type: 'project',\n ref: [''],\n date: [{\n from: '',\n to: ''\n }],\n websites: [''],\n places: [{\n place_name: {\n text: '',\n ref: [''],\n },\n coordinates: {\n lat: '',\n lng: '',\n },\n }],\n relations: [...relationsTemplate],\n lang: [''],\n });\n\n const addRelation = () => {\n project.relations.push(...relationsTemplate);\n project.relations[project.relations.length - 1].relations = [...relationsTemplate];\n };\n\n axios.get('https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master/PROJECTS.json')\n .then((responseIndex) => {\n Object.keys(responseIndex.data).map((key) => {\n projectList.value.push({\n uuid: key,\n title: responseIndex.data[key].title,\n });\n });\n }); \n return {\n project,\n projectList,\n addRelation\n };\n }\n});\n</script>\n","import { render } from \"./FormView.vue?vue&type=template&id=da2ce01c\"\nimport script from \"./FormView.vue?vue&type=script&lang=js\"\nexport * from \"./FormView.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","_createElementVNode","type","value","_hoisted_11","_hoisted_12","d","_hoisted_16","_hoisted_19","_hoisted_25","_hoisted_28","_hoisted_34","_hoisted_37","_hoisted_44","_hoisted_47","_hoisted_52","_hoisted_55","_hoisted_61","_hoisted_64","_hoisted_71","_hoisted_74","_hoisted_79","_hoisted_80","_hoisted_81","_hoisted_85","_hoisted_86","_hoisted_97","_hoisted_100","_hoisted_105","_hoisted_108","_createElementBlock","_hoisted_3","_hoisted_5","_toDisplayString","_ctx","charAt","toUpperCase","slice","_hoisted_7","_hoisted_8","_hoisted_10","$event","_Fragment","_renderList","ref","refKey","key","onClick","push","xmlns","fill","viewBox","stroke","length","splice","_hoisted_23","date","dateKey","from","to","_hoisted_31","websites","website","websiteKey","_hoisted_40","places","place","placeKey","_hoisted_42","place_name","text","_hoisted_50","lang","langKey","_hoisted_67","_hoisted_69","relations","rel","relKey","_hoisted_77","group","_hoisted_83","existingEntry","_hoisted_90","p","pKey","uuid","title","_hoisted_91","refs","relRef","relRefKey","relWebsite","relWebsiteKey","_hoisted_111","defineComponent","components","setup","projectList","relationsTemplate","project","reactive","coordinates","lat","lng","addRelation","axios","then","responseIndex","Object","keys","data","map","__exports__","render"],"sourceRoot":""} \ No newline at end of file diff --git a/js/921.6134f38b.js b/js/921.6134f38b.js new file mode 100644 index 0000000000000000000000000000000000000000..52f4406c33f47d842a988c51f5d6bfc5d8e4e0d4 --- /dev/null +++ b/js/921.6134f38b.js @@ -0,0 +1,2 @@ +"use strict";(self["webpackChunkgui"]=self["webpackChunkgui"]||[]).push([[921],{6921:function(e,t,l){l.r(t),l.d(t,{default:function(){return Pe}});var a=l(3396),r=l(7139);const o={class:"flex flex-wrap m-5"},s={class:"sticky top-0 stickybox rounded-xl w-full py-2"},n={class:"w-full"},i={class:"w-full text-xl m-2 elementcount"};function c(e,t,l,c,p,d){const u=(0,a.up)("cat-list"),g=(0,a.up)("tag-list"),w=(0,a.up)("project-item");return(0,a.wg)(),(0,a.iD)("div",o,[(0,a._)("div",s,[(0,a._)("div",n,[(0,a.Wm)(u),(0,a.Wm)(g,{taglist:e.tags},null,8,["taglist"])])]),(0,a._)("div",i,(0,r.zw)(e.projectList.length)+" Elements",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.projectList,(e=>((0,a.wg)(),(0,a.j4)(w,{key:e._id,project:e.project,id:e._id,source:e.source,metadata:e.metadata},null,8,["project","id","source","metadata"])))),128))])}var p=l(4870),d=l(678),u=l(6265),g=l.n(u);const w={class:"md:basis-1/2 lg:basis-1/3"},m={class:"box relative rounded-2xl m-4"},k={class:"content inline-block h-auto relative p-4 pb-7 flex flex-wrap md:flex-row"},h={class:"left w-auto"},f={class:"text-left flex flex-wrap p-3 py-0"},v=(0,a._)("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 float-left mr-1",viewBox:"0 0 20 20",fill:"currentColor"},[(0,a._)("path",{"fill-rule":"evenodd",d:"M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z","clip-rule":"evenodd"})],-1),b=["href"],x={key:0},j={class:"mb-3"},_={key:0,xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1"},y=(0,a._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1),D=[y],C={key:1},L={key:2,xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 m-auto mx-1",viewBox:"0 0 20 20",fill:"currentColor"},H=(0,a._)("path",{"fill-rule":"evenodd",d:"M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1),z=[H],M={key:3},q={class:"flex flex-row ml-3 mb-5 font-light"},B=(0,a._)("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-6 w-6 mr-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"1"},[(0,a._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"})],-1),S={class:"text-left w-full p-3 py-0 leading-relaxed antialiased"},Z={class:"tagrow flex flex-wrap p-3 pb-10 mt-5"},Y={class:"footer absolute bottom-0 inset-x-0 rounded-b-2xl h-8 pl-7 flex flex-row"},A={key:0,class:"text-sm bright-text mt-1 absolute right-5"};function K(e,t,l,o,s,n){const i=(0,a.up)("simple-badge"),c=(0,a.up)("tag-bubble"),p=(0,a.up)("link-bubble");return(0,a.wg)(),(0,a.iD)("div",w,[(0,a._)("div",m,[(0,a._)("div",k,[(0,a._)("div",h,[(0,a._)("div",f,[v,((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.project.places,((t,l)=>((0,a.wg)(),(0,a.iD)("div",{key:l},[(0,a._)("a",{href:t.place_name.ref[0],target:"_blank"},(0,r.zw)(t.place_name.text),9,b),l<e.project.places.length-1?((0,a.wg)(),(0,a.iD)("span",x,", ")):(0,a.kq)("",!0)])))),128))]),(0,a._)("div",{onClick:t[0]||(t[0]=t=>e.extend=!e.extend),class:"text-3xl text-left p-3 py-5 text-comfortaa leading-normal antialiased"},(0,r.zw)(e.project.title),1),(0,a._)("ul",j,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.project.date,((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:t,class:"text-left m-3 my-0 flex flex-row font-light"},[e.from||e.to?((0,a.wg)(),(0,a.iD)("svg",_,D)):(0,a.kq)("",!0),e.from?((0,a.wg)(),(0,a.iD)("span",C,(0,r.zw)(new Date(e.from).getFullYear()),1)):(0,a.kq)("",!0),e.from||e.to?((0,a.wg)(),(0,a.iD)("svg",L,z)):(0,a.kq)("",!0),e.to?((0,a.wg)(),(0,a.iD)("span",M,(0,r.zw)(new Date(e.to).getFullYear()),1)):(0,a.kq)("",!0)])))),128))]),(0,a._)("div",q,[B,((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.project.lang,((e,t)=>((0,a.wg)(),(0,a.iD)("span",{key:t,class:"mr-2"},(0,r.zw)(e),1)))),128))]),(0,a._)("div",S,(0,r.zw)(e.project.project_desc),1),(0,a._)("div",Z,[e.project.topic_relations.nls?((0,a.wg)(),(0,a.j4)(i,{key:0,label:"Non-Latin Script"})):(0,a.kq)("",!0),e.project.topic_relations.dh?((0,a.wg)(),(0,a.j4)(i,{key:1,label:"Digital Humanities"})):(0,a.kq)("",!0),e.project.topic_relations.rdm?((0,a.wg)(),(0,a.j4)(i,{key:2,label:"Research Data Management"})):(0,a.kq)("",!0),e.project.topic_relations.meta?((0,a.wg)(),(0,a.j4)(i,{key:3,label:"Meta"})):(0,a.kq)("",!0),e.project.topic_relations.infrastructure?((0,a.wg)(),(0,a.j4)(i,{key:4,label:"Infrastructure"})):(0,a.kq)("",!0),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.project.keywords,((e,t)=>((0,a.wg)(),(0,a.j4)(c,{key:t,label:e,link:e,target:"tag",small:!0},null,8,["label","link"])))),128))])])]),(0,a._)("div",Y,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.project.websites,((e,t)=>((0,a.wg)(),(0,a.j4)(p,{key:t,href:e,type:"link"},null,8,["href"])))),128)),(0,a.Wm)(p,{href:e.source,type:"git"},null,8,["href"]),e.metadata.record_modified[e.metadata.record_modified.length-1].record_modified_on?((0,a.wg)(),(0,a.iD)("div",A,"Last edit: "+(0,r.zw)(e.metadata.record_modified[e.metadata.record_modified.length-1].record_modified_on),1)):(0,a.kq)("",!0)])])])}const T={key:0},P=(0,a._)("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z","clip-rule":"evenodd"},null,-1),N=[P];function V(e,t,l,o,s,n){const i=(0,a.up)("router-link");return e.link?((0,a.wg)(),(0,a.j4)(i,{key:0,class:(0,r.C_)(["bubble rounded-full pr-4 pl-4 ml-0 mr-2 my-1",e.route.params[e.target]===e.link?"bg-darkblue pr-0 flex flex-row":""]),to:e.targetArr},{default:(0,a.w5)((()=>["tag"===e.target?((0,a.wg)(),(0,a.iD)("span",T,"#")):(0,a.kq)("",!0),(0,a.Uk)((0,r.zw)(e.label)+" ",1),e.route.params[e.target]===e.link?((0,a.wg)(),(0,a.iD)("svg",{key:1,xmlns:"http://www.w3.org/2000/svg",class:(0,r.C_)(["ml-1 m-auto h-5 w-5",e.small?"mr-0":"mr-1"]),viewBox:"0 0 20 20",fill:"currentColor"},N,2)):(0,a.kq)("",!0)])),_:1},8,["class","to"])):(0,a.kq)("",!0)}var $=(0,a.aZ)({components:{},props:{label:String,link:String,small:Boolean,target:String},setup(e){const t=(new Date).getTime(),l=(0,a.f3)("rtlCharset").test(e.label),r=(0,d.yj)(),o=(0,a.Fl)((()=>{switch(e.target){case"tag":return{name:"projectsFiltered",params:{tag:r.params.tag===e.link?"":e.link}};case"cat":return{name:"projectCategories",params:{cat:r.params.cat===e.link?"":e.link}};default:return{}}}));return{isArabic:l,now:t,route:r,targetArr:o}}}),F=l(89);const G=(0,F.Z)($,[["render",V]]);var O=G;const I={class:"icon rounded-full w-8 h-8 border-2 mr-1"},R=["href"],U={key:0,xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 icon-text m-auto mt-1",viewBox:"0 0 20 20",fill:"currentColor"},W=(0,a._)("path",{d:"M11 3a1 1 0 100 2h2.586l-6.293 6.293a1 1 0 101.414 1.414L15 6.414V9a1 1 0 102 0V4a1 1 0 00-1-1h-5z"},null,-1),E=(0,a._)("path",{d:"M5 5a2 2 0 00-2 2v8a2 2 0 002 2h8a2 2 0 002-2v-3a1 1 0 10-2 0v3H5V7h3a1 1 0 000-2H5z"},null,-1),J=[W,E],Q={key:1,xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 icon-text m-auto mt-1",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},X=(0,a._)("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"},null,-1),ee=[X];function te(e,t,l,r,o,s){return(0,a.wg)(),(0,a.iD)("div",I,[(0,a._)("a",{href:e.href,target:"_blank"},["link"===e.type?((0,a.wg)(),(0,a.iD)("svg",U,J)):(0,a.kq)("",!0),"git"===e.type?((0,a.wg)(),(0,a.iD)("svg",Q,ee)):(0,a.kq)("",!0)],8,R)])}var le=(0,a.aZ)({components:{},props:{href:String,type:String},setup(e){const t=(new Date).getTime(),l=(0,a.f3)("rtlCharset").test(e.label);return{isArabic:l,now:t}}});const ae=(0,F.Z)(le,[["render",te]]);var re=ae;const oe={class:"bubble bg-brightblue rounded-full px-4 ml-0 mr-2 my-1"};function se(e,t,l,o,s,n){return(0,a.wg)(),(0,a.iD)("div",oe,(0,r.zw)(e.label),1)}var ne=(0,a.aZ)({components:{},props:{label:String,link:String},setup(e){const t=(new Date).getTime(),l=(0,a.f3)("rtlCharset").test(e.label);return{isArabic:l,now:t}}});const ie=(0,F.Z)(ne,[["render",se]]);var ce=ie,pe=(0,a.aZ)({components:{TagBubble:O,LinkBubble:re,SimpleBadge:ce},props:{project:Object,id:String,source:String,metadata:Object},setup(e){const t=(0,p.iH)();t.value=!1;const l=(new Date).getTime(),r=(0,a.f3)("rtlCharset").test(e.label);return(0,a.YP)(t,(e=>{console.log(e)})),{isArabic:r,now:l,extend:t}}});const de=(0,F.Z)(pe,[["render",K]]);var ue=de;const ge={class:"w-auto mx-4"},we={key:0,xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 float-right ml-2",viewBox:"-2 -2 18 18",fill:"currentColor"},me=(0,a._)("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1),ke=[me],he={key:1,xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 float-right ml-2",viewBox:"-2 -2 18 18",stroke:"currentColor"},fe=(0,a._)("path",{"fill-rule":"evenodd",d:"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z","clip-rule":"evenodd"},null,-1),ve=[fe],be={key:0,class:"tag-container flex flex-wrap text-sm rounded-b-xl p-3 mt-0"};function xe(e,t,l,o,s,n){const i=(0,a.up)("tag-bubble");return(0,a.wg)(),(0,a.iD)("div",ge,[(0,a._)("div",{class:(0,r.C_)(["tag-container rounded-t-xl pointer px-5 py-2 mb-0",e.collapsed?"rounded-b-xl":""]),onClick:t[0]||(t[0]=t=>e.collapsed=!e.collapsed)},[(0,a.Uk)((0,r.zw)(e.collapse_btn)+" ",1),e.collapsed?((0,a.wg)(),(0,a.iD)("svg",we,ke)):(0,a.kq)("",!0),e.collapsed?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("svg",he,ve))],2),e.collapsed?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",be,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.taglist,((e,t)=>((0,a.wg)(),(0,a.j4)(i,{key:t,label:e,link:e,target:"tag",small:!0},null,8,["label","link"])))),128))]))])}var je=(0,a.aZ)({components:{TagBubble:O},props:{taglist:Array},setup(){const e=(0,p.iH)("List of Keywords"),t=(0,d.yj)();let l=(0,p.iH)(!t.params.tag||""==t.params.tag);return{collapse_btn:e,collapsed:l}}});const _e=(0,F.Z)(je,[["render",xe]]);var ye=_e;const De={class:"w-auto mx-4 mb-2"},Ce={key:0,xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 float-right ml-2",viewBox:"-2 -2 18 18",fill:"currentColor"},Le=(0,a._)("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1),He=[Le],ze={key:1,xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5 float-right ml-2",viewBox:"-2 -2 18 18",stroke:"currentColor"},Me=(0,a._)("path",{"fill-rule":"evenodd",d:"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z","clip-rule":"evenodd"},null,-1),qe=[Me],Be={key:0,class:"tag-container flex flex-wrap text-sm rounded-b-xl p-3 mt-0"};function Se(e,t,l,o,s,n){const i=(0,a.up)("tag-bubble");return(0,a.wg)(),(0,a.iD)("div",De,[(0,a._)("div",{class:(0,r.C_)(["tag-container rounded-t-xl pointer px-5 py-2 mb-0",e.collapsed?"rounded-b-xl":""]),onClick:t[0]||(t[0]=t=>e.collapsed=!e.collapsed)},[(0,a.Uk)((0,r.zw)(e.collapse_btn)+" ",1),e.collapsed?((0,a.wg)(),(0,a.iD)("svg",Ce,He)):(0,a.kq)("",!0),e.collapsed?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("svg",ze,qe))],2),e.collapsed?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",Be,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.categories,((e,t)=>((0,a.wg)(),(0,a.j4)(i,{key:t,label:e.label,link:e.link,target:"cat",small:!0},null,8,["label","link"])))),128))]))])}var Ze=(0,a.aZ)({components:{TagBubble:O},props:{taglist:Array},setup(){const e=(0,p.iH)("Categories"),t=(0,d.yj)();let l=(0,p.iH)(!t.params.cat||""==t.params.cat);const a=(0,p.iH)([{label:"Digital Humanities",link:"dh"},{label:"Non-Latin Script",link:"nls"},{label:"Research Data Management",link:"rdm"},{label:"Infrastructure",link:"infrastructure"},{label:"Meta",link:"meta"}]);return{collapse_btn:e,collapsed:l,categories:a}}});const Ye=(0,F.Z)(Ze,[["render",Se]]);var Ae=Ye,Ke=(0,a.aZ)({components:{projectItem:ue,tagList:ye,catList:Ae},setup(){const e=(0,p.iH)([]),t=(0,p.iH)([]),l=(0,d.yj)(),r=()=>{t.value=[],e.value=[]},o=()=>{g().get("https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master/PROJECTS.json").then((a=>{Object.keys(a.data).map((r=>(g().get(`https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master${a.data[r].path}${r}.json`).then((o=>(l.params.tag&&o.data.project.keywords.includes(l.params.tag)||l.params.cat&&o.data.project.topic_relations[l.params.cat]?(e.value.push({_id:r,metadata:o.data.record_metadata,project:o.data.project,source:`https://github.com/Closing-the-Gap-in-NLS-DH/Projects/blob/master${a.data[r].path}${r}.json`}),o.data.project.keywords.map((e=>{t.value.includes(e)||t.value.push(e)})),e.value.sort(((e,t)=>e.project.title.toLowerCase()>t.project.title.toLowerCase()?1:e.project.title.toLowerCase()<t.project.title.toLowerCase()?-1:0))):l.params.tag||l.params.cat||(e.value.push({_id:r,metadata:o.data.record_metadata,project:o.data.project,source:`https://github.com/Closing-the-Gap-in-NLS-DH/Projects/blob/master${a.data[r].path}${r}.json`}),o.data.project.keywords.map((e=>{t.value.includes(e)||t.value.push(e)})),e.value.sort(((e,t)=>e.project.title.toLowerCase()>t.project.title.toLowerCase()?1:e.project.title.toLowerCase()<t.project.title.toLowerCase()?-1:0))),null))),null)))})).then((()=>{console.log("finished"),console.log(t.value)}))};return(0,a.m0)((()=>{o()})),(0,a.YP)(l,(e=>{e.hash||(r(),o())})),{projectList:e,tags:t}}});const Te=(0,F.Z)(Ke,[["render",c]]);var Pe=Te}}]); +//# sourceMappingURL=921.6134f38b.js.map \ No newline at end of file diff --git a/js/921.6134f38b.js.map b/js/921.6134f38b.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9688e2ab566dc50ecdb38f2513b6159eaeae8994 --- /dev/null +++ b/js/921.6134f38b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/921.6134f38b.js","mappings":"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","sources":["webpack://gui/./src/views/ProjectList.vue","webpack://gui/./src/components/ProjectItems.vue","webpack://gui/./src/components/TagBubble.vue","webpack://gui/./src/components/TagBubble.vue?2130","webpack://gui/./src/components/LinkBubble.vue","webpack://gui/./src/components/LinkBubble.vue?f783","webpack://gui/./src/components/SimpleBadge.vue","webpack://gui/./src/components/SimpleBadge.vue?af1b","webpack://gui/./src/components/ProjectItems.vue?889a","webpack://gui/./src/components/TagList.vue","webpack://gui/./src/components/TagList.vue?5d58","webpack://gui/./src/components/CatList.vue","webpack://gui/./src/components/CatList.vue?1266","webpack://gui/./src/views/ProjectList.vue?b029"],"sourcesContent":["<template>\n <div class=\"flex flex-wrap m-5\">\n <div class=\"sticky top-0 stickybox rounded-xl w-full py-2\">\n <div class=\"w-full\">\n <cat-list />\n <tag-list\n :taglist=\"tags\"\n />\n </div>\n </div>\n <div class=\"w-full text-xl m-2 elementcount\">{{ projectList.length }} Elements</div>\n <project-item\n v-for=\"project in projectList\"\n :key=\"project._id\"\n :project=\"project.project\"\n :id=\"project._id\"\n :source=\"project.source\"\n :metadata=\"project.metadata\"\n />\n <!--\n <p class=\"text-xs text-gray-400 font-mono mx-1 my-2\">\n Fetched from <a href=\"https://github.com/Closing-the-Gap-in-NLS-DH/Projects/blob/master/RESOURCES.json\" target=\"_blank\">https://github.com/Closing-the-Gap-in-NLS-DH/Projects/blob/master/RESOURCES.json</a>\n </p>\n <tagList\n v-if=\"tags.length > 0\"\n v-bind:tagList=\"tags\"\n path=\"org\"\n />\n <ul class=\"mx-1 mt-2 flex\">\n <li\n v-for=\"(char, charKey) in alphaOrder\"\n v-bind:key=\"charKey\"\n class=\"mr-2\"\n >\n <a v-bind:href=\"`#${char}`\">{{ char }}</a>\n </li>\n </ul>\n <ul>\n <li v-for=\"(char, charKey) in alphaOrder\"\n v-bind:key=\"charKey\">\n <h3 class=\"ml-1 mt-2 text-xl\">{{ char }}</h3>\n <a v-bind:name=\"char\" />\n <resource-item\n v-for=\"(r, rKey) in orgList.alpha[char]\"\n v-bind:key=\"rKey\"\n v-bind:label=\"r.label\"\n v-bind:comment=\"r.comment\"\n v-bind:link=\"r.ref\"\n v-bind:tags=\"r.tags\"\n v-bind:credit=\"r.collected_by\"\n ></resource-item>\n </li>\n </ul>\n -->\n </div>\n</template>\n\n<script>\nimport {\n defineComponent,\n ref,\n watchEffect,\n watch,\n} from 'vue';\nimport {\n useRoute,\n} from 'vue-router';\nimport axios from 'axios';\nimport projectItem from '@/components/ProjectItems.vue';\nimport tagList from '@/components/TagList.vue';\nimport catList from '@/components/CatList.vue';\n\nexport default defineComponent({\n components: {\n projectItem,\n tagList,\n catList\n },\n setup() {\n const projectList = ref([]);\n const tags = ref([]);\n const route = useRoute();\n\n const resetData = () => {\n tags.value = [];\n projectList.value = [];\n };\n\n const loadData = () => {\n axios.get('https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master/PROJECTS.json')\n .then((responseIndex) => {\n Object.keys(responseIndex.data).map((key) => {\n axios.get(`https://raw.githubusercontent.com/Closing-the-Gap-in-NLS-DH/Projects/master${responseIndex.data[key].path}${key}.json`)\n .then((responseProject) => {\n if ((route.params.tag && responseProject.data.project.keywords.includes(route.params.tag))\n || (route.params.cat && responseProject.data.project.topic_relations[route.params.cat])\n ) {\n projectList.value.push({\n _id: key,\n metadata: responseProject.data.record_metadata,\n project: responseProject.data.project,\n source: `https://github.com/Closing-the-Gap-in-NLS-DH/Projects/blob/master${responseIndex.data[key].path}${key}.json`,\n });\n responseProject.data.project.keywords.map((tag) => {\n if (!tags.value.includes(tag)) tags.value.push(tag);\n });\n projectList.value.sort((a, b) => {\n if (a.project.title.toLowerCase() > b.project.title.toLowerCase()) return 1;\n if (a.project.title.toLowerCase() < b.project.title.toLowerCase()) return -1;\n return 0;\n });\n } else if (!route.params.tag && !route.params.cat) {\n projectList.value.push({\n _id: key,\n metadata: responseProject.data.record_metadata,\n project: responseProject.data.project,\n source: `https://github.com/Closing-the-Gap-in-NLS-DH/Projects/blob/master${responseIndex.data[key].path}${key}.json`,\n });\n responseProject.data.project.keywords.map((tag) => {\n if (!tags.value.includes(tag)) tags.value.push(tag);\n });\n projectList.value.sort((a, b) => {\n if (a.project.title.toLowerCase() > b.project.title.toLowerCase()) return 1;\n if (a.project.title.toLowerCase() < b.project.title.toLowerCase()) return -1;\n return 0;\n });\n }\n \n return null;\n });\n return null;\n });\n }).then(() => {\n console.log('finished');\n console.log(tags.value);\n });\n };\n\n watchEffect(() => {\n loadData();\n });\n\n watch(route, (to) => {\n if (!to.hash) {\n resetData();\n loadData();\n }\n });\n\n return {\n projectList,\n tags,\n };\n }\n});\n</script>\n","<template>\n<div class=\"md:basis-1/2 lg:basis-1/3\">\n <div class=\"box relative rounded-2xl m-4\">\n <div class=\"content inline-block h-auto relative p-4 pb-7 flex flex-wrap md:flex-row\">\n <div class=\"left w-auto\">\n <div class=\"text-left flex flex-wrap p-3 py-0\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 float-left mr-1\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z\" clip-rule=\"evenodd\" />\n </svg>\n <div\n v-for=\"(place, key) in project.places\"\n :key=\"key\"\n >\n <a :href=\"place.place_name.ref[0]\" target=\"_blank\">{{ place.place_name.text }}</a>\n <span v-if=\"key < project.places.length - 1\">, </span>\n </div>\n </div>\n <div\n @click=\"extend = !extend\"\n class=\"text-3xl text-left p-3 py-5 text-comfortaa leading-normal antialiased\"\n >\n {{ project.title }}\n </div>\n <ul class=\"mb-3\">\n <li\n v-for=\"(date, key) in project.date\"\n :key=\"key\"\n class=\"text-left m-3 my-0 flex flex-row font-light\"\n >\n <svg v-if=\"date.from || date.to\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 mr-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n <span v-if=\"date.from\">{{ new Date(date.from).getFullYear() }}</span>\n <svg v-if=\"date.from || date.to\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 m-auto mx-1\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n <span v-if=\"date.to\">{{ new Date(date.to).getFullYear() }}</span>\n </li>\n </ul>\n <div class=\"flex flex-row ml-3 mb-5 font-light\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 mr-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129\" />\n </svg>\n <span\n v-for=\"(lang, key) in project.lang\"\n :key=\"key\"\n class=\"mr-2\"\n >{{ lang }}</span>\n </div>\n <div class=\"text-left w-full p-3 py-0 leading-relaxed antialiased\">{{ project.project_desc }}</div>\n <div class=\"tagrow flex flex-wrap p-3 pb-10 mt-5\">\n <simple-badge\n v-if=\"project.topic_relations.nls\"\n label=\"Non-Latin Script\"\n />\n <simple-badge\n v-if=\"project.topic_relations.dh\"\n label=\"Digital Humanities\"\n />\n <simple-badge\n v-if=\"project.topic_relations.rdm\"\n label=\"Research Data Management\"\n />\n <simple-badge\n v-if=\"project.topic_relations.meta\"\n label=\"Meta\"\n />\n <simple-badge\n v-if=\"project.topic_relations.infrastructure\"\n label=\"Infrastructure\"\n />\n <tag-bubble\n v-for=\"(tags, key) in project.keywords\"\n :key=\"key\"\n :label=\"tags\"\n :link=\"tags\"\n target=\"tag\"\n :small=\"true\"\n />\n </div>\n </div>\n <!--\n <div\n :class=\"(extend) ? '' : 'hidden'\"\n class=\"right h-full\"\n >\n <div class=\"codebox max-w-2xl h-max text-left p-5 ml-5 mb-5 rounded-tr-lg overflow-scroll\">\n <pre>{{ project }}</pre>\n </div>\n </div>\n -->\n </div>\n <div class=\"footer absolute bottom-0 inset-x-0 rounded-b-2xl h-8 pl-7 flex flex-row\">\n <link-bubble\n v-for=\"(link, key) in project.websites\"\n :key=\"key\"\n :href=\"link\"\n type=\"link\"\n />\n <link-bubble\n :href=\"source\"\n type=\"git\"\n />\n <div\n v-if=\"metadata.record_modified[metadata.record_modified.length - 1].record_modified_on\"\n class=\"text-sm bright-text mt-1 absolute right-5\"\n >Last edit: {{ metadata.record_modified[metadata.record_modified.length - 1].record_modified_on }} </div>\n </div>\n </div>\n</div>\n</template>\n\n<script>\nimport { defineComponent, inject, watch, ref } from 'vue';\nimport TagBubble from '@/components/TagBubble.vue';\nimport LinkBubble from '@/components/LinkBubble.vue';\nimport SimpleBadge from '@/components/SimpleBadge.vue';\n\nexport default defineComponent({\n components: {\n TagBubble,\n LinkBubble,\n SimpleBadge,\n },\n props: {\n project: Object,\n id: String,\n source: String,\n metadata: Object,\n },\n setup(props) {\n const extend = ref();\n extend.value = false;\n const now = new Date().getTime();\n const isArabic = inject('rtlCharset').test(props.label);\n\n watch(extend, (to) => {\n console.log(to);\n });\n\n return {\n isArabic,\n now,\n extend,\n };\n },\n});\n</script>","<template>\n <router-link\n v-if=\"link\"\n class=\"bubble rounded-full pr-4 pl-4 ml-0 mr-2 my-1\"\n :class=\"(route.params[target] === link) ? 'bg-darkblue pr-0 flex flex-row' : ''\"\n :to=\"targetArr\"\n >\n <span v-if=\"target === 'tag'\">#</span>{{ label }} <svg v-if=\"route.params[target] === link\" xmlns=\"http://www.w3.org/2000/svg\" class=\"ml-1 m-auto h-5 w-5\" :class=\"small ? 'mr-0' : 'mr-1'\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\" />\n </svg>\n </router-link>\n</template>\n\n<script>\nimport { defineComponent, inject, computed } from 'vue';\nimport {\n useRoute,\n} from 'vue-router';\n\nexport default defineComponent({\n components: {\n },\n props: {\n label: String,\n link: String,\n small: Boolean,\n target: String,\n },\n setup(props) {\n const now = new Date().getTime();\n const isArabic = inject('rtlCharset').test(props.label);\n\n const route = useRoute();\n\n const targetArr = computed(() => {\n switch (props.target) {\n case 'tag':\n return {\n name: 'projectsFiltered',\n params: {\n tag: (route.params.tag === props.link) ? '' : props.link,\n }\n };\n case 'cat': \n return {\n name: 'projectCategories',\n params: {\n cat: (route.params.cat === props.link) ? '' : props.link,\n }\n };\n default: return {};\n }\n });\n\n return {\n isArabic,\n now,\n route,\n targetArr,\n };\n },\n});\n</script>","import { render } from \"./TagBubble.vue?vue&type=template&id=77eaae0a\"\nimport script from \"./TagBubble.vue?vue&type=script&lang=js\"\nexport * from \"./TagBubble.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"icon rounded-full w-8 h-8 border-2 mr-1\">\n <a :href=\"href\" target=\"_blank\">\n <svg \n v-if=\"type === 'link'\"\n xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 icon-text m-auto mt-1\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M11 3a1 1 0 100 2h2.586l-6.293 6.293a1 1 0 101.414 1.414L15 6.414V9a1 1 0 102 0V4a1 1 0 00-1-1h-5z\" />\n <path d=\"M5 5a2 2 0 00-2 2v8a2 2 0 002 2h8a2 2 0 002-2v-3a1 1 0 10-2 0v3H5V7h3a1 1 0 000-2H5z\" />\n </svg>\n <svg \n v-if=\"type === 'git'\"\n xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 icon-text m-auto mt-1\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4\" />\n </svg>\n </a>\n </div>\n</template>\n\n<script>\nimport { defineComponent, inject } from 'vue';\n\nexport default defineComponent({\n components: {\n },\n props: {\n href: String,\n type: String,\n },\n setup(props) {\n const now = new Date().getTime();\n const isArabic = inject('rtlCharset').test(props.label);\n return {\n isArabic,\n now,\n };\n },\n});\n</script>","import { render } from \"./LinkBubble.vue?vue&type=template&id=48a17d96\"\nimport script from \"./LinkBubble.vue?vue&type=script&lang=js\"\nexport * from \"./LinkBubble.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"bubble bg-brightblue rounded-full px-4 ml-0 mr-2 my-1\">{{ label }}</div>\n</template>\n\n<script>\nimport { defineComponent, inject } from 'vue';\n\nexport default defineComponent({\n components: {\n },\n props: {\n label: String,\n link: String,\n },\n setup(props) {\n const now = new Date().getTime();\n const isArabic = inject('rtlCharset').test(props.label);\n return {\n isArabic,\n now,\n };\n },\n});\n</script>","import { render } from \"./SimpleBadge.vue?vue&type=template&id=1920d974\"\nimport script from \"./SimpleBadge.vue?vue&type=script&lang=js\"\nexport * from \"./SimpleBadge.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ProjectItems.vue?vue&type=template&id=3761c9b8\"\nimport script from \"./ProjectItems.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectItems.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n<div class=\"w-auto mx-4\">\n <div\n class=\"tag-container rounded-t-xl pointer px-5 py-2 mb-0\"\n :class=\"(collapsed) ? 'rounded-b-xl' : ''\"\n @click=\"collapsed = !collapsed\"\n >\n {{ collapse_btn }}\n <svg v-if=\"collapsed\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 float-right ml-2\" viewBox=\"-2 -2 18 18\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n <svg v-if=\"!collapsed\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 float-right ml-2\" viewBox=\"-2 -2 18 18\" stroke=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div\n v-if=\"!collapsed\"\n class=\"tag-container flex flex-wrap text-sm rounded-b-xl p-3 mt-0\"\n >\n <!--\n <tag-bubble\n v-for=\"(cat, key) in categories\"\n :key=\"key\"\n :label=\"cat.label\"\n :link=\"cat.link\"\n :small=\"true\"\n />\n -->\n <tag-bubble\n v-for=\"(tag, key) in taglist\"\n :key=\"key\"\n :label=\"tag\"\n :link=\"tag\"\n target=\"tag\"\n :small=\"true\"\n />\n </div>\n</div>\n</template>\n\n<script>\nimport { defineComponent, ref } from 'vue';\nimport {\n useRoute,\n} from 'vue-router';\nimport TagBubble from './TagBubble.vue';\n\nexport default defineComponent({\n components: {\n TagBubble\n },\n props: {\n taglist: Array,\n },\n setup() {\n const collapse_btn = ref('List of Keywords');\n const route = useRoute();\n let collapsed = ref((route.params.tag && route.params.tag != '') ? false : true);\n\n return {\n collapse_btn,\n collapsed,\n }\n },\n});\n</script>","import { render } from \"./TagList.vue?vue&type=template&id=0ff71b78\"\nimport script from \"./TagList.vue?vue&type=script&lang=js\"\nexport * from \"./TagList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n<div class=\"w-auto mx-4 mb-2\">\n <div\n class=\"tag-container rounded-t-xl pointer px-5 py-2 mb-0\"\n :class=\"(collapsed) ? 'rounded-b-xl' : ''\"\n @click=\"collapsed = !collapsed\"\n >\n {{ collapse_btn }}\n <svg v-if=\"collapsed\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 float-right ml-2\" viewBox=\"-2 -2 18 18\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n <svg v-if=\"!collapsed\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5 float-right ml-2\" viewBox=\"-2 -2 18 18\" stroke=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div\n v-if=\"!collapsed\"\n class=\"tag-container flex flex-wrap text-sm rounded-b-xl p-3 mt-0\"\n >\n <tag-bubble\n v-for=\"(cat, key) in categories\"\n :key=\"key\"\n :label=\"cat.label\"\n :link=\"cat.link\"\n target=\"cat\"\n :small=\"true\"\n />\n </div>\n</div>\n</template>\n\n<script>\nimport { defineComponent, ref } from 'vue';\nimport { useRoute } from 'vue-router';\nimport TagBubble from './TagBubble.vue';\n\nexport default defineComponent({\n components: {\n TagBubble\n },\n props: {\n taglist: Array,\n },\n setup() {\n const collapse_btn = ref('Categories');\n const route = useRoute();\n let collapsed = ref((route.params.cat && route.params.cat != '') ? false : true);\n\n const categories = ref([\n {\n label: 'Digital Humanities',\n link: 'dh'\n },\n {\n label: 'Non-Latin Script',\n link: 'nls'\n },\n {\n label: 'Research Data Management',\n link: 'rdm'\n },\n {\n label: 'Infrastructure',\n link: 'infrastructure'\n },\n {\n label: 'Meta',\n link: 'meta'\n }\n ])\n\n return {\n collapse_btn,\n collapsed,\n categories,\n }\n },\n});\n</script>","import { render } from \"./CatList.vue?vue&type=template&id=dcff90c6\"\nimport script from \"./CatList.vue?vue&type=script&lang=js\"\nexport * from \"./CatList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./ProjectList.vue?vue&type=template&id=4908aa63\"\nimport script from \"./ProjectList.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectList.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","_createElementBlock","_createElementVNode","_createVNode","_component_cat_list","_component_tag_list","taglist","_ctx","_toDisplayString","length","_Fragment","_renderList","project","_createBlock","_component_project_item","key","_id","id","source","metadata","xmlns","viewBox","fill","d","stroke","_hoisted_11","_hoisted_15","_hoisted_6","places","place","href","place_name","ref","target","text","_hoisted_7","_hoisted_8","onClick","title","date","from","to","_hoisted_12","_hoisted_13","Date","getFullYear","_hoisted_16","_hoisted_17","_hoisted_19","lang","project_desc","topic_relations","nls","_component_simple_badge","label","dh","rdm","meta","infrastructure","keywords","tags","_component_tag_bubble","link","small","websites","_component_link_bubble","type","record_modified","record_modified_on","_hoisted_2","_component_router_link","params","_hoisted_1","defineComponent","components","props","String","Boolean","setup","now","getTime","isArabic","inject","test","route","useRoute","targetArr","computed","name","tag","cat","__exports__","_hoisted_4","_hoisted_5","_hoisted_9","TagBubble","LinkBubble","SimpleBadge","Object","extend","value","watch","console","log","_hoisted_3","Array","collapse_btn","collapsed","categories","projectItem","tagList","catList","projectList","resetData","loadData","axios","then","responseIndex","keys","data","map","path","responseProject","includes","push","record_metadata","sort","a","b","toLowerCase","watchEffect","hash","render"],"sourceRoot":""} \ No newline at end of file diff --git a/js/app.8a4790c0.js b/js/app.8a4790c0.js new file mode 100644 index 0000000000000000000000000000000000000000..e00419200e586b2e95fc928494edd5f86d3d0f79 --- /dev/null +++ b/js/app.8a4790c0.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={5846:function(e,t,n){var r=n(9242),o=n(3396),i=n(7139);const a={class:"flex flex-wrap"},u={class:"head w-full text-left p-5"},l={class:"text-5xl ml-3"},c={class:"text-2xl ml-3 mt-4"},s={class:"nav w-full pl-3"},f={class:"w-full"};function p(e,t,n,r,p,d){const m=(0,o.up)("router-link"),h=(0,o.up)("router-view");return(0,o.wg)(),(0,o.iD)("div",a,[(0,o._)("div",u,[(0,o._)("h1",l,(0,i.zw)(r.title),1),(0,o._)("h2",c,(0,i.zw)(r.subtitle),1)]),(0,o._)("div",s,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(r.nav,((e,t)=>((0,o.wg)(),(0,o.iD)("div",{key:t,class:"nav-item float-left py-3 ml-5 text-xl"},[(0,o.Wm)(m,{to:e.link},{default:(0,o.w5)((()=>[(0,o.Uk)((0,i.zw)(e.label),1)])),_:2},1032,["to"])])))),128))]),(0,o._)("div",f,[(0,o.Wm)(h)])])}var d=n(4870),m={setup(){const e=(0,d.iH)("Closing the Gap"),t=(0,d.iH)("in Non-Latin Script Data"),n=(0,d.iH)([{label:"Projects",link:"/"},{label:"Map",link:"/map"},{label:"Network",link:"/network"},{label:"Contribute",link:"/contribute"},{label:"About",link:"/about"}]);return{title:e,subtitle:t,nav:n}},provide:{rtlCharset:/[\u0600-\u06FF]/}},h=n(89);const v=(0,h.Z)(m,[["render",p]]);var b=v,g=n(678);const y=[{path:"/projects",alias:"/",name:"projects",component:()=>Promise.all([n.e(265),n.e(921)]).then(n.bind(n,6921)),children:[{path:"/projects/tags/:tag?",name:"projectsFiltered",component:()=>Promise.all([n.e(265),n.e(921)]).then(n.bind(n,6921))},{path:"/projects/categories/:cat?",name:"projectCategories",component:()=>Promise.all([n.e(265),n.e(921)]).then(n.bind(n,6921))}]},{path:"/map/:tag?",name:"map",component:()=>Promise.all([n.e(265),n.e(588),n.e(908)]).then(n.bind(n,2908))},{path:"/contribute",name:"contribute",component:()=>Promise.all([n.e(265),n.e(918)]).then(n.bind(n,918))},{path:"/network",name:"network",component:()=>Promise.all([n.e(265),n.e(588),n.e(49)]).then(n.bind(n,1049))}],w=(0,g.p7)({history:(0,g.PO)("/Closing-The-Gap-In-Non-Latin-Script-Data/"),routes:y});var k=w;(0,r.ri)(b).use(k).mount("#app")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.m=e,function(){var e=[];n.O=function(t,r,o,i){if(!r){var a=1/0;for(s=0;s<e.length;s++){r=e[s][0],o=e[s][1],i=e[s][2];for(var u=!0,l=0;l<r.length;l++)(!1&i||a>=i)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(u=!1,i<a&&(a=i));if(u){e.splice(s--,1);var c=o();void 0!==c&&(t=c)}}return t}i=i||0;for(var s=e.length;s>0&&e[s-1][2]>i;s--)e[s]=e[s-1];e[s]=[r,o,i]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"js/"+e+"."+{49:"b20b4ba4",265:"60397096",588:"44f6e2e6",908:"299f00c2",918:"fad09cd2",921:"6134f38b"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"css/"+e+"."+{49:"f9c7bd92",908:"f9c7bd92"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="gui:";n.l=function(r,o,i,a){if(e[r])e[r].push(o);else{var u,l;if(void 0!==i)for(var c=document.getElementsByTagName("script"),s=0;s<c.length;s++){var f=c[s];if(f.getAttribute("src")==r||f.getAttribute("data-webpack")==t+i){u=f;break}}u||(l=!0,u=document.createElement("script"),u.charset="utf-8",u.timeout=120,n.nc&&u.setAttribute("nonce",n.nc),u.setAttribute("data-webpack",t+i),u.src=r),e[r]=[o];var p=function(t,n){u.onerror=u.onload=null,clearTimeout(d);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach((function(e){return e(n)})),t)return t(n)},d=setTimeout(p.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=p.bind(null,u.onerror),u.onload=p.bind(null,u.onload),l&&document.head.appendChild(u)}}}(),function(){n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){n.p="/Closing-The-Gap-In-Non-Latin-Script-Data/"}(),function(){var e=function(e,t,n,r){var o=document.createElement("link");o.rel="stylesheet",o.type="text/css";var i=function(i){if(o.onerror=o.onload=null,"load"===i.type)n();else{var a=i&&("load"===i.type?"missing":i.type),u=i&&i.target&&i.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+u+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=a,l.request=u,o.parentNode.removeChild(o),r(l)}};return o.onerror=o.onload=i,o.href=t,document.head.appendChild(o),o},t=function(e,t){for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var o=n[r],i=o.getAttribute("data-href")||o.getAttribute("href");if("stylesheet"===o.rel&&(i===e||i===t))return o}var a=document.getElementsByTagName("style");for(r=0;r<a.length;r++){o=a[r],i=o.getAttribute("data-href");if(i===e||i===t)return o}},r=function(r){return new Promise((function(o,i){var a=n.miniCssF(r),u=n.p+a;if(t(a,u))return o();e(r,u,o,i)}))},o={143:0};n.f.miniCss=function(e,t){var n={49:1,908:1};o[e]?t.push(o[e]):0!==o[e]&&n[e]&&t.push(o[e]=r(e).then((function(){o[e]=0}),(function(t){throw delete o[e],t})))}}(),function(){var e={143:0};n.f.j=function(t,r){var o=n.o(e,t)?e[t]:void 0;if(0!==o)if(o)r.push(o[2]);else{var i=new Promise((function(n,r){o=e[t]=[n,r]}));r.push(o[2]=i);var a=n.p+n.u(t),u=new Error,l=function(r){if(n.o(e,t)&&(o=e[t],0!==o&&(e[t]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,o[1](u)}};n.l(a,l,"chunk-"+t,t)}},n.O.j=function(t){return 0===e[t]};var t=function(t,r){var o,i,a=r[0],u=r[1],l=r[2],c=0;if(a.some((function(t){return 0!==e[t]}))){for(o in u)n.o(u,o)&&(n.m[o]=u[o]);if(l)var s=l(n)}for(t&&t(r);c<a.length;c++)i=a[c],n.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return n.O(s)},r=self["webpackChunkgui"]=self["webpackChunkgui"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}();var r=n.O(void 0,[998],(function(){return n(5846)}));r=n.O(r)})(); +//# sourceMappingURL=app.8a4790c0.js.map \ No newline at end of file diff --git a/js/app.8a4790c0.js.map b/js/app.8a4790c0.js.map new file mode 100644 index 0000000000000000000000000000000000000000..2382d2503fd881cb3271e0e66586aded9db8d850 --- /dev/null +++ b/js/app.8a4790c0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/app.8a4790c0.js","mappings":"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","sources":["webpack://gui/./src/App.vue","webpack://gui/./src/App.vue?7ccd","webpack://gui/./src/router/index.js","webpack://gui/./src/main.js","webpack://gui/webpack/bootstrap","webpack://gui/webpack/runtime/chunk loaded","webpack://gui/webpack/runtime/compat get default export","webpack://gui/webpack/runtime/define property getters","webpack://gui/webpack/runtime/ensure chunk","webpack://gui/webpack/runtime/get javascript chunk filename","webpack://gui/webpack/runtime/get mini-css chunk filename","webpack://gui/webpack/runtime/global","webpack://gui/webpack/runtime/hasOwnProperty shorthand","webpack://gui/webpack/runtime/load script","webpack://gui/webpack/runtime/make namespace object","webpack://gui/webpack/runtime/publicPath","webpack://gui/webpack/runtime/css loading","webpack://gui/webpack/runtime/jsonp chunk loading","webpack://gui/webpack/startup"],"sourcesContent":["<template>\n <div class=\"flex flex-wrap\">\n <div class=\"head w-full text-left p-5\">\n <h1 class=\"text-5xl ml-3\">\n {{ title }}\n </h1>\n <h2 class=\"text-2xl ml-3 mt-4\">\n {{ subtitle }}\n </h2>\n </div>\n <div class=\"nav w-full pl-3\">\n <div\n v-for=\"(item, key) in nav\"\n :key=\"key\"\n class=\"nav-item float-left py-3 ml-5 text-xl\"\n >\n <router-link :to=\"item.link\">{{ item.label }}</router-link>\n </div>\n </div>\n <div class=\"w-full\">\n <router-view></router-view>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref } from 'vue';\n\nexport default {\n setup() {\n const title = ref('Closing the Gap');\n const subtitle = ref('in Non-Latin Script Data');\n const nav = ref([\n {\n label: 'Projects',\n link: '/',\n },\n {\n label: 'Map',\n link: '/map',\n },\n {\n label: 'Network',\n link: '/network',\n },\n {\n label: 'Contribute',\n link: '/contribute',\n },\n {\n label: 'About',\n link: '/about',\n },\n ]);\n\n return {\n title,\n subtitle,\n nav\n };\n },\n provide: {\n // more languages can be added for different format options, yet existing:\n // - ara\n rtlCharset: /[\\u0600-\\u06FF]/,\n },\n};\n</script>\n","import { render } from \"./App.vue?vue&type=template&id=544d4ad7\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Users/taikurit/Documents/git/fu/projects/GUI/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createRouter, createWebHistory } from 'vue-router';\n\nconst routes = [\n {\n path: '/projects',\n alias: '/',\n name: 'projects',\n component: () => import('../views/ProjectList.vue'),\n children: [\n {\n path: '/projects/tags/:tag?',\n name: 'projectsFiltered',\n component: () => import('../views/ProjectList.vue'),\n },\n {\n path: '/projects/categories/:cat?',\n name: 'projectCategories',\n component: () => import('../views/ProjectList.vue'),\n }\n ]\n },\n {\n path: '/map/:tag?',\n name: 'map',\n component: () => import('../views/MapView.vue'),\n },\n {\n path: '/contribute',\n name: 'contribute',\n component: () => import('../views/FormView.vue'),\n },\n {\n path: '/network',\n name: 'network',\n component: () => import('../views/NetworkView.vue'),\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n});\n\nexport default router;\n","import { createApp } from 'vue';\nimport App from './App.vue';\nimport router from './router';\nimport './styles/app.css';\n\ncreateApp(App).use(router).mount('#app');","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"49\":\"b20b4ba4\",\"265\":\"60397096\",\"588\":\"44f6e2e6\",\"908\":\"299f00c2\",\"918\":\"fad09cd2\",\"921\":\"6134f38b\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"49\":\"f9c7bd92\",\"908\":\"f9c7bd92\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"gui:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/Closing-The-Gap-In-Non-Latin-Script-Data/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"49\":1,\"908\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkgui\"] = self[\"webpackChunkgui\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(5846); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["class","_createElementBlock","_createElementVNode","_toDisplayString","$setup","_Fragment","_renderList","item","key","_createVNode","_component_router_link","to","link","label","_component_router_view","setup","title","ref","subtitle","nav","provide","rtlCharset","__exports__","render","routes","path","alias","name","component","children","router","createRouter","history","createWebHistory","process","createApp","App","use","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","p","createStylesheet","fullhref","resolve","reject","linkTag","rel","onLinkComplete","errorType","realHref","href","err","Error","code","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","then","installedChunks","installedChunkData","promise","error","loadingEnded","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/timesheet-white.min.css b/timesheet-white.min.css new file mode 100644 index 0000000000000000000000000000000000000000..ffeb63f30cc141f9d79eb980a5f708f308e4bfe0 --- /dev/null +++ b/timesheet-white.min.css @@ -0,0 +1,2 @@ +.white .timesheet{width:720px;height:292px;margin:0 auto}.white .timesheet{border-top:1px solid rgba(60,60,60,0.3);background-color:#fbfbfb;position:relative}.white .timesheet.color-scheme-default .bubble-default{background-color:RGBA(252, 70, 74, 1)}.white .timesheet.color-scheme-default .bubble-lorem{background-color:RGBA(154, 202, 39, 1)}.white .timesheet.color-scheme-default .bubble-ipsum{background-color:RGBA(60, 182, 227, 1)}.white .timesheet.color-scheme-default .bubble-dolor{background-color:RGBA(244, 207, 48, 1)}.white .timesheet.color-scheme-default .bubble-sit{background-color:RGBA(169, 105, 202, 1)}.white .timesheet.color-scheme-alternative .bubble-default{background-color:#f3552e}.white .timesheet.color-scheme-alternative .bubble-lorem{background-color:#88c33a}.white .timesheet.color-scheme-alternative .bubble-ipsum{background-color:#436ae0}.white .timesheet.color-scheme-alternative .bubble-dolor{background-color:#f4d234}.white .timesheet.color-scheme-alternative .bubble-sit{background-color:#707d86}.white .timesheet .scale{height:100%;position:absolute;top:0;left:0;float:left}.white .timesheet .scale section{float:left;width:59px;color:rgba(50,50,50,0.8);font-family:"Signika Negative";font-size:13px;line-height:24px;font-weight:300;border-left:1px dashed rgba(50,50,50,0.1);height:100%}.white .timesheet .data{margin:28px 0 0 0;padding:0;text-align:left;list-style-type:none;color:rgba(250,250,250,0.8);font-family:"Signika Negative";font-size:13px;overflow:hidden}.white .timesheet .data li{margin:0 0 3px 0;line-height:22px;height:21px;display:block;cursor:pointer;clear:both;position:relative;white-space:nowrap}.white .timesheet .data li:hover .bubble{opacity:1}.white .timesheet .data li .date{color:#797979;font-size:14px}.white .timesheet .data li .label{font-weight:lighter;font-size:14px;padding-left:5px;line-height:21px;color:#333332;white-space:nowrap}.white .timesheet .data li .bubble{width:24px;height:7px;display:block;float:left;position:relative;top:7px;border-radius:4px;margin:0 10px 0 0;opacity:0.7} +/*# sourceMappingURL=timesheet-white.min.css.map */ diff --git a/timesheet.min.js b/timesheet.min.js new file mode 100644 index 0000000000000000000000000000000000000000..8c498e0f27219fe269c08e1d030eadf0055db79e --- /dev/null +++ b/timesheet.min.js @@ -0,0 +1 @@ +!function(){"use strict";var Timesheet=function(container,min,max,data){this.data=[],this.year={min:min,max:max},this.parse(data||[]),"undefined"!=typeof document&&(this.container="string"==typeof container?document.querySelector("#"+container):container,this.drawSections(),this.insertData())};Timesheet.prototype.insertData=function(){for(var html=[],widthMonth=this.container.querySelector(".scale section").offsetWidth,n=0,m=this.data.length;m>n;n++){var cur=this.data[n],bubble=this.createBubble(widthMonth,this.year.min,cur.start,cur.end),line=['<span style="margin-left: '+bubble.getStartOffset()+"px; width: "+bubble.getWidth()+'px;" class="bubble bubble-'+(cur.type||"default")+'" data-duration="'+(cur.end?Math.round((cur.end-cur.start)/1e3/60/60/24/39):"")+'"></span>','<span class="date">'+bubble.getDateLabel()+"</span> ",'<span class="label">'+cur.label+"</span>"].join("");html.push("<li>"+line+"</li>")}this.container.innerHTML+='<ul class="data">'+html.join("")+"</ul>"},Timesheet.prototype.drawSections=function(){for(var html=[],c=this.year.min;c<=this.year.max;c++)html.push("<section>"+c+"</section>");this.container.className="timesheet color-scheme-default",this.container.innerHTML='<div class="scale">'+html.join("")+"</div>"},Timesheet.prototype.parseDate=function(date){return-1===date.indexOf("/")?(date=new Date(parseInt(date,10),0,1),date.hasMonth=!1):(date=date.split("/"),date=new Date(parseInt(date[1],10),parseInt(date[0],10)-1,1),date.hasMonth=!0),date},Timesheet.prototype.parse=function(data){for(var n=0,m=data.length;m>n;n++){var beg=this.parseDate(data[n][0]),end=4===data[n].length?this.parseDate(data[n][1]):null,lbl=4===data[n].length?data[n][2]:data[n][1],cat=4===data[n].length?data[n][3]:3===data[n].length?data[n][2]:"default";beg.getFullYear()<this.year.min&&(this.year.min=beg.getFullYear()),end&&end.getFullYear()>this.year.max?this.year.max=end.getFullYear():beg.getFullYear()>this.year.max&&(this.year.max=beg.getFullYear()),this.data.push({start:beg,end:end,label:lbl,type:cat})}},Timesheet.prototype.createBubble=function(wMonth,min,start,end){return new Bubble(wMonth,min,start,end)};var Bubble=function(wMonth,min,start,end){this.min=min,this.start=start,this.end=end,this.widthMonth=wMonth};Bubble.prototype.formatMonth=function(num){return num=parseInt(num,10),num>=10?num:"0"+num},Bubble.prototype.getStartOffset=function(){return this.widthMonth/12*(12*(this.start.getFullYear()-this.min)+this.start.getMonth())},Bubble.prototype.getFullYears=function(){return(this.end&&this.end.getFullYear()||this.start.getFullYear())-this.start.getFullYear()},Bubble.prototype.getMonths=function(){var fullYears=this.getFullYears(),months=0;return this.end?this.end.hasMonth?(months+=this.end.getMonth()+1,months+=12-(this.start.hasMonth?this.start.getMonth():0),months+=12*(fullYears-1)):(months+=12-(this.start.hasMonth?this.start.getMonth():0),months+=12*(fullYears-1>0?fullYears-1:0)):months+=this.start.hasMonth?1:12,months},Bubble.prototype.getWidth=function(){return this.widthMonth/12*this.getMonths()},Bubble.prototype.getDateLabel=function(){return[(this.start.hasMonth?this.formatMonth(this.start.getMonth()+1)+"/":"")+this.start.getFullYear(),this.end?"-"+((this.end.hasMonth?this.formatMonth(this.end.getMonth()+1)+"/":"")+this.end.getFullYear()):""].join("")},window.Timesheet=Timesheet}(); \ No newline at end of file