diff --git a/.gitignore b/.gitignore index 6535e7c..fd58f3f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ dist *.d.ts *.js.map -*.js \ No newline at end of file +*.js + +!/src/action-control/swiper/swiper.min.js +!/src/action-control/swiper/swiper.min.d.ts \ No newline at end of file diff --git a/develop/package-lock.json b/develop/package-lock.json index 58e217c..42f3b3e 100644 --- a/develop/package-lock.json +++ b/develop/package-lock.json @@ -4,30 +4,374 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@rxdi/core": { + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/core/-/core-0.7.82.tgz", + "integrity": "sha512-PcN5oAVcPoq2xlCat3Mcth4gRgHGnxdsslOluoEdUoQnU1TVDJTVgH0Lk9nNnSb2NhaL6e6YYBApXTT0VoVVdA==", + "requires": { + "reflect-metadata": "0.1.13", + "rxjs": "^6.5.3", + "systemjs": "0.21.4" + } + }, "@rxdi/forms": { - "version": "0.7.38", - "resolved": "https://registry.npmjs.org/@rxdi/forms/-/forms-0.7.38.tgz", - "integrity": "sha512-uxkNV4Gz2YHkYdHNoguSGf2rdBT5bUVkatcF2CGCB+P+XAw+dkKJIz+hAFCtpo72QKrNZg6mMCC0ZjQbuta60Q==" + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/forms/-/forms-0.7.82.tgz", + "integrity": "sha512-PMokbUvukIMeiUwxm5FUdCc6JuTOU+HwhnRuPjyL+0X/YFmKjOcXYMl9DaYR/Y6WVsv9GdnCtWVojgx7wxKoFg==" + }, + "@rxdi/graphql-client": { + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/graphql-client/-/graphql-client-0.7.82.tgz", + "integrity": "sha512-chjpEycNJco86MVuhNZHmVFFEQqqtAzLC6mE6UflROEEvW184fYJziifOILbXDHTQJ2KDN2NpmptE1ffBfmlEw==", + "requires": { + "apollo-cache-inmemory": "^1.6.2", + "apollo-client": "^2.6.3", + "apollo-link": "^1.2.12", + "apollo-link-context": "^1.0.18", + "apollo-link-http": "^1.5.15", + "apollo-link-ws": "^1.0.18", + "subscriptions-transport-ws": "^0.9.16" + } + }, + "@rxdi/lit-html": { + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/lit-html/-/lit-html-0.7.82.tgz", + "integrity": "sha512-3ttTXEgQ8PzbtN7R7SHwgFtjeIoaSsySdHCwo/Bt9kLt/AtnfebGJ021g7yUSFhYAqKy8lcsWJiJJYm0AuHd0w==" + }, + "@rxdi/router": { + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/router/-/router-0.7.82.tgz", + "integrity": "sha512-v/YMy/LNACi0/4lkXkRQgm1I5r+V6Lcz8jekXFDk0G76ptjPH11HswUTnMeZObaR0e/TYiGxCSeAq9SF/yEzjg==", + "requires": { + "router-slot": "^1.5.4" + } }, "@rxdi/ui-kit": { - "version": "1.0.0" + "version": "0.7.97", + "resolved": "https://registry.npmjs.org/@rxdi/ui-kit/-/ui-kit-0.7.97.tgz", + "integrity": "sha512-NbingnuRQBMxf5Zqz8OST27cYoPtEXkQXoQ64pOAjtXfEuYesKNvvZywptXql4r0fDkweS/uxLkTKZbL4c4BLA==", + "requires": { + "@rxdi/core": "^0.7.50", + "@rxdi/graphql-client": "^0.7.50", + "animejs": "^3.1.0", + "graphql-tag": "^2.10.1", + "js-yaml": "^3.13.1", + "marked": "^0.6.2", + "router-slot": "^1.5.2", + "shades": "^2.1.0", + "sortablejs": "^1.10.1" + } }, "@types/node": { - "version": "12.7.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz", - "integrity": "sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==", + "version": "12.19.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.2.tgz", + "integrity": "sha512-SRH6QM0IMOBBFmDiJ75vlhcbUEYEquvSuhsVW9ijG20JvdFTfOrB1p6ddZxz5y/JNnbf+9HoHhjhOVSX2hsJyA==", "dev": true }, "@types/sortablejs": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.10.0.tgz", - "integrity": "sha512-g2JQkdHCDIJKmXS8A2dzgn+D4X54B2SDKxtUcwX4S6LfMKBv6Dujemq7BaGU1SUp6q/U+glDU+RSA0uHC8BRVQ==", + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/@types/sortablejs/-/sortablejs-1.10.6.tgz", + "integrity": "sha512-QRz8Z+uw2Y4Gwrtxw8hD782zzuxxugdcq8X/FkPsXUa1kfslhGzy13+4HugO9FXNo+jlWVcE6DYmmegniIQ30A==", "dev": true }, + "@types/zen-observable": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.1.tgz", + "integrity": "sha512-wmk0xQI6Yy7Fs/il4EpOcflG4uonUpYGqvZARESLc2oy4u69fkatFLbJOeW4Q6awO15P4rduAe6xkwHevpXcUQ==" + }, + "@wry/context": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz", + "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==", + "requires": { + "@types/node": ">=6", + "tslib": "^1.9.3" + }, + "dependencies": { + "@types/node": { + "version": "14.14.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.5.tgz", + "integrity": "sha512-H5Wn24s/ZOukBmDn03nnGTp18A60ny9AmCwnEcgJiTgSGsCO7k+NWP7zjCCbhlcnVCoI+co52dUAt9GMhOSULw==" + } + } + }, + "@wry/equality": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz", + "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==", + "requires": { + "tslib": "^1.9.3" + } + }, + "animejs": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/animejs/-/animejs-3.2.1.tgz", + "integrity": "sha512-sWno3ugFryK5nhiDm/2BKeFCpZv7vzerWUcUPyAZLDhMek3+S/p418ldZJbJXo5ZUOpfm2kP2XRO4NJcULMy9A==" + }, + "apollo-cache": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz", + "integrity": "sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==", + "requires": { + "apollo-utilities": "^1.3.4", + "tslib": "^1.10.0" + } + }, + "apollo-cache-inmemory": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz", + "integrity": "sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==", + "requires": { + "apollo-cache": "^1.3.5", + "apollo-utilities": "^1.3.4", + "optimism": "^0.10.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.10.0" + } + }, + "apollo-client": { + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz", + "integrity": "sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==", + "requires": { + "@types/zen-observable": "^0.8.0", + "apollo-cache": "1.3.5", + "apollo-link": "^1.0.0", + "apollo-utilities": "1.3.4", + "symbol-observable": "^1.0.2", + "ts-invariant": "^0.4.0", + "tslib": "^1.10.0", + "zen-observable": "^0.8.0" + } + }, + "apollo-link": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz", + "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==", + "requires": { + "apollo-utilities": "^1.3.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3", + "zen-observable-ts": "^0.8.21" + } + }, + "apollo-link-context": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/apollo-link-context/-/apollo-link-context-1.0.20.tgz", + "integrity": "sha512-MLLPYvhzNb8AglNsk2NcL9AvhO/Vc9hn2ZZuegbhRHGet3oGr0YH9s30NS9+ieoM0sGT11p7oZ6oAILM/kiRBA==", + "requires": { + "apollo-link": "^1.2.14", + "tslib": "^1.9.3" + } + }, + "apollo-link-http": { + "version": "1.5.17", + "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.17.tgz", + "integrity": "sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==", + "requires": { + "apollo-link": "^1.2.14", + "apollo-link-http-common": "^0.2.16", + "tslib": "^1.9.3" + } + }, + "apollo-link-http-common": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz", + "integrity": "sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==", + "requires": { + "apollo-link": "^1.2.14", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3" + } + }, + "apollo-link-ws": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/apollo-link-ws/-/apollo-link-ws-1.0.20.tgz", + "integrity": "sha512-mjSFPlQxmoLArpHBeUb2Xj+2HDYeTaJqFGOqQ+I8NVJxgL9lJe84PDWcPah/yMLv3rB7QgBDSuZ0xoRFBPlySw==", + "requires": { + "apollo-link": "^1.2.14", + "tslib": "^1.9.3" + } + }, + "apollo-utilities": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", + "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", + "requires": { + "@wry/equality": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.10.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "graphql": { + "version": "14.7.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz", + "integrity": "sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==", + "requires": { + "iterall": "^1.2.2" + } + }, + "graphql-tag": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz", + "integrity": "sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==" + }, + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "marked": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz", + "integrity": "sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==" + }, + "optimism": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz", + "integrity": "sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==", + "requires": { + "@wry/context": "^0.4.0" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "router-slot": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/router-slot/-/router-slot-1.5.4.tgz", + "integrity": "sha512-tHqDp0ZZ/KF+j3+OlPbxHoYRkMrHQrxU8D0kUoUhZEevj+j/sMV2pXmZ2jL4oND2o6PyTsCYz1VRqZr7mBfaTg==" + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "shades": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/shades/-/shades-2.1.0.tgz", + "integrity": "sha512-6D+4+lPBjc95ptStD9PzOfrEc2d7zwxWVn2SFEbYaI4EXB5+tcChhyGwOEvbEjGb+d1QS44AcYcSYgWNz5grzg==" + }, "sortablejs": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.1.tgz", - "integrity": "sha512-N6r7GrVmO8RW1rn0cTdvK3JR0BcqecAJ0PmYMCL3ZuqTH3pY+9QyqkmJSkkLyyDvd+AJnwaxTP22Ybr/83V9hQ==" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.12.0.tgz", + "integrity": "sha512-bPn57rCjBRlt2sC24RBsu40wZsmLkSo2XeqG8k6DC1zru5eObQUIPPZAQG7W2SJ8FZQYq+BEJmvuw1Zxb3chqg==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "subscriptions-transport-ws": { + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", + "requires": { + "backo2": "^1.0.2", + "eventemitter3": "^3.1.0", + "iterall": "^1.2.1", + "symbol-observable": "^1.0.4", + "ws": "^5.2.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "systemjs": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.21.4.tgz", + "integrity": "sha512-l1O8boHjAIY5UG74Xk4B63LK9QbFxv/FkQa//GGGWaTeQoMhTsWnFrYwPWBScSF4xQFMO/+v9QB4i633h8Oytw==" + }, + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "requires": { + "tslib": "^1.9.3" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "0.8.21", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz", + "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==", + "requires": { + "tslib": "^1.9.3", + "zen-observable": "^0.8.0" + } } } } diff --git a/develop/package.json b/develop/package.json index 8d5b594..d69b199 100644 --- a/develop/package.json +++ b/develop/package.json @@ -2,15 +2,19 @@ "name": "@rxdi/ui-kit-client", "version": "1.0.0", "scripts": { + "start": "npx parcel ./index.html --out-dir ../build/client", "build": "npx firelink build ./index.html --out-dir ../docs --public-url /ui-kit " }, "browserslist": [ "last 1 chrome versions" ], "dependencies": { - "@rxdi/forms": "^0.7.50", - "@rxdi/ui-kit": "1.0.0", - "@rxdi/graphql-client": "^0.7.50", + "@rxdi/core": "^0.7.82", + "@rxdi/forms": "^0.7.82", + "@rxdi/graphql-client": "^0.7.82", + "@rxdi/lit-html": "^0.7.82", + "@rxdi/router": "^0.7.82", + "@rxdi/ui-kit": "^0.7.96", "graphql": "^14.5.8", "shades": "^2.1.0", "sortablejs": "^1.10.1" @@ -22,7 +26,8 @@ "@rxdi/ui-kit": "../src/" }, "devDependencies": { + "@types/node": "^12.0.10", "@types/sortablejs": "^1.10.0", - "@types/node": "^12.0.10" + "typescript": "^4.0.5" } -} \ No newline at end of file +} diff --git a/develop/src/app/action-control/action-control-view.component.ts b/develop/src/app/action-control/action-control-view.component.ts new file mode 100644 index 0000000..af61c88 --- /dev/null +++ b/develop/src/app/action-control/action-control-view.component.ts @@ -0,0 +1,30 @@ +import { Component, LitElement, html, css } from '@rxdi/lit-html'; +import { Page } from '@rxdi/ui-kit/pagination/pagination.component'; + +/** + * @customElement action-view-pagination-view-component + */ +@Component({ + selector: 'action-view-pagination-view-component', + style: css` + .container { + margin: 50px auto; + width: 200px; + padding: 50px; + background-color: white; + text-align: center; + user-select: none; + } + `, + template(this: ActionControlViewComponent) { + return html` +
+ dadadadadaad +
+ + `; + }, +}) +export class ActionControlViewComponent extends LitElement {} diff --git a/develop/src/app/action-control/action-control.module.ts b/develop/src/app/action-control/action-control.module.ts new file mode 100644 index 0000000..669d7e2 --- /dev/null +++ b/develop/src/app/action-control/action-control.module.ts @@ -0,0 +1,15 @@ +import { Module } from '@rxdi/core'; +import { RouterModule } from '@rxdi/router'; +import { ActionControlViewComponent } from './action-control-view.component'; + +@Module({ + imports: [ + RouterModule.forChild([ + { + path: '/', + component: ActionControlViewComponent, + }, + ]), + ], +}) +export class ActionControlModule {} diff --git a/develop/src/app/app.component.ts b/develop/src/app/app.component.ts index 26f2191..19347d1 100644 --- a/develop/src/app/app.component.ts +++ b/develop/src/app/app.component.ts @@ -1,7 +1,6 @@ -import { html, Component, css, async, query, LitElement } from '@rxdi/lit-html'; +import { html, Component, css, LitElement } from '@rxdi/lit-html'; import { Inject } from '@rxdi/core'; import { Nav } from '../../../src/nav'; -import { map } from 'rxjs/operators'; /** * @customElement app-component @@ -10,32 +9,6 @@ import { map } from 'rxjs/operators'; selector: 'app-component', template(this: AppComponent) { return html` - -
@@ -58,7 +31,7 @@ export class AppComponent extends LitElement { this.navService.open({ navOptions: { delay: 0, left: 0 }, template: html` - + dada `, styles: css` :host { diff --git a/develop/src/app/app.routing.module.ts b/develop/src/app/app.routing.module.ts index 0a8fdcf..8a1bea4 100644 --- a/develop/src/app/app.routing.module.ts +++ b/develop/src/app/app.routing.module.ts @@ -191,6 +191,10 @@ import { PaginationViewComponent } from './pagination-view/pagination-view.compo path: '/ui-kit/pagination', component: PaginationViewComponent }, + { + path: '/ui-kit/action-control', + children: () => import('./action-control/action-control.module') + }, { path: '/ui-kit/docs/home', redirect: 'ui-kit/docs' diff --git a/develop/src/app/table-view/table-view.component.ts b/develop/src/app/table-view/table-view.component.ts index f886903..1779838 100644 --- a/develop/src/app/table-view/table-view.component.ts +++ b/develop/src/app/table-view/table-view.component.ts @@ -8,14 +8,10 @@ import { } from '@rxdi/lit-html'; import { Animations, - animateElement, AnimationsType, animateChain } from '../../../../src/styles/animations'; import { DATA } from './data'; -import { switchMap, concatMap } from 'rxjs/operators'; -import { of, from } from 'rxjs'; -type AnimationsUnion = keyof typeof Animations; /** * @customElement table-view-component diff --git a/develop/yarn.lock b/develop/yarn.lock index 996cab1..3f75896 100644 --- a/develop/yarn.lock +++ b/develop/yarn.lock @@ -2,30 +2,186 @@ # yarn lockfile v1 -"@rxdi/ui-kit@file:../src": - version "1.0.0" - -"@types/node@^12.0.8": - version "12.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.2.tgz#75ba3beda30d690b89a5089ca1c6e8e386150b76" - integrity sha512-dsfE4BHJkLQW+reOS6b17xhZ/6FB1rB8eRRvO08nn5o+voxf3i74tuyFWNH6djdfgX7Sm5s6LD8t6mJug4dpDw== - -"@types/q@^1.5.1": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-styles@^3.2.1: +"@rxdi/core@^0.7.50": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/core/-/core-0.7.82.tgz#a70b273a8c87d55baaac8966d764a0d358364dee" + integrity sha512-PcN5oAVcPoq2xlCat3Mcth4gRgHGnxdsslOluoEdUoQnU1TVDJTVgH0Lk9nNnSb2NhaL6e6YYBApXTT0VoVVdA== + dependencies: + reflect-metadata "0.1.13" + rxjs "^6.5.3" + systemjs "0.21.4" + +"@rxdi/forms@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/forms/-/forms-0.7.82.tgz#6006d07399a37ca3abcb9469c0737e62d2d98f25" + integrity sha512-PMokbUvukIMeiUwxm5FUdCc6JuTOU+HwhnRuPjyL+0X/YFmKjOcXYMl9DaYR/Y6WVsv9GdnCtWVojgx7wxKoFg== + +"@rxdi/graphql-client@^0.7.50", "@rxdi/graphql-client@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/graphql-client/-/graphql-client-0.7.82.tgz#e2ea8a1969cdded8aaddb8ed6ba9a666414eaead" + integrity sha512-chjpEycNJco86MVuhNZHmVFFEQqqtAzLC6mE6UflROEEvW184fYJziifOILbXDHTQJ2KDN2NpmptE1ffBfmlEw== + dependencies: + apollo-cache-inmemory "^1.6.2" + apollo-client "^2.6.3" + apollo-link "^1.2.12" + apollo-link-context "^1.0.18" + apollo-link-http "^1.5.15" + apollo-link-ws "^1.0.18" + subscriptions-transport-ws "^0.9.16" + +"@rxdi/lit-html@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/lit-html/-/lit-html-0.7.82.tgz#9f68369035c2fdad90a0319daa421ba2f6023a84" + integrity sha512-3ttTXEgQ8PzbtN7R7SHwgFtjeIoaSsySdHCwo/Bt9kLt/AtnfebGJ021g7yUSFhYAqKy8lcsWJiJJYm0AuHd0w== + +"@rxdi/router@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/router/-/router-0.7.82.tgz#60159f38cc929ab8536914c370a48c6a8e0dab09" + integrity sha512-v/YMy/LNACi0/4lkXkRQgm1I5r+V6Lcz8jekXFDk0G76ptjPH11HswUTnMeZObaR0e/TYiGxCSeAq9SF/yEzjg== + dependencies: + router-slot "^1.5.4" + +"@rxdi/ui-kit@^0.7.96": + version "0.7.97" + resolved "https://registry.yarnpkg.com/@rxdi/ui-kit/-/ui-kit-0.7.97.tgz#61664d33b192c10dee2aec384901c75145461547" + integrity sha512-NbingnuRQBMxf5Zqz8OST27cYoPtEXkQXoQ64pOAjtXfEuYesKNvvZywptXql4r0fDkweS/uxLkTKZbL4c4BLA== + dependencies: + "@rxdi/core" "^0.7.50" + "@rxdi/graphql-client" "^0.7.50" + animejs "^3.1.0" + graphql-tag "^2.10.1" + js-yaml "^3.13.1" + marked "^0.6.2" + router-slot "^1.5.2" + shades "^2.1.0" + sortablejs "^1.10.1" + +"@types/node@>=6": + version "14.14.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.5.tgz#e92d3b8f76583efa26c1a63a21c9d3c1143daa29" + integrity sha512-H5Wn24s/ZOukBmDn03nnGTp18A60ny9AmCwnEcgJiTgSGsCO7k+NWP7zjCCbhlcnVCoI+co52dUAt9GMhOSULw== + +"@types/node@^12.0.10": + version "12.19.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.2.tgz#9565ed5c72ba96038fc3add643edd5e7820598e7" + integrity sha512-SRH6QM0IMOBBFmDiJ75vlhcbUEYEquvSuhsVW9ijG20JvdFTfOrB1p6ddZxz5y/JNnbf+9HoHhjhOVSX2hsJyA== + +"@types/sortablejs@^1.10.0": + version "1.10.6" + resolved "https://registry.yarnpkg.com/@types/sortablejs/-/sortablejs-1.10.6.tgz#98725ae08f1dfe28b8da0fdf302c417f5ff043c0" + integrity sha512-QRz8Z+uw2Y4Gwrtxw8hD782zzuxxugdcq8X/FkPsXUa1kfslhGzy13+4HugO9FXNo+jlWVcE6DYmmegniIQ30A== + +"@types/zen-observable@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.1.tgz#5668c0bce55a91f2b9566b1d8a4c0a8dbbc79764" + integrity sha512-wmk0xQI6Yy7Fs/il4EpOcflG4uonUpYGqvZARESLc2oy4u69fkatFLbJOeW4Q6awO15P4rduAe6xkwHevpXcUQ== + +"@wry/context@^0.4.0": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8" + integrity sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag== + dependencies: + "@types/node" ">=6" + tslib "^1.9.3" + +"@wry/equality@^0.1.2": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + dependencies: + tslib "^1.9.3" + +animejs@^3.1.0: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" + resolved "https://registry.yarnpkg.com/animejs/-/animejs-3.2.1.tgz#de9fe2e792f44a777a7fdf6ae160e26604b0cdda" + integrity sha512-sWno3ugFryK5nhiDm/2BKeFCpZv7vzerWUcUPyAZLDhMek3+S/p418ldZJbJXo5ZUOpfm2kP2XRO4NJcULMy9A== + +apollo-cache-inmemory@^1.6.2: + version "1.6.6" + resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz#56d1f2a463a6b9db32e9fa990af16d2a008206fd" + integrity sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A== + dependencies: + apollo-cache "^1.3.5" + apollo-utilities "^1.3.4" + optimism "^0.10.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + +apollo-cache@1.3.5, apollo-cache@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.5.tgz#9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461" + integrity sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA== + dependencies: + apollo-utilities "^1.3.4" + tslib "^1.10.0" + +apollo-client@^2.6.3: + version "2.6.10" + resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.10.tgz#86637047b51d940c8eaa771a4ce1b02df16bea6a" + integrity sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA== + dependencies: + "@types/zen-observable" "^0.8.0" + apollo-cache "1.3.5" + apollo-link "^1.0.0" + apollo-utilities "1.3.4" + symbol-observable "^1.0.2" + ts-invariant "^0.4.0" + tslib "^1.10.0" + zen-observable "^0.8.0" + +apollo-link-context@^1.0.18: + version "1.0.20" + resolved "https://registry.yarnpkg.com/apollo-link-context/-/apollo-link-context-1.0.20.tgz#1939ac5dc65d6dff0c855ee53521150053c24676" + integrity sha512-MLLPYvhzNb8AglNsk2NcL9AvhO/Vc9hn2ZZuegbhRHGet3oGr0YH9s30NS9+ieoM0sGT11p7oZ6oAILM/kiRBA== + dependencies: + apollo-link "^1.2.14" + tslib "^1.9.3" + +apollo-link-http-common@^0.2.16: + version "0.2.16" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" + integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== + dependencies: + apollo-link "^1.2.14" + ts-invariant "^0.4.0" + tslib "^1.9.3" + +apollo-link-http@^1.5.15: + version "1.5.17" + resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba" + integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg== + dependencies: + apollo-link "^1.2.14" + apollo-link-http-common "^0.2.16" + tslib "^1.9.3" + +apollo-link-ws@^1.0.18: + version "1.0.20" + resolved "https://registry.yarnpkg.com/apollo-link-ws/-/apollo-link-ws-1.0.20.tgz#dfad44121f8445c6d7b7f8101a1b24813ba008ed" + integrity sha512-mjSFPlQxmoLArpHBeUb2Xj+2HDYeTaJqFGOqQ+I8NVJxgL9lJe84PDWcPah/yMLv3rB7QgBDSuZ0xoRFBPlySw== + dependencies: + apollo-link "^1.2.14" + tslib "^1.9.3" + +apollo-link@^1.0.0, apollo-link@^1.2.12, apollo-link@^1.2.14: + version "1.2.14" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-utilities@1.3.4, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + dependencies: + "@wry/equality" "^0.1.2" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" argparse@^1.0.7: version "1.0.10" @@ -34,468 +190,47 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -browserslist@^4.0.0: - version "4.7.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.1.tgz#bd400d1aea56538580e8c4d5f1c54ac11b5ab468" - integrity sha512-QtULFqKIAtiyNx7NhZ/p4rB8m3xDozVo/pi5VgTlADLF2tNigz/QH+v0m5qhn7XfHT7u+607NcCNOnC0HZAlMg== - dependencies: - caniuse-lite "^1.0.30000999" - electron-to-chromium "^1.3.284" - node-releases "^1.1.36" - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000999: - version "1.0.30001002" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001002.tgz#ba999a737b1abd5bf0fd47efe43a09b9cadbe9b0" - integrity sha512-pRuxPE8wdrWmVPKcDmJJiGBxr6lFJq4ivdSeo9FTmGj5Rb8NX3Mby2pARG57MXF15hYAhZ0nHV5XxT2ig4bz3g== - -chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" - integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== - dependencies: - boolbase "^1.0.0" - css-what "^2.1.2" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.29: - version "1.0.0-alpha.29" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" - integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - -css-tree@1.0.0-alpha.33: - version "1.0.0-alpha.33" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" - integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== - dependencies: - mdn-data "2.0.4" - source-map "^0.5.3" - -css-unit-converter@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" - integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= - -css-what@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" - integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== - dependencies: - css-tree "1.0.0-alpha.29" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -dom-serializer@0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" - integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -electron-to-chromium@^1.3.284: - version "1.3.289" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.289.tgz#1f85add5d7086ce95d9361348c26aa9de5779906" - integrity sha512-39GEOWgTxtMDk/WjIQLg4W/l1s4FZdiMCqUBLjd92tAXsBPDFLwuwCba5OGhuTdVYm6E128TZIqSnMpeocUlCQ== - -entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.12.0, es-abstract@^1.5.1: - version "1.16.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" - integrity sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" - object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +backo2@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has@^1.0.0, has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -is-absolute-url@^2.0.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== +graphql-tag@^2.10.1: + version "2.11.0" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" + integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== +graphql@^14.5.8: + version "14.7.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" + integrity sha512-l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA== dependencies: - html-comment-regex "^1.1.0" + iterall "^1.2.2" -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" +iterall@^1.2.1, iterall@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== js-yaml@^3.13.1: version "3.13.1" @@ -505,522 +240,104 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== +marked@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.3.tgz#79babad78af638ba4d522a9e715cdfdd2429e946" + integrity sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ== -mdn-data@~1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" - integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -node-releases@^1.1.36: - version "1.1.36" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.36.tgz#44b7cb8254138e87bdbfa47761d0f825e20900b4" - integrity sha512-ggXhX6QGyJSjj3r+6ml2LqqC28XOWmKtpb+a15/Zpr9V3yoNazxJNlcQDS9bYaid5FReEWHEgToH1mwoUceWwg== - dependencies: - semver "^6.3.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -postcss-calc@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" - integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== - dependencies: - css-unit-converter "^1.1.1" - postcss "^7.0.5" - postcss-selector-parser "^5.0.0-rc.4" - postcss-value-parser "^3.3.1" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== +optimism@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz#163268fdc741dea2fb50f300bedda80356445fd7" + integrity sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw== dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + "@wry/context" "^0.4.0" -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" +reflect-metadata@0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" - integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= - dependencies: - dot-prop "^4.1.1" - indexes-of "^1.0.1" - uniq "^1.0.1" +router-slot@^1.5.2, router-slot@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/router-slot/-/router-slot-1.5.4.tgz#2262a1eaf49962e3f922f84ae4692abe0b25a59c" + integrity sha512-tHqDp0ZZ/KF+j3+OlPbxHoYRkMrHQrxU8D0kUoUhZEevj+j/sMV2pXmZ2jL4oND2o6PyTsCYz1VRqZr7mBfaTg== -postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== +rxjs@^6.5.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.5: - version "7.0.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" - integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + tslib "^1.9.0" -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -source-map@^0.5.3: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +shades@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/shades/-/shades-2.1.0.tgz#5cefc51f6294769e3413d4e4050c9d4e7b00b245" + integrity sha512-6D+4+lPBjc95ptStD9PzOfrEc2d7zwxWVn2SFEbYaI4EXB5+tcChhyGwOEvbEjGb+d1QS44AcYcSYgWNz5grzg== -source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sortablejs@^1.10.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.12.0.tgz#ee6d7ece3598c2af0feb1559d98595e5ea37cbd6" + integrity sha512-bPn57rCjBRlt2sC24RBsu40wZsmLkSo2XeqG8k6DC1zru5eObQUIPPZAQG7W2SJ8FZQYq+BEJmvuw1Zxb3chqg== sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -svgo@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" - integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.33" - csso "^3.5.1" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== +subscriptions-transport-ws@^0.9.16: + version "0.9.18" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz#bcf02320c911fbadb054f7f928e51c6041a37b97" + integrity sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA== dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0" -vendors@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" - integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== +symbol-observable@^1.0.2, symbol-observable@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +systemjs@0.21.4: + version "0.21.4" + resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.21.4.tgz#043996efcac3fefcb7d62e8c40457a42e9c86e1e" + integrity sha512-l1O8boHjAIY5UG74Xk4B63LK9QbFxv/FkQa//GGGWaTeQoMhTsWnFrYwPWBScSF4xQFMO/+v9QB4i633h8Oytw== + +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + +tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +typescript@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable@^0.8.0: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/package-lock.json b/package-lock.json index 67664da..39726ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,32 +24,31 @@ "js-tokens": "^4.0.0" } }, + "@rhtml/di": { + "version": "0.0.62", + "resolved": "https://registry.npmjs.org/@rhtml/di/-/di-0.0.62.tgz", + "integrity": "sha512-XbHLqE58VTzDToL4x/W+5AynW/kHmH3fHPiybSMDS0TawYMwGhrnfKyPJAjlpmSb3hOZHH+jiZokmsSNq5Py4g==" + }, "@rxdi/core": { - "version": "0.7.50", - "resolved": "https://registry.npmjs.org/@rxdi/core/-/core-0.7.50.tgz", - "integrity": "sha512-jpG321HJ2bCjm9O6RBBwRobgvJsPvk6Agh1I8je482/4gGbVrqcH6sQ5td2SsdiGb0X88ZGwObpmrrxhEssn8w==", + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/core/-/core-0.7.82.tgz", + "integrity": "sha512-PcN5oAVcPoq2xlCat3Mcth4gRgHGnxdsslOluoEdUoQnU1TVDJTVgH0Lk9nNnSb2NhaL6e6YYBApXTT0VoVVdA==", "requires": { "reflect-metadata": "0.1.13", "rxjs": "^6.5.3", "systemjs": "0.21.4" } }, - "@rxdi/firelink": { - "version": "0.7.52", - "resolved": "https://registry.npmjs.org/@rxdi/firelink/-/firelink-0.7.52.tgz", - "integrity": "sha512-8L1UVFtGYGXpyvohujvpCvlCJwPKoVC/07ovcfyvIcDjeXiwb4p3Mpl5ZN7nv5HvORaaKlN/TJlis+yHXvJ1Zg==", - "dev": true - }, "@rxdi/forms": { - "version": "0.7.50", - "resolved": "https://registry.npmjs.org/@rxdi/forms/-/forms-0.7.50.tgz", - "integrity": "sha512-2YgGgDLGQbSdd13VadBjIBdBU2Z+RLKZLZXRrynXd/aqZodocXqXDU77oXHyZ087H5WnvPdO70aQqc+jiNyN+A==", + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/forms/-/forms-0.7.82.tgz", + "integrity": "sha512-PMokbUvukIMeiUwxm5FUdCc6JuTOU+HwhnRuPjyL+0X/YFmKjOcXYMl9DaYR/Y6WVsv9GdnCtWVojgx7wxKoFg==", "dev": true }, "@rxdi/graphql-client": { - "version": "0.7.50", - "resolved": "https://registry.npmjs.org/@rxdi/graphql-client/-/graphql-client-0.7.50.tgz", - "integrity": "sha512-zCGIs7ytfsNK5UDTTbF5H2rGGbyZd5kffI5v4nxh2jc0oB2eadk4f7wSKa8eK+DxvSKX2OCMhXUtQ0UWDrgblQ==", + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/graphql-client/-/graphql-client-0.7.82.tgz", + "integrity": "sha512-chjpEycNJco86MVuhNZHmVFFEQqqtAzLC6mE6UflROEEvW184fYJziifOILbXDHTQJ2KDN2NpmptE1ffBfmlEw==", "requires": { "apollo-cache-inmemory": "^1.6.2", "apollo-client": "^2.6.3", @@ -60,20 +59,49 @@ "subscriptions-transport-ws": "^0.9.16" } }, + "@rxdi/hotkeys": { + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/hotkeys/-/hotkeys-0.7.82.tgz", + "integrity": "sha512-nFl2uGwj7jf7Snaga9b81W77btVR0547Ws3HigtjqGHblr+jdMm7pGtYX0MHlyDh5GSvzplcErcx4suo1ofS+w==", + "requires": { + "@rxdi/core": "^0.7.81", + "mousetrap": "^1.6.5", + "rxjs": "^6.5.3" + }, + "dependencies": { + "@rxdi/core": { + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/core/-/core-0.7.82.tgz", + "integrity": "sha512-PcN5oAVcPoq2xlCat3Mcth4gRgHGnxdsslOluoEdUoQnU1TVDJTVgH0Lk9nNnSb2NhaL6e6YYBApXTT0VoVVdA==", + "requires": { + "reflect-metadata": "0.1.13", + "rxjs": "^6.5.3", + "systemjs": "0.21.4" + } + } + } + }, "@rxdi/lit-html": { - "version": "0.7.51", - "resolved": "https://registry.npmjs.org/@rxdi/lit-html/-/lit-html-0.7.51.tgz", - "integrity": "sha512-PAEPTV3ir6WvDDXvCk6gklzraG4hbelwptiF3Alh+WC2bUd3y/4Af7F+KQjbp0EbxptmgpieD9RjFjPcqurRRg==", + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/lit-html/-/lit-html-0.7.82.tgz", + "integrity": "sha512-3ttTXEgQ8PzbtN7R7SHwgFtjeIoaSsySdHCwo/Bt9kLt/AtnfebGJ021g7yUSFhYAqKy8lcsWJiJJYm0AuHd0w==", "dev": true }, "@rxdi/router": { - "version": "0.7.40", - "resolved": "https://registry.npmjs.org/@rxdi/router/-/router-0.7.40.tgz", - "integrity": "sha512-DXwORrMZ0/ntyKXuMWEpFCapcQCHa2K2HEESQS1pLOB9jOrWqSJSI8Ii5u8SeZ4JNybGmT2kgmAzrynfjv1VVA==", + "version": "0.7.82", + "resolved": "https://registry.npmjs.org/@rxdi/router/-/router-0.7.82.tgz", + "integrity": "sha512-v/YMy/LNACi0/4lkXkRQgm1I5r+V6Lcz8jekXFDk0G76ptjPH11HswUTnMeZObaR0e/TYiGxCSeAq9SF/yEzjg==", "dev": true, "requires": { - "@vaadin/router": "^1.2.0", - "router-slot": "^1.5.2" + "router-slot": "^1.5.4" + }, + "dependencies": { + "router-slot": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/router-slot/-/router-slot-1.5.4.tgz", + "integrity": "sha512-tHqDp0ZZ/KF+j3+OlPbxHoYRkMrHQrxU8D0kUoUhZEevj+j/sMV2pXmZ2jL4oND2o6PyTsCYz1VRqZr7mBfaTg==", + "dev": true + } } }, "@types/animejs": { @@ -118,34 +146,9 @@ "dev": true }, "@types/zen-observable": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.0.tgz", - "integrity": "sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==" - }, - "@vaadin/router": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@vaadin/router/-/router-1.7.1.tgz", - "integrity": "sha512-tJK0yGy3/q4wCRhaDwuB6t5EyoTxFULNegQhSVxjCkygtVSUWT9YjgLGpWqwSr6XzXCd+lk/EpkpKbtEN6KHRQ==", - "dev": true, - "requires": { - "@vaadin/vaadin-usage-statistics": "^2.1.0", - "path-to-regexp": "2.4.0" - } - }, - "@vaadin/vaadin-development-mode-detector": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.4.tgz", - "integrity": "sha512-S+PaFrZpK8uBIOnIHxjntTrgumd5ztuCnZww96ydGKXgo9whXfZsbMwDuD/102a/IuPUMyF+dh/n3PbWzJ6igA==", - "dev": true - }, - "@vaadin/vaadin-usage-statistics": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.1.0.tgz", - "integrity": "sha512-e81nbqY5zsaYhLJuOVkJkB/Um1pGK5POIqIlTNhUfjeoyGaJ63tiX8+D5n6F+GgVxUTLUarsKa6SKRcQel0AzA==", - "dev": true, - "requires": { - "@vaadin/vaadin-development-mode-detector": "^2.0.0" - } + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.1.tgz", + "integrity": "sha512-wmk0xQI6Yy7Fs/il4EpOcflG4uonUpYGqvZARESLc2oy4u69fkatFLbJOeW4Q6awO15P4rduAe6xkwHevpXcUQ==" }, "@wry/context": { "version": "0.4.4", @@ -185,35 +188,35 @@ } }, "apollo-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.4.tgz", - "integrity": "sha512-7X5aGbqaOWYG+SSkCzJNHTz2ZKDcyRwtmvW4mGVLRqdQs+HxfXS4dUS2CcwrAj449se6tZ6NLUMnjko4KMt3KA==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz", + "integrity": "sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==", "requires": { - "apollo-utilities": "^1.3.3", + "apollo-utilities": "^1.3.4", "tslib": "^1.10.0" } }, "apollo-cache-inmemory": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.5.tgz", - "integrity": "sha512-koB76JUDJaycfejHmrXBbWIN9pRKM0Z9CJGQcBzIOtmte1JhEBSuzsOUu7NQgiXKYI4iGoMREcnaWffsosZynA==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz", + "integrity": "sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==", "requires": { - "apollo-cache": "^1.3.4", - "apollo-utilities": "^1.3.3", + "apollo-cache": "^1.3.5", + "apollo-utilities": "^1.3.4", "optimism": "^0.10.0", "ts-invariant": "^0.4.0", "tslib": "^1.10.0" } }, "apollo-client": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.8.tgz", - "integrity": "sha512-0zvJtAcONiozpa5z5zgou83iEKkBaXhhSSXJebFHRXs100SecDojyUWKjwTtBPn9HbM6o5xrvC5mo9VQ5fgAjw==", + "version": "2.6.10", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz", + "integrity": "sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==", "requires": { "@types/zen-observable": "^0.8.0", - "apollo-cache": "1.3.4", + "apollo-cache": "1.3.5", "apollo-link": "^1.0.0", - "apollo-utilities": "1.3.3", + "apollo-utilities": "1.3.4", "symbol-observable": "^1.0.2", "ts-invariant": "^0.4.0", "tslib": "^1.10.0", @@ -270,9 +273,9 @@ } }, "apollo-utilities": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.3.tgz", - "integrity": "sha512-F14aX2R/fKNYMvhuP2t9GD9fggID7zp5I96MF5QeKYWDWTrkRdHRp4+SVfXUVN+cXOaB/IebfvRtzPf25CM0zw==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz", + "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==", "requires": { "@wry/equality": "^0.1.2", "fast-json-stable-stringify": "^2.0.0", @@ -928,6 +931,11 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, + "infinite-carousel-wc": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/infinite-carousel-wc/-/infinite-carousel-wc-0.5.3.tgz", + "integrity": "sha512-EFnTaoS1P0s3llBScniG525E81PciUlsKOcX9SI6AiQmKb1IIcRmJo6O6u2o38pWWOHaqgp++mXfovXcIAPO7Q==" + }, "is-absolute-url": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", @@ -1102,6 +1110,11 @@ "minimist": "0.0.8" } }, + "mousetrap": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz", + "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -1276,12 +1289,6 @@ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, - "path-to-regexp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz", - "integrity": "sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w==", - "dev": true - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -1921,9 +1928,9 @@ } }, "subscriptions-transport-ws": { - "version": "0.9.16", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz", - "integrity": "sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==", + "version": "0.9.18", + "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz", + "integrity": "sha512-tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==", "requires": { "backo2": "^1.0.2", "eventemitter3": "^3.1.0", diff --git a/package.json b/package.json index e05ea26..2877df5 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,9 @@ "author": "Kristiyan Tachev", "license": "MIT", "devDependencies": { - "@rxdi/firelink": "^0.7.52", - "@rxdi/forms": "^0.7.50", - "@rxdi/lit-html": "^0.7.51", - "@rxdi/router": "^0.7.40", + "@rxdi/forms": "^0.7.82", + "@rxdi/lit-html": "^0.7.82", + "@rxdi/router": "^0.7.82", "@types/animejs": "^3.1.0", "@types/js-yaml": "^3.12.1", "@types/marked": "^0.7.0", @@ -41,7 +40,7 @@ "cssnano": "^4.1.10", "graphql": "^14.5.8", "husky": "^3.0.9", - "typescript": "^3.5.3" + "typescript": "^4.0.5" }, "browserslist": [ "last 1 chrome versions" @@ -50,10 +49,13 @@ "module": "./index.js", "typings": "./index.d.ts", "dependencies": { - "@rxdi/core": "^0.7.50", - "@rxdi/graphql-client": "^0.7.50", + "@rhtml/di": "^0.0.62", + "@rxdi/core": "^0.7.82", + "@rxdi/graphql-client": "^0.7.82", + "@rxdi/hotkeys": "^0.7.82", "animejs": "^3.1.0", "graphql-tag": "^2.10.1", + "infinite-carousel-wc": "^0.5.3", "js-yaml": "^3.13.1", "marked": "^0.6.2", "router-slot": "^1.5.2", diff --git a/src/action-control/apps.service.ts b/src/action-control/apps.service.ts new file mode 100644 index 0000000..fca59e9 --- /dev/null +++ b/src/action-control/apps.service.ts @@ -0,0 +1,49 @@ +import { Injectable } from '@rxdi/core'; +import { MenuOptions } from './menu.interface'; +import { BehaviorSubject } from 'rxjs'; + +@Injectable() +export class AppsService { + selectedIndex = new BehaviorSubject(0); + + options = new BehaviorSubject({ + swiper: { + effect: 'coverflow', + }, + disableAnimations: false, + animations: { speed: { slideOutUp: 300, zoomIn: 300, zoomOut: 300 } }, + }); + + OnInit() { + const exists = this.getLocalStorage(); + if (exists) { + this.options.next(JSON.parse(exists)); + } else { + this.updateLocalStorage(); + } + } + + getOptionsAsObservable() { + return this.options.asObservable(); + } + + setOptions(options: MenuOptions) { + this.options.next(options); + this.updateLocalStorage(); + } + + toggleAnimations() { + const options = this.options.getValue(); + options.disableAnimations = !options.disableAnimations; + this.options.next(options); + this.updateLocalStorage(); + } + + private getLocalStorage() { + return localStorage.getItem('apps-options'); + } + + private updateLocalStorage() { + localStorage.setItem('apps-options', JSON.stringify(this.options.getValue())); + } +} diff --git a/src/action-control/decorators/view.ts b/src/action-control/decorators/view.ts new file mode 100644 index 0000000..9464b92 --- /dev/null +++ b/src/action-control/decorators/view.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { Container } from '@rxdi/core'; +import { Component } from '@rxdi/lit-html'; +import { Card } from '../generic-apps.modal'; +import { BehaviorSubject, isObservable, Observable } from 'rxjs'; + +type FN = (deps: T) => Promise | Card[]; + +export interface ViewOptions { + onUpdateFirst?: (self: T) => void; + cards: (self: T) => Promise> | FN | Observable>; + deps?: any; +} +function randomString(len, charSet?) { + charSet = charSet || 'abcdefghijklmnopqrstuvwxyz'; + let str = ''; + for (let i = 0; i < len; i++) { + const randomPoz = Math.floor(Math.random() * charSet.length); + str += charSet.substring(randomPoz, randomPoz + 1); + } + return str; +} +export const View = (options: ViewOptions, config?) => < + K extends new (...args: any[]) => {} +>( + Base: K, +) => { + return Component({ + ...config, + selector: [randomString(8), '-', randomString(8)].join(''), + })( + class extends Base { + cards: BehaviorSubject; + async OnUpdateFirst() { + let cards = await options.cards.call(this); + if (isObservable(cards)) { + cards = await cards.toPromise(); + } + options.deps = options.deps || []; + this.cards.next(await cards(options.deps.map((d) => Container.get(d)))); + } + }, + ); +}; diff --git a/src/action-control/generic-apps.modal.ts b/src/action-control/generic-apps.modal.ts new file mode 100644 index 0000000..0ce4371 --- /dev/null +++ b/src/action-control/generic-apps.modal.ts @@ -0,0 +1,416 @@ +import { Reader } from '@rhtml/di'; +import { Inject, Injector } from '@rxdi/core'; +import { HotKeysService } from '@rxdi/hotkeys'; +import { + Component, + css, + html, + LitElement, + svg, + TemplateResult, +} from '@rxdi/lit-html'; +import { Router } from '@rxdi/router'; +import { ModalService } from '../modal'; +import { MODAL_DIALOG_DATA } from '../modal/interface'; +import { ResponsiveService } from '../services'; +import { animateElement, Animations } from '../styles/animations'; +import { BehaviorSubject, combineLatest, of } from 'rxjs'; +import { map } from 'rxjs/operators'; + +import { GenericAppsService } from './generic-apps.service'; +import { MenuOptions } from './menu.interface'; +import { SwiperCss } from './swiper/swiper.css'; +import Swiper from './swiper/swiper.min'; + +const style = css` + .swiper-container { + width: 100%; + height: 90%; + } + + .swiper-pagination { + position: absolute; + bottom: 0; + } + .swiper-slide { + text-align: center; + font-size: 18px; + + /* Center slide text vertically */ + display: -webkit-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-justify-content: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + } + + .append-buttons { + text-align: center; + margin-top: 20px; + } + .append-buttons a { + display: inline-block; + border: 1px solid #007aff; + color: #007aff; + text-decoration: none; + padding: 4px 10px; + border-radius: 4px; + margin: 0 10px; + font-size: 13px; + } + + .back-button { + display: none; + cursor: pointer; + text-align: center; + padding: 32px; + background-color: rgba(0, 0, 0, 0.1); + height: 100%; + } + + .back-button:hover { + background-color: rgba(0, 0, 0, 0.3); + } + + @supports (-webkit-touch-callout: none) { + .back-button { + display: block; + } + } + + a { + cursor: pointer; + } + .filter { + filter: drop-shadow(0px 0px 35px rgba(0, 0, 0, 0.7)); + } +`; + +export interface Card { + path?: string; + backPath?: string; + template: TemplateResult; +} + +interface State { + options: MenuOptions; + _monad: { isMobile: boolean }; + cards: Card[]; +} + +/** + * @customElement rx-generic-modal + */ +@Component({ + selector: 'rx-generic-modal', + style: css` + .close { + position: absolute; + z-index: 1010; + padding: 5px; + top: 10px; + right: 10px; + border: none; + cursor: pointer; + text-transform: none; + outline: none; + background-color: transparent; + } + svg:hover line { + stroke: white; + } + `, + template(this: GenericModal) { + return html` + + + ({ + _monad: { isMobile: this.responsive.getBoth().width <= 600 }, + options, + cards, + })), + )} + > + void, SR: ShadowRoot) => { + if (!s.cards.length) { + return html``; + } + const Select = (selector: string): HTMLElement => + SR.querySelector(selector); + + const container = Select('.swiper-container'); + + let selectedSlide: HTMLElement; + const { _monad, cards, options } = s; + + if (container) { + if (this.swiper) { + this.swiper.destroy(true, true); + } + this.swiper = this.initSwiper({ + pagination: Select('.swiper-pagination'), + prev: Select('.swiper-button-prev'), + next: Select('.swiper-button-next'), + container, + })(options); + + const path = window.location.href.replace(window.location.origin, ''); + const trace = this.genericAppsService.getLastTrace(); + + if (path === trace?.path) { + this.swiper.slideTo(trace.activeIndex, 0); + } + const handler = () => + this.goToPage(this.swiper.activeIndex)([cards, options]); + + this.swiper.on('slideChange', () => { + if (selectedSlide) { + selectedSlide.removeEventListener('click', handler); + } + this.genericAppsService.addTrace({ + activeIndex: this.swiper.activeIndex, + path, + }); + setTimeout(() => { + this.setShadowToActivePage(); + selectedSlide = Select('.swiper-slide-active'); + selectedSlide.addEventListener('click', handler); + }); + }); + + selectedSlide = Select('.swiper-slide-active'); + selectedSlide.addEventListener('click', handler); + + this.setShadowToActivePage(); + this.genericAppsService.addTrace({ + activeIndex: this.swiper.activeIndex, + path, + }); + + if (!this.rendered && !options.disableAnimations) { + const zoomInOptions = options.animations?.speed?.zoomIn; + animateElement( + container, + 'zoomIn', + `duration-${zoomInOptions ? zoomInOptions : 300}`, + ).subscribe(); + } + + this.enterKey.subscribe(() => + this.goToPage(this.swiper.activeIndex)([cards, options]), + ); + this.backKey.subscribe(() => this.onBackSpace()([cards, options])); + this.leftKey.subscribe(() => this.swiper.slidePrev()); + this.rightKey.subscribe(() => this.swiper.slideNext()); + this.rendered = true; + } + + return html` + + +
{ + e.stopPropagation(); + e.preventDefault(); + this.onBackSpace()([cards, options]); + }} + class="swiper-container" + > +
+ ${cards.map( + (c, i) => html` +
{ + if (this.swiper.activeIndex === i + 1) { + this.swiper.slidePrev(); + } else if (this.swiper.activeIndex === i - 1) { + this.swiper.slideNext(); + } + }} + class="swiper-slide swiper-slide-${i}" + data-history=${i} + > +
+ ${c.template} +
+
+ `, + )} +
+

+
+ + +
+
+
+
this.onBackSpace()([cards, options])} + > + BACK +
+ `; + }} + >
+
+ `; + }, +}) +export class GenericModal extends LitElement { + @Injector(MODAL_DIALOG_DATA) + private data: { + cards: BehaviorSubject; + options: BehaviorSubject; + }; + + @Inject(ModalService) + private modalService: ModalService; + + @Inject(HotKeysService) + private hotkeys: HotKeysService; + + @Inject(ResponsiveService) + private responsive: ResponsiveService; + + @Router() + private router: Router; + + @Inject(GenericAppsService) + private genericAppsService: GenericAppsService; + + private swiper: Swiper; + + private rendered: boolean; + + private leftKey = this.hotkeys.bind('left'); + private rightKey = this.hotkeys.bind('right'); + private enterKey = this.hotkeys.bind('enter'); + private backKey = this.hotkeys.bind('backspace'); + + private goToPage(index: number): Reader<[Card[], MenuOptions], void> { + return ([cards, options]) => { + const card = cards[index]; + if (card.path) { + const slideOutUpOptions = options.animations?.speed?.slideOutUp; + if (options.disableAnimations) { + this.router.go(card.path); + } else { + animateElement( + this.swiper.slides[index], + 'slideOutUp', + `duration-${slideOutUpOptions ? slideOutUpOptions : 200}`, + ).subscribe(() => this.router.go(card.path)); + } + } + }; + } + + private onBackSpace(): Reader<[Card[], MenuOptions], Promise> { + return async ([cards, options]) => { + const card = cards[this.swiper.activeIndex]; + if (card.backPath) { + const zoomOutOptions = options.animations?.speed?.zoomOut; + await Promise.all( + [...(Array.from(this.swiper.slides) as HTMLElement[])].map( + (e) => + !options.disableAnimations && + animateElement( + e, + 'zoomOut', + `duration-${zoomOutOptions ? zoomOutOptions : 200}`, + ).toPromise(), + ), + ); + this.router.go(card.backPath); + this.genericAppsService.popTrace(); + } + }; + } + + private initSwiper(dom: { + pagination: HTMLElement; + prev: HTMLElement; + next: HTMLElement; + container: HTMLElement; + }): Reader { + return (options) => { + return new Swiper( + dom.container, + Object.assign( + { + slidesPerView: 3, + coverflowEffect: { + rotate: 50, + stretch: 50, + depth: 100, + modifier: 1, + slideShadows: false, + }, + effect: 'coverflow' as never, + breakpoints: { + 640: { + slidesPerView: 1, + }, + 768: { + slidesPerView: 2, + }, + 1024: { + slidesPerView: 3, + }, + }, + centeredSlides: true, + spaceBetween: 30, + pagination: { + el: dom.pagination, + type: 'fraction', + }, + navigation: { + nextEl: dom.next, + prevEl: dom.prev, + }, + }, + options ? options.swiper : {}, + ), + ); + }; + } + + private setShadowToActivePage() { + const activeSlideElement = this.swiper.slides[this.swiper.activeIndex]; + [...Array.from(this.swiper.slides)].map((slide) => + slide.classList.remove('filter'), + ); + + activeSlideElement.classList.add('filter'); + } +} diff --git a/src/action-control/generic-apps.service.ts b/src/action-control/generic-apps.service.ts new file mode 100644 index 0000000..2d9c638 --- /dev/null +++ b/src/action-control/generic-apps.service.ts @@ -0,0 +1,61 @@ +import { Injectable } from '@rxdi/core'; +import { BehaviorSubject, fromEvent } from 'rxjs'; +import { filter } from 'rxjs/operators'; + +export interface Trace { + activeIndex: number; + path: string; +} +@Injectable() +export class GenericAppsService { + trace: BehaviorSubject = new BehaviorSubject([]); + + OnInit() { + const cache = localStorage.getItem('trace'); + if (cache) { + this.trace.next(JSON.parse(cache)); + } + } + + listenForEscapeKey() { + return fromEvent(document, 'keyup').pipe( + filter((e) => e['key'] === 'Escape'), + ); + } + + addTrace(trace: Trace) { + let traces = this.trace.getValue(); + const traceExists = traces.find((t) => t.path === trace.path); + if (traceExists) { + if (traceExists.activeIndex !== trace.activeIndex) { + traces = traces.filter((t) => t.path !== trace.path); + } else { + return; + } + } + traces.push(trace); + this.trace.next(traces); + localStorage.setItem('trace', JSON.stringify(this.trace.getValue())); + } + + popTrace() { + const traces = this.trace.getValue(); + traces.pop(); + this.trace.next(traces); + localStorage.setItem('trace', JSON.stringify(this.trace.getValue())); + } + + clearTraces() { + this.trace.next([]); + localStorage.removeItem('trace'); + } + + getLastTrace() { + const traces = this.trace.getValue(); + return traces[traces.length - 1]; + } + + traceAsObservable() { + return this.trace.asObservable(); + } +} diff --git a/src/action-control/generic-menu.ts b/src/action-control/generic-menu.ts new file mode 100644 index 0000000..c024906 --- /dev/null +++ b/src/action-control/generic-menu.ts @@ -0,0 +1,94 @@ +import { Inject } from '@rxdi/core'; +import { css, LitElement, TemplateResult } from '@rxdi/lit-html'; +import { ModalService } from '../modal'; +import { BehaviorSubject } from 'rxjs'; + +import { Card, GenericModal } from './generic-apps.modal'; +import { MenuOptions } from './menu.interface'; + +export class GenericMenuComponent extends LitElement { + @Inject(ModalService) + private modalProvider: ModalService; + + constructor( + private template: TemplateResult, + public cards: BehaviorSubject = new BehaviorSubject([]), + private options: BehaviorSubject> = new BehaviorSubject( + {}, + ), + ) { + super(); + } + + render() { + if (this.template) { + return this.template; + } + throw new Error('Please specifiy generic template'); + } + + OnInit() { + this.openDialog().subscribe(); + } + + private openDialog() { + return this.modalProvider.openComponent( + GenericModal, + { + cards: this.cards, + options: this.options, + }, + { + backdropClose: true, + style: css` + .wrapper { + position: fixed; + top: 0; + left: 0; + align-items: center; + justify-content: center; + pointer-events: none; + width: 100%; + height: 100%; + z-index: 1000; + } + + @keyframes scale { + from { + transform: scale(0.4); + } + to { + transform: scale(1); + } + } + + @keyframes blur { + to { + backdrop-filter: blur(20px); + } + } + + .backdrop { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + pointer-events: all; + z-index: 10; + backdrop-filter: blur(25px); + /* animation: blur 1s linear forwards; */ + } + + .content { + z-index: 20; + position: absolute; + width: 100%; + height: 100%; + pointer-events: all; + } + `, + }, + ); + } +} diff --git a/src/action-control/index.ts b/src/action-control/index.ts new file mode 100644 index 0000000..ffeb14d --- /dev/null +++ b/src/action-control/index.ts @@ -0,0 +1,4 @@ +export * from './modal'; +export * from './decorators/view'; +export * from './apps.service'; +export * from './generic-apps.service'; diff --git a/src/action-control/menu.interface.ts b/src/action-control/menu.interface.ts new file mode 100644 index 0000000..9416675 --- /dev/null +++ b/src/action-control/menu.interface.ts @@ -0,0 +1,9 @@ +import { SwiperOptions } from './swiper/swiper.min'; + +export interface MenuOptions { + disableAnimations: boolean; + animations: { + speed: { zoomOut: number; slideOutUp: number; zoomIn: number }; + }; + swiper: Partial; +} diff --git a/src/action-control/modal.ts b/src/action-control/modal.ts new file mode 100644 index 0000000..ffa9b32 --- /dev/null +++ b/src/action-control/modal.ts @@ -0,0 +1,32 @@ +import { Inject } from '@rxdi/core'; +import { html } from '@rxdi/lit-html'; +import { Card } from './generic-apps.modal'; +import { GenericMenuComponent } from './generic-menu'; +import { BehaviorSubject } from 'rxjs'; + +import { AppsService } from './apps.service'; +import { SwiperOptions } from './swiper/swiper.min'; + +export interface MenuOptions { + disableAnimations: boolean; + animations: { + speed: { zoomOut: number; slideOutUp: number; zoomIn: number }; + }; + swiper: Partial; +} + +export class AppsModalComponent extends GenericMenuComponent { + @Inject(AppsService) + private static appsService: AppsService; + + constructor( + cards?: BehaviorSubject, + options?: BehaviorSubject + ) { + super( + html``, + cards, + options || AppsModalComponent.appsService.options + ); + } +} diff --git a/src/action-control/swiper/swiper.css.ts b/src/action-control/swiper/swiper.css.ts new file mode 100644 index 0000000..423d496 --- /dev/null +++ b/src/action-control/swiper/swiper.css.ts @@ -0,0 +1,715 @@ +import { css } from '@rxdi/lit-html'; + +export const SwiperCss = css` + /** + * Swiper 4.5.3 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * http://www.idangero.us/swiper/ + * + * Copyright 2014-2019 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: October 16, 2019 + */ + .swiper-container { + margin-left: auto; + margin-right: auto; + position: relative; + overflow: hidden; + list-style: none; + padding: 0; + /* Fix of Webkit flickering */ + z-index: 1; + } + .swiper-container-no-flexbox .swiper-slide { + float: left; + } + .swiper-container-vertical > .swiper-wrapper { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + } + .swiper-wrapper { + position: relative; + width: 100%; + height: 100%; + z-index: 1; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + -o-transition-property: transform; + transition-property: transform; + transition-property: transform, -webkit-transform; + -webkit-box-sizing: content-box; + box-sizing: content-box; + } + .swiper-container-android .swiper-slide, + .swiper-wrapper { + -webkit-transform: translate3d(0px, 0, 0); + transform: translate3d(0px, 0, 0); + } + .swiper-container-multirow > .swiper-wrapper { + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + } + .swiper-container-free-mode > .swiper-wrapper { + -webkit-transition-timing-function: ease-out; + -o-transition-timing-function: ease-out; + transition-timing-function: ease-out; + margin: 0 auto; + } + .swiper-slide { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100%; + height: 100%; + position: relative; + -webkit-transition-property: -webkit-transform; + transition-property: -webkit-transform; + -o-transition-property: transform; + transition-property: transform; + transition-property: transform, -webkit-transform; + } + .swiper-slide-invisible-blank { + visibility: hidden; + } + /* Auto Height */ + .swiper-container-autoheight, + .swiper-container-autoheight .swiper-slide { + height: auto; + } + .swiper-container-autoheight .swiper-wrapper { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-transition-property: height, -webkit-transform; + transition-property: height, -webkit-transform; + -o-transition-property: transform, height; + transition-property: transform, height; + transition-property: transform, height, -webkit-transform; + } + /* 3D Effects */ + .swiper-container-3d { + -webkit-perspective: 1200px; + perspective: 1200px; + } + .swiper-container-3d .swiper-wrapper, + .swiper-container-3d .swiper-slide, + .swiper-container-3d .swiper-slide-shadow-left, + .swiper-container-3d .swiper-slide-shadow-right, + .swiper-container-3d .swiper-slide-shadow-top, + .swiper-container-3d .swiper-slide-shadow-bottom, + .swiper-container-3d .swiper-cube-shadow { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + } + .swiper-container-3d .swiper-slide-shadow-left, + .swiper-container-3d .swiper-slide-shadow-right, + .swiper-container-3d .swiper-slide-shadow-top, + .swiper-container-3d .swiper-slide-shadow-bottom { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 10; + } + .swiper-container-3d .swiper-slide-shadow-left { + background-image: -webkit-gradient( + linear, + right top, + left top, + from(rgba(0, 0, 0, 0.5)), + to(rgba(0, 0, 0, 0)) + ); + background-image: -webkit-linear-gradient( + right, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: -o-linear-gradient( + right, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: linear-gradient( + to left, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + } + .swiper-container-3d .swiper-slide-shadow-right { + background-image: -webkit-gradient( + linear, + left top, + right top, + from(rgba(0, 0, 0, 0.5)), + to(rgba(0, 0, 0, 0)) + ); + background-image: -webkit-linear-gradient( + left, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: -o-linear-gradient( + left, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: linear-gradient( + to right, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + } + .swiper-container-3d .swiper-slide-shadow-top { + background-image: -webkit-gradient( + linear, + left bottom, + left top, + from(rgba(0, 0, 0, 0.5)), + to(rgba(0, 0, 0, 0)) + ); + background-image: -webkit-linear-gradient( + bottom, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: -o-linear-gradient( + bottom, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: linear-gradient( + to top, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + } + .swiper-container-3d .swiper-slide-shadow-bottom { + background-image: -webkit-gradient( + linear, + left top, + left bottom, + from(rgba(0, 0, 0, 0.5)), + to(rgba(0, 0, 0, 0)) + ); + background-image: -webkit-linear-gradient( + top, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: -o-linear-gradient( + top, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + background-image: linear-gradient( + to bottom, + rgba(0, 0, 0, 0.5), + rgba(0, 0, 0, 0) + ); + } + /* IE10 Windows Phone 8 Fixes */ + .swiper-container-wp8-horizontal, + .swiper-container-wp8-horizontal > .swiper-wrapper { + -ms-touch-action: pan-y; + touch-action: pan-y; + } + .swiper-container-wp8-vertical, + .swiper-container-wp8-vertical > .swiper-wrapper { + -ms-touch-action: pan-x; + touch-action: pan-x; + } + .swiper-button-prev, + .swiper-button-next { + position: absolute; + top: 50%; + width: 27px; + height: 44px; + margin-top: -22px; + z-index: 10; + cursor: pointer; + background-size: 27px 44px; + background-position: center; + background-repeat: no-repeat; + } + .swiper-button-prev.swiper-button-disabled, + .swiper-button-next.swiper-button-disabled { + opacity: 0.35; + cursor: auto; + pointer-events: none; + } + .swiper-button-prev, + .swiper-container-rtl .swiper-button-next { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); + left: 10px; + right: auto; + } + .swiper-button-next, + .swiper-container-rtl .swiper-button-prev { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E"); + right: 10px; + left: auto; + } + .swiper-button-prev.swiper-button-white, + .swiper-container-rtl .swiper-button-next.swiper-button-white { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); + } + .swiper-button-next.swiper-button-white, + .swiper-container-rtl .swiper-button-prev.swiper-button-white { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E"); + } + .swiper-button-prev.swiper-button-black, + .swiper-container-rtl .swiper-button-next.swiper-button-black { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); + } + .swiper-button-next.swiper-button-black, + .swiper-container-rtl .swiper-button-prev.swiper-button-black { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E"); + } + .swiper-button-lock { + display: none; + } + .swiper-pagination { + position: absolute; + text-align: center; + -webkit-transition: 300ms opacity; + -o-transition: 300ms opacity; + transition: 300ms opacity; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + z-index: 10; + } + .swiper-pagination.swiper-pagination-hidden { + opacity: 0; + } + /* Common Styles */ + .swiper-pagination-fraction, + .swiper-pagination-custom, + .swiper-container-horizontal > .swiper-pagination-bullets { + bottom: 10px; + left: 0; + width: 100%; + } + /* Bullets */ + .swiper-pagination-bullets-dynamic { + overflow: hidden; + font-size: 0; + } + .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + -webkit-transform: scale(0.33); + -ms-transform: scale(0.33); + transform: scale(0.33); + position: relative; + } + .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + } + .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { + -webkit-transform: scale(0.66); + -ms-transform: scale(0.66); + transform: scale(0.66); + } + .swiper-pagination-bullets-dynamic + .swiper-pagination-bullet-active-prev-prev { + -webkit-transform: scale(0.33); + -ms-transform: scale(0.33); + transform: scale(0.33); + } + .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { + -webkit-transform: scale(0.66); + -ms-transform: scale(0.66); + transform: scale(0.66); + } + .swiper-pagination-bullets-dynamic + .swiper-pagination-bullet-active-next-next { + -webkit-transform: scale(0.33); + -ms-transform: scale(0.33); + transform: scale(0.33); + } + .swiper-pagination-bullet { + width: 8px; + height: 8px; + display: inline-block; + border-radius: 100%; + background: #000; + opacity: 0.2; + } + button.swiper-pagination-bullet { + border: none; + margin: 0; + padding: 0; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + } + .swiper-pagination-clickable .swiper-pagination-bullet { + cursor: pointer; + } + .swiper-pagination-bullet-active { + opacity: 1; + background: #007aff; + } + .swiper-container-vertical > .swiper-pagination-bullets { + right: 10px; + top: 50%; + -webkit-transform: translate3d(0px, -50%, 0); + transform: translate3d(0px, -50%, 0); + } + .swiper-container-vertical + > .swiper-pagination-bullets + .swiper-pagination-bullet { + margin: 6px 0; + display: block; + } + .swiper-container-vertical + > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + width: 8px; + } + .swiper-container-vertical + > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic + .swiper-pagination-bullet { + display: inline-block; + -webkit-transition: 200ms top, 200ms -webkit-transform; + transition: 200ms top, 200ms -webkit-transform; + -o-transition: 200ms transform, 200ms top; + transition: 200ms transform, 200ms top; + transition: 200ms transform, 200ms top, 200ms -webkit-transform; + } + .swiper-container-horizontal + > .swiper-pagination-bullets + .swiper-pagination-bullet { + margin: 0 4px; + } + .swiper-container-horizontal + > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + left: 50%; + -webkit-transform: translateX(-50%); + -ms-transform: translateX(-50%); + transform: translateX(-50%); + white-space: nowrap; + } + .swiper-container-horizontal + > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic + .swiper-pagination-bullet { + -webkit-transition: 200ms left, 200ms -webkit-transform; + transition: 200ms left, 200ms -webkit-transform; + -o-transition: 200ms transform, 200ms left; + transition: 200ms transform, 200ms left; + transition: 200ms transform, 200ms left, 200ms -webkit-transform; + } + .swiper-container-horizontal.swiper-container-rtl + > .swiper-pagination-bullets-dynamic + .swiper-pagination-bullet { + -webkit-transition: 200ms right, 200ms -webkit-transform; + transition: 200ms right, 200ms -webkit-transform; + -o-transition: 200ms transform, 200ms right; + transition: 200ms transform, 200ms right; + transition: 200ms transform, 200ms right, 200ms -webkit-transform; + } + /* Progress */ + .swiper-pagination-progressbar { + background: rgba(0, 0, 0, 0.25); + position: absolute; + } + .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + background: #007aff; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + -webkit-transform-origin: left top; + -ms-transform-origin: left top; + transform-origin: left top; + } + .swiper-container-rtl + .swiper-pagination-progressbar + .swiper-pagination-progressbar-fill { + -webkit-transform-origin: right top; + -ms-transform-origin: right top; + transform-origin: right top; + } + .swiper-container-horizontal > .swiper-pagination-progressbar, + .swiper-container-vertical + > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { + width: 100%; + height: 4px; + left: 0; + top: 0; + } + .swiper-container-vertical > .swiper-pagination-progressbar, + .swiper-container-horizontal + > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { + width: 4px; + height: 100%; + left: 0; + top: 0; + } + .swiper-pagination-white .swiper-pagination-bullet-active { + background: #ffffff; + } + .swiper-pagination-progressbar.swiper-pagination-white { + background: rgba(255, 255, 255, 0.25); + } + .swiper-pagination-progressbar.swiper-pagination-white + .swiper-pagination-progressbar-fill { + background: #ffffff; + } + .swiper-pagination-black .swiper-pagination-bullet-active { + background: #000000; + } + .swiper-pagination-progressbar.swiper-pagination-black { + background: rgba(0, 0, 0, 0.25); + } + .swiper-pagination-progressbar.swiper-pagination-black + .swiper-pagination-progressbar-fill { + background: #000000; + } + .swiper-pagination-lock { + display: none; + } + /* Scrollbar */ + .swiper-scrollbar { + border-radius: 10px; + position: relative; + -ms-touch-action: none; + background: rgba(0, 0, 0, 0.1); + } + .swiper-container-horizontal > .swiper-scrollbar { + position: absolute; + left: 1%; + bottom: 3px; + z-index: 50; + height: 5px; + width: 98%; + } + .swiper-container-vertical > .swiper-scrollbar { + position: absolute; + right: 3px; + top: 1%; + z-index: 50; + width: 5px; + height: 98%; + } + .swiper-scrollbar-drag { + height: 100%; + width: 100%; + position: relative; + background: rgba(0, 0, 0, 0.5); + border-radius: 10px; + left: 0; + top: 0; + } + .swiper-scrollbar-cursor-drag { + cursor: move; + } + .swiper-scrollbar-lock { + display: none; + } + .swiper-zoom-container { + width: 100%; + height: 100%; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + text-align: center; + } + .swiper-zoom-container > img, + .swiper-zoom-container > svg, + .swiper-zoom-container > canvas { + max-width: 100%; + max-height: 100%; + -o-object-fit: contain; + object-fit: contain; + } + .swiper-slide-zoomed { + cursor: move; + } + /* Preloader */ + .swiper-lazy-preloader { + width: 42px; + height: 42px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -21px; + margin-top: -21px; + z-index: 10; + -webkit-transform-origin: 50%; + -ms-transform-origin: 50%; + transform-origin: 50%; + -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite; + animation: swiper-preloader-spin 1s steps(12, end) infinite; + } + .swiper-lazy-preloader:after { + display: block; + content: ''; + width: 100%; + height: 100%; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-position: 50%; + background-size: 100%; + background-repeat: no-repeat; + } + .swiper-lazy-preloader-white:after { + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + } + @-webkit-keyframes swiper-preloader-spin { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } + } + @keyframes swiper-preloader-spin { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } + } + /* a11y */ + .swiper-container .swiper-notification { + position: absolute; + left: 0; + top: 0; + pointer-events: none; + opacity: 0; + z-index: -1000; + } + .swiper-container-fade.swiper-container-free-mode .swiper-slide { + -webkit-transition-timing-function: ease-out; + -o-transition-timing-function: ease-out; + transition-timing-function: ease-out; + } + .swiper-container-fade .swiper-slide { + pointer-events: none; + -webkit-transition-property: opacity; + -o-transition-property: opacity; + transition-property: opacity; + } + .swiper-container-fade .swiper-slide .swiper-slide { + pointer-events: none; + } + .swiper-container-fade .swiper-slide-active, + .swiper-container-fade .swiper-slide-active .swiper-slide-active { + pointer-events: auto; + } + .swiper-container-cube { + overflow: visible; + } + .swiper-container-cube .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; + visibility: hidden; + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + width: 100%; + height: 100%; + } + .swiper-container-cube .swiper-slide .swiper-slide { + pointer-events: none; + } + .swiper-container-cube.swiper-container-rtl .swiper-slide { + -webkit-transform-origin: 100% 0; + -ms-transform-origin: 100% 0; + transform-origin: 100% 0; + } + .swiper-container-cube .swiper-slide-active, + .swiper-container-cube .swiper-slide-active .swiper-slide-active { + pointer-events: auto; + } + .swiper-container-cube .swiper-slide-active, + .swiper-container-cube .swiper-slide-next, + .swiper-container-cube .swiper-slide-prev, + .swiper-container-cube .swiper-slide-next + .swiper-slide { + pointer-events: auto; + visibility: visible; + } + .swiper-container-cube .swiper-slide-shadow-top, + .swiper-container-cube .swiper-slide-shadow-bottom, + .swiper-container-cube .swiper-slide-shadow-left, + .swiper-container-cube .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } + .swiper-container-cube .swiper-cube-shadow { + position: absolute; + left: 0; + bottom: 0px; + width: 100%; + height: 100%; + background: #000; + opacity: 0.6; + -webkit-filter: blur(50px); + filter: blur(50px); + z-index: 0; + } + .swiper-container-flip { + overflow: visible; + } + .swiper-container-flip .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; + } + .swiper-container-flip .swiper-slide .swiper-slide { + pointer-events: none; + } + .swiper-container-flip .swiper-slide-active, + .swiper-container-flip .swiper-slide-active .swiper-slide-active { + pointer-events: auto; + } + .swiper-container-flip .swiper-slide-shadow-top, + .swiper-container-flip .swiper-slide-shadow-bottom, + .swiper-container-flip .swiper-slide-shadow-left, + .swiper-container-flip .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + } + .swiper-container-coverflow .swiper-wrapper { + /* Windows 8 IE 10 fix */ + -ms-perspective: 1200px; + } +`; diff --git a/src/action-control/swiper/swiper.min.d.ts b/src/action-control/swiper/swiper.min.d.ts new file mode 100644 index 0000000..43dacdb --- /dev/null +++ b/src/action-control/swiper/swiper.min.d.ts @@ -0,0 +1,1888 @@ +// Type definitions for Swiper 4.4 +// Project: https://github.com/nolimits4web/Swiper, http://www.idangero.us/swiper +// Definitions by: Sebastián Galiano +// Luca Trazzi +// Eugene Matseruk +// Luiz M. +// Justin Abene +// Asif Rahman +// Liad Idan +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.9 + +/** + * Common Swiper events. + */ +export type CommonEvent = + | 'init' + | 'beforeDestroy' + | 'slideChange' + | 'slideChangeTransitionStart' + | 'slideChangeTransitionEnd' + | 'slideNextTransitionStart' + | 'slideNextTransitionEnd' + | 'slidePrevTransitionStart' + | 'slidePrevTransitionEnd' + | 'transitionStart' + | 'transitionEnd' + | 'touchStart' + | 'touchMove' + | 'touchMoveOpposite' + | 'sliderMove' + | 'touchEnd' + | 'click' + | 'tap' + | 'doubleTap' + | 'imagesReady' + | 'progress' + | 'reachBeginning' + | 'reachEnd' + | 'fromEdge' + | 'setTranslate' + | 'setTransition' + | 'resize'; + +/** + * Swiper pagination event names. + */ +export type PaginationEvent = 'paginationRender' | 'paginationUpdate'; + +/** + * Swiper autoplay event names. + */ +export type AutoplayEvent = 'autoplayStart' | 'autoplayStop' | 'autoplay'; + +/** + * Swiper lazy-loading event names. + */ +export type LazyLoadingEvent = 'lazyImageLoad' | 'lazyImageReady'; + +/** + * Swiper event names. + */ +export type SwiperEvent = + | CommonEvent + | PaginationEvent + | AutoplayEvent + | LazyLoadingEvent; + +/** + * Swiper module types. + */ +export type SwiperModule = + | Navigation + | Pagination + | Scrollbar + | Autoplay + | Parallax + | Lazy + | EffectFade + | EffectCoverflow + | EffectFlip + | EffectCube + | Zoom + | Keyboard + | Mousewheel + | Virtual + | HashNavigation + | History + | Controller + | A11y; + +export type DOM7Element = any; +export type SelectableElement = string | HTMLElement; + +/* + * Swiper options and events. + */ + +/** + * Main constructor options. + */ +export interface SwiperOptions { + /** + * Whether Swiper should be initialised automatically when you create an instance. + * If disabled, then you need to init it manually by calling mySwiper.init() + * + * @default true + */ + init?: boolean; + + /** + * Index number of initial slide. + * + * @default 0 + */ + initialSlide?: number; + + /** + * Could be 'horizontal' or 'vertical' (for vertical slider). + * + * @default 'horizontal' + */ + direction?: 'horizontal' | 'vertical'; + + /** + * Duration of transition between slides (in ms) + * + * @default 300 + */ + speed?: number; + + /** + * Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slides. + * Mostly should be used as compatibility fallback option for browser that don't support flexbox layout well + */ + setWrapperSize?: boolean; + + /** + * Enabled this option and swiper will be operated as usual except it will not move, real translate values on wrapper will not be set. + * Useful when you may need to create custom slide transition + */ + virtualTranslate?: boolean; + + /** + * Swiper width (in px). Parameter allows to force Swiper width. + * Useful only if you initialize Swiper when it is hidden. + * + * @note Setting this parameter will make Swiper not responsive + */ + width?: number; + + /** + * Swiper height (in px). Parameter allows to force Swiper height. + * Useful only if you initialize Swiper when it is hidden. + * + * @note Setting this parameter will make Swiper not responsive + */ + height?: number; + + /** + * Set to true and slider wrapper will adopt its height to the height of the currently active slide + * + * @default false + */ + autoHeight?: boolean; + + /** + * Set to true to round values of slides width and height to prevent blurry texts on usual + * resolution screens (if you have such) + * + * @default false + */ + roundLengths?: boolean; + + /** + * Set to true on Swiper for correct touch events interception. Use only on + * swipers that use same direction as the parent one + * + * @default false + */ + nested?: boolean; + + /** + * If enabled (by default) and navigation elements' parameters passed as a string (like ".pagination") + * then Swiper will look for such elements through child elements first. + * Applies for pagination, prev/next buttons and scrollbar elements + * + * @default true + */ + uniqueNavElements?: boolean; + + /** + * Tranisition effect. Could be "slide", "fade", "cube", "coverflow" or "flip" + * + * @default 'slide' + */ + effect?: 'slide' | 'fade' | 'cube' | 'coverflow' | 'flip'; + + /** + * Fire [Transition/SlideChange][Start/End] events on swiper initialization. + * Such events will be fired on initialization in case of your initialSlide is not 0, or you use loop mode + * + * @default true + */ + runCallbacksOnInit?: boolean; + + /** + * When enabled Swiper will be disabled and hide navigation buttons on + * case there are not enough slides for sliding. + * + * @default false + */ + watchOverflow?: boolean; + + /** + * Register event handlers. + */ + on?: { [key in SwiperEvent]?: () => void }; + + // Slides grid + + /** + * Distance between slides in px. + */ + spaceBetween?: number; + + /** + * Number of slides per view (slides visible at the same time on slider's container). + * If you use it with "auto" value and along with loop: true then you need to specify loopedSlides parameter with amount of slides to loop (duplicate) + * slidesPerView: 'auto' is currently not compatible with multirow mode, when slidesPerColumn > 1 + */ + slidesPerView?: number | 'auto'; + + /** + * Number of slides per column, for multirow layout + * slidesPerColumn > 1 is currently not compatible with loop mode (loop: true) + */ + slidesPerColumn?: number; + + /** + * Could be 'column' or 'row'. Defines how slides should fill rows, by column or by row + */ + slidesPerColumnFill?: 'row' | 'column'; + + /** + * Set numbers of slides to define and enable group sliding. Useful to use with slidesPerView > 1 + */ + slidesPerGroup?: number; + + /** + * If true, then active slide will be centered, not always on the left side. + */ + centeredSlides?: boolean; + + /** + * Add (in px) additional slide offset in the beginning of the container (before all slides) + */ + slidesOffsetBefore?: number; + + /** + * Add (in px) additional slide offset in the end of the container (after all slides) + */ + slidesOffsetAfter?: number; + + /** + * Normalize slide index. + */ + normalizeSlideIndex?: boolean; + + /** + * When enabled it center slides if the amount of slides less than `slidesPerView`. Not intended to be used loop mode and slidesPerColumn + */ + centerInsufficientSlides?: boolean; + + // Grab Cursor + grabCursor?: boolean; + + // Touches + + /** + * Target element to listen touch events on. Can be 'container' (to listen for touch events on swiper-container) or 'wrapper' + * (to listen for touch events on swiper-wrapper) + */ + touchEventsTarget?: 'container' | 'wrapper'; + + /** + * Touch ratio + */ + touchRatio?: number; + + /** + * Allowable angle (in degrees) to trigger touch move + */ + touchAngle?: number; + + /** + * If true, Swiper will accept mouse events like touch events (click and drag to change slides) + */ + simulateTouch?: boolean; + + /** + * Set to false if you want to disable short swipes + */ + shortSwipes?: boolean; + + /** + * Set to false if you want to disable long swipes + */ + longSwipes?: boolean; + + /** + * Ratio to trigger swipe to next/previous slide during long swipes + */ + longSwipesRatio?: number; + + /** + * Minimal duration (in ms) to trigger swipe to next/previous slide during long swipes + */ + longSwipesMs?: number; + + /** + * If disabled, then slider will be animated only when you release it, it will not move while you hold your finger on it + */ + followFinger?: boolean; + + /** + * If false, then the only way to switch the slide is use of external API functions like slidePrev or slideNext + */ + allowTouchMove?: boolean; + + /** + * Threshold value in px. If "touch distance" will be lower than this value then swiper will not move + */ + threshold?: number; + + /** + * If disabled, `touchstart` (`mousedown`) event won't be prevented + */ + touchStartPreventDefault?: boolean; + + /** + * Force to always prevent default for `touchstart` (`mousedown`) event + */ + touchStartForcePreventDefault?: boolean; + + /** + * If enabled, then propagation of "touchmove" will be stopped + */ + touchMoveStopPropagation?: boolean; + + /** + * Enable to release Swiper events for swipe-to-go-back work in iOS UIWebView + */ + iOSEdgeSwipeDetection?: boolean; + + /** + * Area (in px) from left edge of the screen to release touch events for swipe-to-go-back in iOS UIWebView + */ + iOSEdgeSwipeThreshold?: number; + + /** + * Enable to release touch events on slider edge position (beginning, end) to allow for further page scrolling + */ + touchReleaseOnEdges?: boolean; + + /** + * Passive event listeners will be used by default where possible to improve scrolling performance on mobile devices. + * But if you need to use `e.preventDefault` and you have conflict with it, then you should disable this parameter + */ + passiveListeners?: boolean; + + // Touch Resistance + + /** + * Set to false if you want to disable resistant bounds + */ + resistance?: boolean; + + /** + * This option allows you to control resistance ratio + */ + resistanceRatio?: number; + + // Swiping / No swiping + preventInteractionOnTransition?: boolean; + allowSlidePrev?: boolean; + allowSlideNext?: boolean; + noSwiping?: boolean; + noSwipingClass?: string; + noSwipingSelector?: string; + swipeHandler?: SelectableElement; + + // Clicks + preventClicks?: boolean; + preventClicksPropagation?: boolean; + slideToClickedSlide?: boolean; + + // Freemode + freeMode?: boolean; + freeModeMomentum?: boolean; + freeModeMomentumRatio?: number; + freeModeMomentumVelocityRatio?: number; + freeModeMomentumBounce?: boolean; + freeModeMomentumBounceRatio?: number; + freeModeMinimumVelocity?: number; + freeModeSticky?: boolean; + + // Progress + watchSlidesProgress?: boolean; + watchSlidesVisibility?: boolean; + + // Images + preloadImages?: boolean; + updateOnImagesReady?: boolean; + + // Loop + loop?: boolean; + loopAdditionalSlides?: number; + loopedSlides?: number; + loopFillGroupWithBlank?: boolean; + + // Breakpoints + breakpoints?: { + [index: number]: SwiperOptions; + }; + breakpointsInverse?: boolean; + + // Observer + observer?: boolean; + observeParents?: boolean; + + // Namespace + containerModifierClass?: string; + slideClass?: string; + slideActiveClass?: string; + slideDuplicateActiveClass?: string; + slideVisibleClass?: string; + slideDuplicateClass?: string; + slideNextClass?: string; + slideDuplicateNextClass?: string; + slidePrevClass?: string; + slideDuplicatePrevClass?: string; + wrapperClass?: string; + + // Components + navigation?: NavigationOptions; + pagination?: PaginationOptions; + scrollbar?: ScrollbarOptions; + autoplay?: AutoplayOptions | boolean; + parallax?: boolean; + lazy?: LazyOptions | boolean; + fadeEffect?: FadeEffectOptions; + coverflowEffect?: CoverflowEffectOptions; + flipEffect?: FlipEffectOptions; + cubeEffect?: CubeEffectOptions; + thumbs?: ThumbsOptions; + zoom?: ZoomOptions | boolean; + keyboard?: KeyboardOptions | boolean; + mousewheel?: MousewheelOptions | boolean; + virtual?: VirtualOptions | boolean; + hashNavigation?: HashNavigationOptions | boolean; + history?: HistoryNavigationOptions | boolean; + a11y?: A11yOptions | boolean; +} + +export interface EventsOptions { + /** + * Fired right after Swiper initialization. + * Note that with swiper.on('init') syntax it will + * work only in case you set init: false parameter. + * + * @example + * var swiper = new Swiper('.swiper-container', { + * init: false, + * // other parameters + * }); + * + * @example + * swiper.on('init', function() { + * // do something + * }); + * + * @example + * // init Swiper + * swiper.init(); + * + * @example + * // Otherwise use it as the parameter: + * var swiper = new Swiper('.swiper-container', { + * // other parameters + * on: { + * init: function () { + * // do something + * }, + * } + * }); + */ + init?: () => any; + + /** + * Triggered right beforey Swiper destoryed + */ + beforeDestroy?: () => any; + + /** + * Triggered when currently active slide is changed + */ + slideChange?: () => any; + + /** + * Triggered in the beginning of animation to other slide (next or previous). + */ + slideChangeTransitionStart?: () => any; + + /** + * Triggered after animation to other slide (next or previous). + */ + slideChangeTransitionEnd?: () => any; + + /** + * Same as "slideChangeTransitionStart" but for "forward" direction only + */ + slideNextTransitionStart?: () => any; + + /** + * Same as "slideChangeTransitionEnd" but for "forward" direction only + */ + slideNextTransitionEnd?: () => any; + + /** + * Same as "slideChangeTransitionStart" but for "backward" direction only + */ + slidePrevTransitionStart?: () => any; + + /** + * Same as "slideChangeTransitionEnd" but for "backward" direction only + */ + slidePrevTransitionEnd?: () => any; + + /** + * Triggered in the beginning of transition. + */ + transitionStart?: () => any; + + /** + * Triggered after transition. + */ + transitionEnd?: () => any; + + /** + * Triggered when user touch Swiper. Receives 'touchstart' event as an arguments. + */ + touchStart?: (event: any) => any; + + /** + * Triggered when user touch and move finger over Swiper. Receives 'touchmove' event as an arguments. + */ + touchMove?: (event: any) => any; + + /** + * Fired when user touch and move finger over + * Swiper in direction opposite to direction parameter. + * Receives 'touchmove' event as an arguments. + */ + touchMoveOpposite?: (event: any) => any; + + /** + * Triggered when user touch and move finger over Swiper and move it. + * Receives 'touchmove' event as an arguments. + */ + sliderMove?: (event: any) => any; + + /** + * Triggered when user release Swiper. Receives 'touchend' event as an arguments. + */ + touchEnd?: (event: any) => any; + + /** + * Triggered when user click/tap on Swiper after 300ms delay. Receives 'touchend' event as an arguments. + */ + click?: (event: any) => any; + + /** + * Triggered when user click/tap on Swiper. Receives 'touchend' event as an arguments. + */ + tap?: (event: any) => any; + + /** + * Triggered when user double tap on Swiper's container. Receives 'touchend' event as an arguments + */ + doubleTap?: (event: any) => any; + + /** + * Triggered right after all inner images are loaded. updateOnImagesReady should be also enabled + */ + imagesReady?: () => any; + + /** + * Triggered when Swiper progress is changed, as an arguments it receives + * progress that is always from 0 to 1 + */ + progress?: (progress: any) => any; + + /** + * Triggered when Swiper reach its beginning (initial position) + */ + reachBeginning?: () => any; + + /** + * Triggered when Swiper reach last slide + */ + reachEnd?: () => any; + + /** + * Triggered when Swiper goes from beginning or end position + */ + fromEdge?: () => any; + + /** + * Triggered when swiper's wrapper change its position. Receives current translate value as an arguments + */ + setTranslate?: (translate: any) => any; + + /** + * Triggered everytime when swiper starts animation. + * Receives current transition duration (in ms) as an arguments, + */ + setTransition?: (transition: any) => any; + + /** + * Triggered on window resize right before swiper's onresize manipulation + */ + resize?: () => any; +} + +export interface NavigationOptions { + /** + * String with CSS selector or HTML element of the element that will work + * like "next" button after click on it + * + * @default null + */ + nextEl?: SelectableElement; + + /** + * String with CSS selector or HTML element of the element that will work + * like "prev" button after click on it + * + * @default null + */ + prevEl?: SelectableElement; + + /** + * buttons visibility after click on Slider's container + * + * @default false Toggle navigation + */ + hideOnClick?: boolean; + + /** + * CSS class name added to navigation button when it becomes disabled + * + * @default 'swiper-button-disabled' + */ + disabledClass?: string; + + /** + * CSS class name added to navigation button when it becomes hidden + * + * @default 'swiper-button-hidden' + */ + hiddenClass?: string; +} + +export interface PaginationOptions { + /** + * String with CSS selector or HTML element of the container with pagination + */ + el: SelectableElement | Element; + + /** + * String with type of pagination. Can be "bullets", "fraction", "progressbar" or "custom" + */ + type?: 'bullets' | 'fraction' | 'progressbar' | 'custom'; + + /** + * Defines which HTML tag will be use to represent single pagination bullet. Only for bullets pagination type. + */ + bulletElement?: string; + + /** + * Good to enable if you use bullets pagination with a lot of slides. So it will keep only few bullets visible at the same time. + */ + dynamicBullets?: boolean; + + /** + * The number of main bullets visible when dynamicBullets enabled. + */ + dynamicMainBullets?: number; + + /** + * Toggle (hide/true) pagination container visibility after click on Slider's container + */ + hideOnClick?: boolean; + + /** + * If true then clicking on pagination button will cause transition to appropriate slide. Only for bullets pagination type + */ + clickable?: boolean; + + /** + * Makes pagination progressbar opposite to Swiper's `direction` parameter, means vertical progressbar for horizontal swiper + * direction and horizontal progressbar for vertical swiper direction + */ + progressbarOpposite?: boolean; + + /** + * format fraction pagination current number. Function receives current number, + * and you need to return formatted value + */ + formatFractionCurrent?: (number: number) => number; + + /** + * format fraction pagination total number. Function receives total number, and you + * need to return formatted value + */ + formatFractionTotal?: (number: number) => number; + + /** + * This parameter allows totally customize pagination bullets, you need to pass here a function that accepts index number of + * pagination bullet and required element class name (className). Only for bullets pagination type + */ + renderBullet?: (index: number, className: string) => void; + + /** + * This parameter allows to customize "fraction" pagination html. Only for fraction pagination type + */ + renderFraction?: (currentClass: string, totalClass: string) => void; + + /** + * This parameter allows to customize "progress" pagination. Only for progress pagination type + */ + renderProgressbar?: (progressbarFillClass: string) => void; + + /** + * This parameter is required for custom pagination type where you have to specify + * how it should be rendered. + * + * @example + * var swiper = new Swiper('.swiper-container', { + * //... + * renderCustom: function (swiper, current, total) { + * return current + ' of ' + total; + * } + * }); + */ + renderCustom?: (swiper: Swiper, current: number, total: number) => void; + + /** + * CSS class name of single pagination bullet + */ + bulletClass?: string; + + /** + * CSS class name of currently active pagination bullet + */ + bulletActiveClass?: string; + + /** + * The beginning of the modifier CSS class name that will be added to pagination depending on parameters + */ + modifierClass?: string; + + /** + * CSS class name of the element with currently active index in "fraction" pagination + */ + currentClass?: string; + + /** + * CSS class name of the element with total number of "snaps" in "fraction" pagination + */ + totalClass?: string; + + /** + * CSS class name of pagination when it becomes inactive + */ + hiddenClass?: string; + + /** + * CSS class name of pagination progressbar fill element + */ + progressbarFillClass?: string; + + /** + * CSS class name set to pagination when it is clickable + */ + clickableClass?: string; +} + +/** + * Object with scrollbar parameters. + * + * @example + * var mySwiper = new Swiper('.swiper-container', { + * scrollbar: { + * el: '.swiper-scrollbar', + * draggable: true, + * }, + * }); + */ +export interface ScrollbarOptions { + /** + * String with CSS selector or HTML element of the container with scrollbar. + */ + el: SelectableElement; + + /** + * Hide scrollbar automatically after user interaction + * + * @default true + */ + hide?: boolean; + + /** + * Set to true to enable make scrollbar draggable that allows you to control slider position + * + * @default true + */ + draggable?: boolean; + + /** + * Set to true to snap slider position to slides when you release scrollbar + * + * @default false + */ + snapOnRelease?: boolean; + + /** + * Size of scrollbar draggable element in px + * + * @default 'auto' + */ + dragSize?: 'auto' | number; + + /** + * Scrollbar element additional CSS class when it is disabled + * + * @default 'swiper-scrollbar-lock' + */ + lockClass?: string; + + /** + * Scrollbar draggable element CSS class + * + * @default 'swiper-scrollbar-drag' + */ + dragClass?: string; +} + +/** + * Object with autoplay parameters or boolean true to enable with default settings. + * + * @example + * var mySwiper = new Swiper('.swiper-container', { + * autoplay: { + * delay: 5000, + * }, + * }); + */ +export interface AutoplayOptions { + /** + * Delay between transitions (in ms). If this parameter is not specified, auto play will be disabled + * + * If you need to specify different delay for specifi slides you can do it by using + * data-swiper-autoplay (in ms) attribute on slide. + * + * @example + * + *
+ * + * @default 3000 + */ + delay?: number; + + /** + * Enable this parameter and autoplay will be stopped when it reaches last slide (has no effect in loop mode) + * + * @default false + */ + stopOnLastSlide?: boolean; + + /** + * Set to false and autoplay will not be disabled after + * user interactions (swipes), it will be restarted + * every time after interaction + * + * @default true + */ + disableOnInteraction?: boolean; + + /** + * Enables autoplay in reverse direction + * + * @default false + */ + reverseDirection?: boolean; + + /** + * When enabled autoplay will wait for wrapper transition to continue. + * Can be disabled in case of using Virtual Translate when your + * slider may not have transition + * + * @default true + */ + waitForTransition?: boolean; +} + +export interface LazyOptions { + loadPrevNext?: boolean; + loadPrevNextAmount?: number; + loadOnTransitionStart?: boolean; + elementClass?: string; + loadingClass?: string; + loadedClass?: string; + preloaderClass?: string; +} + +/* + * Options - Effect + */ + +export interface FadeEffectOptions { + crossFade?: boolean; +} + +export interface CoverflowEffectOptions { + slideShadows?: boolean; + rotate?: number; + stretch?: number; + depth?: number; + modifier?: number; +} + +export interface FlipEffectOptions { + slideShadows?: boolean; + limitRotation?: boolean; +} + +export interface CubeEffectOptions { + slideShadows?: boolean; + shadow?: boolean; + shadowOffset?: number; + shadowScale?: number; +} + +export interface ThumbsOptions { + swiper?: Swiper; + slideThumbActiveClass?: string; + thumbsContainerClass?: string; +} + +export interface ZoomOptions { + maxRatio?: number; + minRatio?: number; + toggle?: boolean; + containerClass?: string; + zoomedSlideClass?: string; +} + +export interface KeyboardOptions { + enabled?: boolean; + onlyInViewport?: boolean; +} + +export interface MousewheelOptions { + forceToAxis?: boolean; + releaseOnEdges?: boolean; + invert?: boolean; + sensitivity?: number; + eventsTarged?: SelectableElement; +} + +export interface VirtualOptions { + slides?: any[]; + cache?: boolean; + addSlidesBefore?: number; + addSlidesAfter?: number; + renderSlide?: (slide: any, index: any) => any; + renderExternal?: (data: any) => any; +} + +export interface HashNavigationOptions { + /** + * Set to true to enable also navigation through slides (when hashnav + * is enabled) by browser history or by setting directly hash on document location + * + * @default false + */ + watchState?: boolean; + + /** + * Works in addition to hashnav to replace current url state with the + * new one instead of adding it to history + * + * @default false + */ + replaceState?: boolean; +} + +export interface HistoryNavigationOptions { + /** + * Works in addition to hashnav or history to replace current url state with the + * new one instead of adding it to history + * + * @default false + */ + replaceState?: boolean; + + /** + * Url key for slides + * + * @default 'slides' + */ + key?: string; +} + +/** + * Object with controller parameters or boolean true to enable with default settings. For example: + * + * @example + * var mySwiper = new Swiper('.swiper-container', { + * controller: { + * inverse: true, + * }, + * }); + */ +export interface ControllerOptions { + /** + * Pass here another Swiper instance or array with Swiper instances that should be controlled + * by this Swiper + */ + control?: Swiper; + + /** + * Set to true and controlling will be in inverse direction + * + * @default false + */ + inverse?: boolean; + + /** + * Can be 'slide' or 'container'. Defines a way how to control another slider: slide by slide + * (with respect to other slider's grid) or depending on all slides/container + * (depending on total slider percentage). + * + * @default 'slide' + */ + by?: 'slide' | 'container'; +} + +export interface A11yOptions { + /** + * Enables A11y + * + * @default true + */ + enabled?: boolean; + + /** + * Message for screen readers for previous button + * + * @default 'Previous slide' + */ + prevSlideMessage?: string; + + /** + * Message for screen readers for next button + * + * @default 'Next slide' + */ + nextSlideMessage?: string; + + /** + * Message for screen readers for previous button when swiper is on first slide + * + * @default 'This is the first slide' + */ + firstSlideMessage?: string; + + /** + * Message for screen readers for previous button when swiper is on last slide + * + * @default 'This is the last slide' + */ + lastSlideMessage?: string; + + /** + * Message for screen readers for single pagination bullet + * + * @default 'Go to slide {{index}}' + */ + paginationBulletMessage?: string; + + /** + * CSS class name of a11 notification + * + * @default 'swiper-notification' + */ + notificationClass?: string; +} + +// "Multiple imports from './dist/js/swiper.esm' can be combined into one" + "Line breaks are not allowed in import declaration" = ... +// tslint:disable-next-line:max-line-length +export class Virtual { + /** + * Object with cached slides HTML elements + */ + cache: object; + + /** + * Index of first rendered slide + */ + from: number; + + /** + * Index of last rendered slide + */ + to: number; + + /** + * Array with slide items passed by virtual.slides parameter + */ + slides: any[]; + + /* + * Methods + */ + + /** + * Add new slides to the end. slides could be HTMLElement or HTML string with new slide or array + * with such slides, for example: + * + * @example + * mySwiper.appendSlide('
Slide 10"
') + * mySwiper.appendSlide([ + * '
Slide 10"
', + * '
Slide 11"
' + * ]); + */ + appendSlide(slide: HTMLElement | string): void; + + /** + * Add new slides to the beginning. slides could be HTMLElement or HTML string with new slide or + * array with such slides, for example: + * + * @example + * mySwiper.prependSlide('
Slide 0"
') + * mySwiper.prependSlide([ + * '
Slide 1"
', + * '
Slide 2"
' + * ]); + */ + prependSlide(slide: HTMLElement | string): void; + + /** + * Update virutal slides state + */ + update(): void; +} + +/** + * Keyboard Control module. + */ +export class Keyboard { + /** + * Whether the keyboard control is enabled + */ + enabled: boolean; + + // Methods + /** + * Enable keyboard control + */ + enable(): void; + + /** + * Disable keyboard control + */ + disable(): void; +} + +/** + * Mousewheel Control module. + */ +export class Mousewheel { + /** + * Whether the mousewheel control is enabled + */ + enabled: boolean; + + // Methods + /** + * Enable mousewheel control + */ + enable(): void; + + /** + * Disable mousewheel control + */ + disable(): void; +} + +/** + * Navigation module. + */ +export class Navigation { + /** + * HTMLElement of "next" navigation button + */ + nextEl: HTMLElement; + + /** + * HTMLElement of "previous" navigation button + */ + prevEl: HTMLElement; + + /** + * Update navigation buttons state (enabled/disabled) + */ + update(): void; +} + +/** + * Pagination module. + */ +export class Pagination { + /** + * HTMLElement of pagination container element + */ + el: HTMLElement; + + /** + * Dom7 array-like collection of pagination bullets + * HTML elements. To get specific slide HTMLElement + * use `mySwiper.pagination.bullets[1]`. + */ + bullets: DOM7Element[]; + + /** + * Render pagination layout + */ + render(): void; + + /** + * Update pagination state (enabled/disabled/active) + */ + update(): void; +} + +/** + * Scrollbar module. + */ +export class Scrollbar { + // Properties + /** + * HTMLElement of Scrollbar container element + */ + el: HTMLElement; + + /** + * HTMLElement of Scrollbar draggable handler element + */ + dragEl: HTMLElement; + + // Methods + /** + * Updates scrollbar track and handler sizes + */ + updateSize(): void; +} + +/** + * Parallax module. + */ +export class Parallax {} + +/** + * Zoom module. + */ +export class Zoom { + /** + * Whether the zoom module is enabled + */ + enabled: boolean; + + /** + * Current image scale ratio + */ + scale: number; + + /** + * Enable zoom module + */ + enable(): void; + + /** + * Disable zoom module + */ + disable(): void; + + /** + * Zoom in image of the currently active slide + */ + in(): void; + + /** + * Zoom out image of the currently active slide + */ + out(): void; + + /** + * Toggle image zoom of the currently active slide + */ + toggle(): void; +} + +/** + * Lazy module. + */ +export class Lazy { + /** + * Load/update lazy images based on current slider state (position) + */ + load(): void; + + /** + * Force to load lazy images in slide by specified index + * @param number index number of slide to load lazy images in + */ + loadInSlide(index: number): void; +} + +/** + * Controller module. + */ +export class Controller { + /** + * Pass here another Swiper instance or array with Swiper instances that should be controlled + * by this Swiper + */ + control?: Swiper; +} + +/** + * Accessibility module (a11y$) + */ +export class A11y {} + +/** + * History Navigation module. + */ +export class History {} + +/** + * Hash Navigation module. + */ +export class HashNavigation {} + +/** + * Autoplay module. + */ +export class Autoplay { + // Properties + /** + * Whether autoplay enabled and running + */ + running: boolean; + + // Methods + /** + * Start autoplay + */ + start(): boolean; + + /** + * Stop autoplay + */ + stop(): boolean; +} + +/** + * Fade Effect module. + */ +export class EffectFade {} + +/** + * Cube Effect module. + */ +export class EffectCube {} + +/** + * Flip Effect module. + */ +export class EffectFlip {} + +/** + * Coverflow Effect module. + */ +export class EffectCoverflow {} +/** + * Core module + */ +// XXX: This is an export assignment in `dist/js/swiper.js` (referenced by +// the "main" field of package.json) but a default export in +// `dist/js/swiper.esm.bundle.js` (referenced by the "module" field). Short +// of trying to convince upstream to change their packaging, the best we can +// do is choose one or the other and hope that users use `esModuleInterop`. +export default class Swiper { + /** + * Constructs a new Swiper instance. + * + * @param container Where Swiper applies to. + * @param options Instance options. + */ + constructor(container: SelectableElement | Element, options?: SwiperOptions); + + /** + * Object with passed initialization parameters + */ + params: SwiperOptions; + + /** + * Element with slider container. + */ + el: HTMLElement; + + /** + * Dom7 element with slider container HTML element. To get vanilla HTMLElement use el + */ + $el: DOM7Element; + + /** + * Slider wrapper HTML element. + */ + wrapperEl: HTMLElement; + + /** + * Dom7 element with slider wrapper HTML element. To get vanilla HTMLElement use wrapperEl + */ + $wrapperEl: DOM7Element; + + /** + * Dom7 array-like collection of slides HTML elements. To get specific slide HTMLElement use slides[1] + */ + slides: DOM7Element[]; + + /** + * Width of container + */ + width: number; + + /** + * Height of container + */ + height: number; + + /** + * Current value of wrapper translate + */ + translate: number; + + /** + * Current progress of wrapper translate (from 0 to 1) + */ + progress: number; + + /** + * Index number of currently active slide. + * + * @note Note, that in loop mode active index value will be always shifted + * on a number of looped/duplicated slides. + */ + activeIndex: number; + + /** + * Index number of currently active slide considering duplicated slides in loop mode + */ + realIndex: number; + + /** + * Index number of previously active slide + */ + previousIndex: number; + + /** + * true if slider on most "left"/"top" position + */ + isBeginning: true; + + /** + * true if slider on most "right"/"bottom" position + */ + isEnd: boolean; + + /** + * true if swiper is in transition + */ + animating: boolean; + + /** + * Object with the following touch event properties: + */ + touches: { + startX: number; + startY: number; + currentX: number; + currentY: number; + diff: number; + }; + + /** + * Index number of last clicked slide + */ + clickedIndex: number; + + /** + * Link to last clicked slide (HTMLElement) + */ + clickedSlide: HTMLElement; + + /** + * Disable/enable ability to slide to the next slides by assigning false/true to this property + * + * @default true + */ + allowSlideNext: boolean; + + /** + * Disable/enable ability to slide to the previous slides by assigning false/true to this property + * + * @default true + */ + allowSlidePrev: boolean; + + /** + * Disable/enable ability move slider by grabbing it with + * mouse or by touching it with finger (on touch screens) + * by assigning false/true to this property + * + * @default true + */ + allowTouchMove: boolean; + + // Methods + /** + * Run transition to next slide. + * + * @param speed Transition duration (in ms). + * @param runCallbacks Set it to false (by default it is true) and transition will + * not produce transition events. + */ + slideNext(speed?: number, runCallbacks?: boolean): void; + + /** + * Run transition to previous slide. + * + * @param speed Transition duration (in ms). + * @param runCallbacks Set it to false (by default it is true) and transition will + * not produce transition events. + */ + slidePrev(speed?: number, runCallbacks?: boolean): void; + + /** + * Run transition to the slide with index number equal to 'index' parameter for the + * duration equal to 'speed' parameter. + * + * @param index Index number of slide. + * @param speed Transition duration (in ms). + * @param runCallbacks Set it to false (by default it is true) and transition will + * not produce transition events. + */ + slideTo(index: number, speed?: number, runCallbacks?: boolean): void; + + /** + * Does the same as .slideTo but for the case when used with enabled loop. So this + * method will slide to slides with realIndex matching to passed index + * + * @param index Index number of slide. + * @param speed Transition duration (in ms). + * @param runCallbacks Set it to false (by default it is true) and transition will + * not produce transition events. + */ + slideToLoop(index: number, speed?: number, runCallbacks?: boolean): void; + + /** + * Reset swiper position to currently active slide for the duration equal to 'speed' + * parameter. + * + * @param speed Transition duration (in ms). + * @param runCallbacks Set it to false (by default it is true) and transition will + * not produce transition events. + */ + slideReset(speed?: number, runCallbacks?: boolean): void; + + /** + * Reset swiper position to closest slide/snap point for the duration equal to 'speed' parameter. + * + * @param speed Transition duration (in ms). + * @param runCallbacks Set it to false (by default it is true) and transition will + * not produce transition events. + */ + slideToClosest(speed?: number, runCallbacks?: boolean): void; + + /** + * Force swiper to update its height (when autoHeight enabled) for the duration equal to + * 'speed' parameter + * + * @param speed Transition duration (in ms). + */ + updateAutoHeight(speed?: number): void; + + /** + * You should call it after you add/remove slides + * manually, or after you hide/show it, or do any + * custom DOM modifications with Swiper + * This method also includes subcall of the following + * methods which you can use separately: + */ + update(): void; + + /** + * recalculate size of swiper container + */ + updateSize(): void; + + /** + * recalculate number of slides and their offsets. Useful after you add/remove slides with JavaScript + */ + updateSlides(): void; + + /** + * recalculate swiper progress + */ + updateProgress(): void; + + /** + * update active/prev/next classes on slides and bullets + */ + updateSlidesClasses(): void; + + /** + * tach all events listeners + */ + detachEvents(): void; + + /** + * Atach all events listeners again + */ + attachEvents(): void; + + /** + * Destroy slider instance and detach all events listeners, where + */ + destroy(deleteInstance: boolean, cleanupStyles: boolean): void; + + /** + * Set it to false (by default it is true) to not to delete Swiper instance + */ + deleteInstance: boolean; + + /** + * Set it to true (by default it is true) and all + * custom styles will be removed from slides, + * wrapper and container. Useful if you need to + * destroy Swiper and to init again with new + * options or in different direction + */ + cleanStyles: boolean; + + /** + * Installs modules on Swiper in runtime. + */ + static use(modules: SwiperModule[]): void; + + /** + * Add new slides to the end. slides could be + * HTMLElement or HTML string with new slide or + * array with such slides, for example: + * + * @example appendSlide('
Slide 10"
') + * @example + * appendSlide([ + * '
Slide 10"
', + * '
Slide 11"
' + * ]); + */ + appendSlide(slides: HTMLElement | string | string[]): void; + + /** + * Add new slides to the beginning. slides could be + * HTMLElement or HTML string with new slide or array with such slides, for example: + * + * @example prependSlide('
Slide 0"
') + * @example prependSlide([ + * '
Slide 1"
', + * '
Slide 2"
' + * ]); + */ + prependSlide(slides: HTMLElement | string | string[]): void; + + /** + * Add new slides to the required index. slides could be HTMLElement or HTML string with new slide or array with such slides, for example: + * + * @example addSlide(1, '
Slide 10"
') + * @example addSlide(1, [ + * '
Slide 10"
', + * '
Slide 11"
' + * ]); + */ + addSlide(index: number, slides: HTMLElement | string | string[]): void; + + /** + * Remove selected slides. slideIndex could be a number with slide index to remove or array with indexes. + * + * @example removeSlide(0); // remove first slide + * @example removeSlide([0, 1]); // remove first and second slides + * @example removeAllSlides(); // Remove all slides + */ + removeSlide(slideIndex: number | number[]): void; + + /** + * Remove all slides + */ + removeAllSlides(): void; + + /** + * Set custom css3 transform's translate value for swiper wrapper + */ + setTranslate(translate: any): void; + + /** + * Get current value of swiper wrapper css3 transform translate + */ + getTranslate(): any; + + /** + * Add event listener + */ + on(event: SwiperEvent, handler: () => void): void; + + /** + * Add event listener that will be executed only once + */ + once(event: SwiperEvent, handler: () => void): void; + + /** + * Remove event listener for specified event + * If no handler specified, removes all listeners for specified event + */ + off(event: SwiperEvent, handler?: () => void): void; + + /** + * Disable mousewheel control + */ + disableMousewheelControl(): void; + + /** + * Enable mousewheel control + */ + enableMousewheelControl(): void; + + /** + * Disable keyboard control + */ + disableKeyboardControl(): void; + + /** + * Enable keyboard control + */ + enableKeyboardControl(): void; + + /** + * Unset grab cursor + */ + unsetGrabCursor(): void; + + /** + * Set grab cursor + */ + setGrabCursor(): void; + + // Components + + /** + * Swiper Navigation module. + */ + navigation?: Navigation; + + /** + * Swiper Pagination module. + */ + pagination?: Pagination; + + /** + * Swiper Scrollbar module. + */ + scrollbar?: Scrollbar; + + /** + * Swiper Autoplay module. + */ + autoplay?: Autoplay; + + /** + * Swiper Parallax module. + */ + parallax?: Parallax; + + /** + * Swiper Lazy module. + */ + lazy?: Lazy; + + /** + * Swiper FadeEffect module. + */ + fadeEffect?: EffectFade; + + /** + * Swiper CoverflowEffect module. + */ + coverflowEffect?: EffectCoverflow; + + /** + * Swiper FlipEffect module. + */ + flipEffect?: EffectFlip; + + /** + * Swiper CubeEffect module. + */ + cubeEffect?: EffectCube; + + /** + * Swiper Thumbs module. + */ + thumbs?: object; + + /** + * Swiper Zoom module. + */ + zoom?: Zoom; + + /** + * Swiper Keyboard module. + */ + keyboard?: Keyboard; + + /** + * Swiper Mousewheel module. + */ + mousewheel?: Mousewheel; + + /** + * Swiper Virtual module. + */ + virtual?: Virtual; + + /** + * Swiper HashNavigation module. + */ + hashNavigation?: HashNavigation; + + /** + * Swiper History module. + */ + history?: History; + + /** + * Swiper Controller module. + */ + controller?: Controller; + + /** + * Swiper A11y module. + */ + a11y?: A11y; +} diff --git a/src/action-control/swiper/swiper.min.js b/src/action-control/swiper/swiper.min.js new file mode 100644 index 0000000..7789fae --- /dev/null +++ b/src/action-control/swiper/swiper.min.js @@ -0,0 +1,13 @@ +/** + * Swiper 4.5.3 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * http://www.idangero.us/swiper/ + * + * Copyright 2014-2019 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: October 16, 2019 + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Swiper=t()}(this,function(){"use strict";var m="undefined"==typeof document?{body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},location:{hash:""}}:document,ee="undefined"==typeof window?{document:m,navigator:{userAgent:""},location:{},history:{},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){}}:window,l=function(e){for(var t=0;t")){var o="div";for(0===n.indexOf(":~]/)?(t||m).querySelectorAll(e.trim()):[m.getElementById(e.trim().split("#")[1])],i=0;ia.slides.length)break;i.push(a.slides.eq(r)[0])}else i.push(a.slides.eq(a.activeIndex)[0]);for(t=0;t=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(n),i.eq(n).addClass(a.slideVisibleClass))}o.progress=s?-l:l}t.visibleSlides=L(t.visibleSlides)}},updateProgress:function(e){var t=this,a=t.params;if(void 0===e){var i=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*i||0}var s=t.maxTranslate()-t.minTranslate(),r=t.progress,n=t.isBeginning,o=t.isEnd,l=n,d=o;o=0==s?n=!(r=0):(n=(r=(e-t.minTranslate())/s)<=0,1<=r),te.extend(t,{progress:r,isBeginning:n,isEnd:o}),(a.watchSlidesProgress||a.watchSlidesVisibility)&&t.updateSlidesProgress(e),n&&!l&&t.emit("reachBeginning toEdge"),o&&!d&&t.emit("reachEnd toEdge"),(l&&!n||d&&!o)&&t.emit("fromEdge"),t.emit("progress",r)},updateSlidesClasses:function(){var e,t=this,a=t.slides,i=t.params,s=t.$wrapperEl,r=t.activeIndex,n=t.realIndex,o=t.virtual&&i.virtual.enabled;a.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=o?t.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+r+'"]'):a.eq(r)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass));var l=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===l.length&&(l=a.eq(0)).addClass(i.slideNextClass);var d=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===d.length&&(d=a.eq(-1)).addClass(i.slidePrevClass),i.loop&&(l.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),d.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass))},updateActiveIndex:function(e){var t,a=this,i=a.rtlTranslate?a.translate:-a.translate,s=a.slidesGrid,r=a.snapGrid,n=a.params,o=a.activeIndex,l=a.realIndex,d=a.snapIndex,p=e;if(void 0===p){for(var c=0;c=s[c]&&i=s[c]&&i=s[c]&&(p=c);n.normalizeSlideIndex&&(p<0||void 0===p)&&(p=0)}if((t=0<=r.indexOf(i)?r.indexOf(i):Math.floor(p/n.slidesPerGroup))>=r.length&&(t=r.length-1),p!==o){var u=parseInt(a.slides.eq(p).attr("data-swiper-slide-index")||p,10);te.extend(a,{snapIndex:t,realIndex:u,previousIndex:o,activeIndex:p}),a.emit("activeIndexChange"),a.emit("snapIndexChange"),l!==u&&a.emit("realIndexChange"),(a.initialized||a.runCallbacksOnInit)&&a.emit("slideChange")}else t!==d&&(a.snapIndex=t,a.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this,a=t.params,i=L(e.target).closest("."+a.slideClass)[0],s=!1;if(i)for(var r=0;r=o.length&&(u=o.length-1),(p||n.initialSlide||0)===(d||0)&&a&&s.emit("beforeSlideChangeStart");var h,v=-o[u];if(s.updateProgress(v),n.normalizeSlideIndex)for(var f=0;f=Math.floor(100*l[f])&&(r=f);if(s.initialized&&r!==p){if(!s.allowSlideNext&&vs.translate&&v>s.maxTranslate()&&(p||0)!==r)return!1}return h=pt.slides.length-t.loopedSlides+s/2?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),te.nextTick(function(){t.slideTo(r)})):t.slideTo(r):r>t.slides.length-s?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),te.nextTick(function(){t.slideTo(r)})):t.slideTo(r)}else t.slideTo(r)}};var h={loopCreate:function(){var i=this,e=i.params,t=i.$wrapperEl;t.children("."+e.slideClass+"."+e.slideDuplicateClass).remove();var s=t.children("."+e.slideClass);if(e.loopFillGroupWithBlank){var a=e.slidesPerGroup-s.length%e.slidesPerGroup;if(a!==e.slidesPerGroup){for(var r=0;rs.length&&(i.loopedSlides=s.length);var o=[],l=[];s.each(function(e,t){var a=L(t);e=s.length-i.loopedSlides&&o.push(t),a.attr("data-swiper-slide-index",e)});for(var d=0;d=s.length-r){e=-s.length+i+r,e+=r,t.slideTo(e,0,!1,!0)&&0!=p&&t.setTranslate((d?-t.translate:t.translate)-p)}t.allowSlidePrev=n,t.allowSlideNext=o},loopDestroy:function(){var e=this.$wrapperEl,t=this.params,a=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass+",."+t.slideClass+"."+t.slideBlankClass).remove(),a.removeAttr("data-swiper-slide-index")}};var v={setGrabCursor:function(e){if(!(ae.touch||!this.params.simulateTouch||this.params.watchOverflow&&this.isLocked)){var t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"}},unsetGrabCursor:function(){ae.touch||this.params.watchOverflow&&this.isLocked||(this.el.style.cursor="")}};var f={appendSlide:function(e){var t=this,a=t.$wrapperEl,i=t.params;if(i.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s=ee.screen.width-d)){if(te.extend(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),s.startX=n,s.startY=o,a.touchStartTime=te.now(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,0s.startY&&t.translate>=t.minTranslate())return a.isTouched=!1,void(a.isMoved=!1)}else if(ls.startX&&t.translate>=t.minTranslate())return;if(a.isTouchEvent&&m.activeElement&&n.target===m.activeElement&&L(n.target).is(a.formElements))return a.isMoved=!0,void(t.allowClick=!1);if(a.allowTouchCallbacks&&t.emit("touchMove",n),!(n.targetTouches&&1i.touchAngle:90-u>i.touchAngle);if(a.isScrolling&&t.emit("touchMoveOpposite",n),void 0===a.startMoving&&(s.currentX===s.startX&&s.currentY===s.startY||(a.startMoving=!0)),a.isScrolling)a.isTouched=!1;else if(a.startMoving){t.allowClick=!1,n.preventDefault(),i.touchMoveStopPropagation&&!i.nested&&n.stopPropagation(),a.isMoved||(i.loop&&t.loopFix(),a.startTranslate=t.getTranslate(),t.setTransition(0),t.animating&&t.$wrapperEl.trigger("webkitTransitionEnd transitionend"),a.allowMomentumBounce=!1,!i.grabCursor||!0!==t.allowSlideNext&&!0!==t.allowSlidePrev||t.setGrabCursor(!0),t.emit("sliderFirstMove",n)),t.emit("sliderMove",n),a.isMoved=!0;var h=t.isHorizontal()?p:c;s.diff=h,h*=i.touchRatio,r&&(h=-h),t.swipeDirection=0t.minTranslate()?(v=!1,i.resistance&&(a.currentTranslate=t.minTranslate()-1+Math.pow(-t.minTranslate()+a.startTranslate+h,f))):h<0&&a.currentTranslatea.startTranslate&&(a.currentTranslate=a.startTranslate),0i.threshold||a.allowThresholdMove))return void(a.currentTranslate=a.startTranslate);if(!a.allowThresholdMove)return a.allowThresholdMove=!0,s.startX=s.currentX,s.startY=s.currentY,a.currentTranslate=a.startTranslate,void(s.diff=t.isHorizontal()?s.currentX-s.startX:s.currentY-s.startY)}i.followFinger&&((i.freeMode||i.watchSlidesProgress||i.watchSlidesVisibility)&&(t.updateActiveIndex(),t.updateSlidesClasses()),i.freeMode&&(0===a.velocities.length&&a.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:a.touchStartTime}),a.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:te.now()})),t.updateProgress(a.currentTranslate),t.setTranslate(a.currentTranslate))}}}}}else a.startMoving&&a.isScrolling&&t.emit("touchMoveOpposite",n)}.bind(e),e.onTouchEnd=function(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid,d=e;if(d.originalEvent&&(d=d.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",d),a.allowTouchCallbacks=!1,!a.isTouched)return a.isMoved&&i.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,void(a.startMoving=!1);i.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,c=te.now(),u=c-a.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap",d),u<300&&300-t.maxTranslate())return void(t.slides.lengtht.minTranslate())i.freeModeMomentumBounce?(w-t.minTranslate()>E&&(w=t.minTranslate()+E),y=t.minTranslate(),T=!0,a.allowMomentumBounce=!0):w=t.minTranslate(),i.loop&&i.centeredSlides&&(x=!0);else if(i.freeModeSticky){for(var S,C=0;C-w){S=C;break}w=-(w=Math.abs(l[S]-w)=i.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var M=0,P=t.slidesSizesGrid[0],k=0;k=o[k]&&p=o[k]&&(M=k,P=o[o.length-1]-o[o.length-2]);var z=(p-o[M])/P;if(u>i.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(z>=i.longSwipesRatio?t.slideTo(M+i.slidesPerGroup):t.slideTo(M)),"prev"===t.swipeDirection&&(z>1-i.longSwipesRatio?t.slideTo(M+i.slidesPerGroup):t.slideTo(M))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&t.slideTo(M+i.slidesPerGroup),"prev"===t.swipeDirection&&t.slideTo(M)}}}.bind(e),e.onClick=function(e){this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}.bind(e);var r="container"===t.touchEventsTarget?i:s,n=!!t.nested;if(ae.touch||!ae.pointerEvents&&!ae.prefixedPointerEvents){if(ae.touch){var o=!("touchstart"!==a.start||!ae.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.addEventListener(a.start,e.onTouchStart,o),r.addEventListener(a.move,e.onTouchMove,ae.passiveListener?{passive:!1,capture:n}:n),r.addEventListener(a.end,e.onTouchEnd,o),w||(m.addEventListener("touchstart",y),w=!0)}(t.simulateTouch&&!g.ios&&!g.android||t.simulateTouch&&!ae.touch&&g.ios)&&(r.addEventListener("mousedown",e.onTouchStart,!1),m.addEventListener("mousemove",e.onTouchMove,n),m.addEventListener("mouseup",e.onTouchEnd,!1))}else r.addEventListener(a.start,e.onTouchStart,!1),m.addEventListener(a.move,e.onTouchMove,n),m.addEventListener(a.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.addEventListener("click",e.onClick,!0),e.on(g.ios||g.android?"resize orientationchange observerUpdate":"resize observerUpdate",b,!0)},detachEvents:function(){var e=this,t=e.params,a=e.touchEvents,i=e.el,s=e.wrapperEl,r="container"===t.touchEventsTarget?i:s,n=!!t.nested;if(ae.touch||!ae.pointerEvents&&!ae.prefixedPointerEvents){if(ae.touch){var o=!("onTouchStart"!==a.start||!ae.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.removeEventListener(a.start,e.onTouchStart,o),r.removeEventListener(a.move,e.onTouchMove,n),r.removeEventListener(a.end,e.onTouchEnd,o)}(t.simulateTouch&&!g.ios&&!g.android||t.simulateTouch&&!ae.touch&&g.ios)&&(r.removeEventListener("mousedown",e.onTouchStart,!1),m.removeEventListener("mousemove",e.onTouchMove,n),m.removeEventListener("mouseup",e.onTouchEnd,!1))}else r.removeEventListener(a.start,e.onTouchStart,!1),m.removeEventListener(a.move,e.onTouchMove,n),m.removeEventListener(a.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.removeEventListener("click",e.onClick,!0),e.off(g.ios||g.android?"resize orientationchange observerUpdate":"resize observerUpdate",b)}},breakpoints:{setBreakpoint:function(){var e=this,t=e.activeIndex,a=e.initialized,i=e.loopedSlides;void 0===i&&(i=0);var s=e.params,r=s.breakpoints;if(r&&(!r||0!==Object.keys(r).length)){var n=e.getBreakpoint(r);if(n&&e.currentBreakpoint!==n){var o=n in r?r[n]:void 0;o&&["slidesPerView","spaceBetween","slidesPerGroup"].forEach(function(e){var t=o[e];void 0!==t&&(o[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")});var l=o||e.originalParams,d=l.direction&&l.direction!==s.direction,p=s.loop&&(l.slidesPerView!==s.slidesPerView||d);d&&a&&e.changeDirection(),te.extend(e.params,l),te.extend(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=n,p&&a&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-i+e.loopedSlides,0,!1)),e.emit("breakpoint",l)}}},getBreakpoint:function(e){if(e){var t=!1,a=[];Object.keys(e).forEach(function(e){a.push(e)}),a.sort(function(e,t){return parseInt(e,10)-parseInt(t,10)});for(var i=0;i=ee.innerWidth&&!t&&(t=s)}return t||"max"}}},checkOverflow:{checkOverflow:function(){var e=this,t=e.isLocked;e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),t&&t!==e.isLocked&&(e.isEnd=!1,e.navigation.update())}},classes:{addClasses:function(){var t=this.classNames,a=this.params,e=this.rtl,i=this.$el,s=[];s.push("initialized"),s.push(a.direction),a.freeMode&&s.push("free-mode"),ae.flexbox||s.push("no-flexbox"),a.autoHeight&&s.push("autoheight"),e&&s.push("rtl"),1'+e+"
");return s.attr("data-swiper-slide-index")||s.attr("data-swiper-slide-index",t),i.cache&&(a.virtual.cache[t]=s),s},appendSlide:function(e){if("object"==typeof e&&"length"in e)for(var t=0;tMath.abs(n.pixelY)))return!0;s=n.pixelX*r}else{if(!(Math.abs(n.pixelY)>Math.abs(n.pixelX)))return!0;s=n.pixelY}else s=Math.abs(n.pixelX)>Math.abs(n.pixelY)?-n.pixelX*r:-n.pixelY;if(0===s)return!0;if(i.invert&&(s=-s),a.params.freeMode){a.params.loop&&a.loopFix();var o=a.getTranslate()+s*i.sensitivity,l=a.isBeginning,d=a.isEnd;if(o>=a.minTranslate()&&(o=a.minTranslate()),o<=a.maxTranslate()&&(o=a.maxTranslate()),a.setTransition(0),a.setTranslate(o),a.updateProgress(),a.updateActiveIndex(),a.updateSlidesClasses(),(!l&&a.isBeginning||!d&&a.isEnd)&&a.updateSlidesClasses(),a.params.freeModeSticky&&(clearTimeout(a.mousewheel.timeout),a.mousewheel.timeout=te.nextTick(function(){a.slideToClosest()},300)),a.emit("scroll",t),a.params.autoplay&&a.params.autoplayDisableOnInteraction&&a.autoplay.stop(),o===a.minTranslate()||o===a.maxTranslate())return!0}else{if(60a-1-2*e.loopedSlides&&(r-=a-2*e.loopedSlides),n-1s.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=s.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),o=r-e.pagination.dynamicBulletIndex,d=((l=o+(Math.min(p.length,s.dynamicMainBullets)-1))+o)/2),p.removeClass(s.bulletActiveClass+" "+s.bulletActiveClass+"-next "+s.bulletActiveClass+"-next-next "+s.bulletActiveClass+"-prev "+s.bulletActiveClass+"-prev-prev "+s.bulletActiveClass+"-main"),1";i.html(s),e.pagination.bullets=i.find("."+t.bulletClass)}"fraction"===t.type&&(s=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):' / ',i.html(s)),"progressbar"===t.type&&(s=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'',i.html(s)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var a=this,e=a.params.pagination;if(e.el){var t=L(e.el);0!==t.length&&(a.params.uniqueNavElements&&"string"==typeof e.el&&1
'),s.append(r)),te.extend(t,{$el:s,el:s[0],$dragEl:r,dragEl:r[0]}),i.draggable&&t.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},X={setTransform:function(e,t){var a=this.rtl,i=L(e),s=a?-1:1,r=i.attr("data-swiper-parallax")||"0",n=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y"),l=i.attr("data-swiper-parallax-scale"),d=i.attr("data-swiper-parallax-opacity");if(n||o?(n=n||"0",o=o||"0"):this.isHorizontal()?(n=r,o="0"):(o=r,n="0"),n=0<=n.indexOf("%")?parseInt(n,10)*t*s+"%":n*t*s+"px",o=0<=o.indexOf("%")?parseInt(o,10)*t+"%":o*t+"px",null!=d){var p=d-(d-1)*(1-Math.abs(t));i[0].style.opacity=p}if(null==l)i.transform("translate3d("+n+", "+o+", 0px)");else{var c=l-(l-1)*(1-Math.abs(t));i.transform("translate3d("+n+", "+o+", 0px) scale("+c+")")}},setTranslate:function(){var i=this,e=i.$el,t=i.slides,s=i.progress,r=i.snapGrid;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function(e,t){i.parallax.setTransform(t,s)}),t.each(function(e,t){var a=t.progress;1i.maxRatio&&(a.scale=i.maxRatio-1+Math.pow(a.scale-i.maxRatio+1,.5)),a.scales.touchesStart.x))return void(s.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.ys.touchesStart.y))return void(s.isTouched=!1)}e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentXs.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentYs.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),r.prevPositionX||(r.prevPositionX=s.touchesCurrent.x),r.prevPositionY||(r.prevPositionY=s.touchesCurrent.y),r.prevTime||(r.prevTime=Date.now()),r.x=(s.touchesCurrent.x-r.prevPositionX)/(Date.now()-r.prevTime)/2,r.y=(s.touchesCurrent.y-r.prevPositionY)/(Date.now()-r.prevTime)/2,Math.abs(s.touchesCurrent.x-r.prevPositionX)<2&&(r.x=0),Math.abs(s.touchesCurrent.y-r.prevPositionY)<2&&(r.y=0),r.prevPositionX=s.touchesCurrent.x,r.prevPositionY=s.touchesCurrent.y,r.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,a=e.image,i=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!a.isTouched||!a.isMoved)return a.isTouched=!1,void(a.isMoved=!1);a.isTouched=!1,a.isMoved=!1;var s=300,r=300,n=i.x*s,o=a.currentX+n,l=i.y*r,d=a.currentY+l;0!==i.x&&(s=Math.abs((o-a.currentX)/i.x)),0!==i.y&&(r=Math.abs((d-a.currentY)/i.y));var p=Math.max(s,r);a.currentX=o,a.currentY=d;var c=a.width*e.scale,u=a.height*e.scale;a.minX=Math.min(t.slideWidth/2-c/2,0),a.maxX=-a.minX,a.minY=Math.min(t.slideHeight/2-u/2,0),a.maxY=-a.minY,a.currentX=Math.max(Math.min(a.currentX,a.maxX),a.minX),a.currentY=Math.max(Math.min(a.currentY,a.maxY),a.minY),t.$imageWrapEl.transition(p).transform("translate3d("+a.currentX+"px, "+a.currentY+"px,0)")}},onTransitionEnd:function(){var e=this.zoom,t=e.gesture;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,e.currentScale=1,t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,a,i,s,r,n,o,l,d,p,c,u,h,v,f,m,g=this,b=g.zoom,w=g.params.zoom,y=b.gesture,x=b.image;y.$slideEl||(y.$slideEl=g.clickedSlide?L(g.clickedSlide):g.slides.eq(g.activeIndex),y.$imageEl=y.$slideEl.find("img, svg, canvas"),y.$imageWrapEl=y.$imageEl.parent("."+w.containerClass)),y.$imageEl&&0!==y.$imageEl.length&&(y.$slideEl.addClass(""+w.zoomedSlideClass),a=void 0===x.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,"touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=x.touchesStart.x,x.touchesStart.y),b.scale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,b.currentScale=y.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,e?(f=y.$slideEl[0].offsetWidth,m=y.$slideEl[0].offsetHeight,i=y.$slideEl.offset().left+f/2-t,s=y.$slideEl.offset().top+m/2-a,o=y.$imageEl[0].offsetWidth,l=y.$imageEl[0].offsetHeight,d=o*b.scale,p=l*b.scale,h=-(c=Math.min(f/2-d/2,0)),v=-(u=Math.min(m/2-p/2,0)),(r=i*b.scale)>1]<=t?i=s:a=s;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=o(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){var t=this;t.controller.spline||(t.controller.spline=t.params.loop?new F.LinearSpline(t.slidesGrid,e.slidesGrid):new F.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate:function(e,t){var a,i,s=this,r=s.controller.control;function n(e){var t=s.rtlTranslate?-s.translate:s.translate;"slide"===s.params.controller.by&&(s.controller.getInterpolateFunction(e),i=-s.controller.spline.interpolate(-t)),i&&"container"!==s.params.controller.by||(a=(e.maxTranslate()-e.minTranslate())/(s.maxTranslate()-s.minTranslate()),i=(t-s.minTranslate())*a+e.minTranslate()),s.params.controller.inverse&&(i=e.maxTranslate()-i),e.updateProgress(i),e.setTranslate(i,s),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o
'),i.append(e)),e.css({height:r+"px"})):0===(e=a.find(".swiper-cube-shadow")).length&&(e=L('
'),a.append(e)));for(var h=0;h'),v.append(E)),0===S.length&&(S=L('
'),v.append(S)),E.length&&(E[0].style.opacity=Math.max(-b,0)),S.length&&(S[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+l/2+"px","-moz-transform-origin":"50% 50% -"+l/2+"px","-ms-transform-origin":"50% 50% -"+l/2+"px","transform-origin":"50% 50% -"+l/2+"px"}),d.shadow)if(p)e.transform("translate3d(0px, "+(r/2+d.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+d.shadowScale+")");else{var C=Math.abs(u)-90*Math.floor(Math.abs(u)/90),M=1.5-(Math.sin(2*C*Math.PI/360)/2+Math.cos(2*C*Math.PI/360)/2),P=d.shadowScale,k=d.shadowScale/M,z=d.shadowOffset;e.transform("scale3d("+P+", 1, "+k+") translate3d(0px, "+(n/2+z)+"px, "+-n/2/k+"px) rotateX(-90deg)")}var $=ie.isSafari||ie.isUiWebView?-l/2:0;i.transform("translate3d(0px,0,"+$+"px) rotateX("+(t.isHorizontal()?0:u)+"deg) rotateY("+(t.isHorizontal()?-u:0)+"deg)")},setTransition:function(e){var t=this.$el;this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}},_={setTranslate:function(){for(var e=this,t=e.slides,a=e.rtlTranslate,i=0;i'),s.append(p)),0===c.length&&(c=L('
'),s.append(c)),p.length&&(p[0].style.opacity=Math.max(-r,0)),c.length&&(c[0].style.opacity=Math.max(r,0))}s.transform("translate3d("+l+"px, "+d+"px, 0px) rotateX("+o+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var a=this,t=a.slides,i=a.activeIndex,s=a.$wrapperEl;if(t.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),a.params.virtualTranslate&&0!==e){var r=!1;t.eq(i).transitionEnd(function(){if(!r&&a&&!a.destroyed){r=!0,a.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],t=0;t'),v.append(E)),0===S.length&&(S=L('
'),v.append(S)),E.length&&(E[0].style.opacity=0')}}),Object.keys(R).forEach(function(e){t.a11y[e]=R[e].bind(t)})},on:{init:function(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate:function(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy:function(){this.params.a11y.enabled&&this.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create:function(){var e=this;te.extend(e,{history:{init:q.init.bind(e),setHistory:q.setHistory.bind(e),setHistoryPopState:q.setHistoryPopState.bind(e),scrollToSlide:q.scrollToSlide.bind(e),destroy:q.destroy.bind(e)}})},on:{init:function(){this.params.history.enabled&&this.history.init()},destroy:function(){this.params.history.enabled&&this.history.destroy()},transitionEnd:function(){this.history.initialized&&this.history.setHistory(this.params.history.key,this.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){var e=this;te.extend(e,{hashNavigation:{initialized:!1,init:W.init.bind(e),destroy:W.destroy.bind(e),setHash:W.setHash.bind(e),onHashCange:W.onHashCange.bind(e)}})},on:{init:function(){this.params.hashNavigation.enabled&&this.hashNavigation.init()},destroy:function(){this.params.hashNavigation.enabled&&this.hashNavigation.destroy()},transitionEnd:function(){this.hashNavigation.initialized&&this.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){var t=this;te.extend(t,{autoplay:{running:!1,paused:!1,run:j.run.bind(t),start:j.start.bind(t),stop:j.stop.bind(t),pause:j.pause.bind(t),onTransitionEnd:function(e){t&&!t.destroyed&&t.$wrapperEl&&e.target===this&&(t.$wrapperEl[0].removeEventListener("transitionend",t.autoplay.onTransitionEnd),t.$wrapperEl[0].removeEventListener("webkitTransitionEnd",t.autoplay.onTransitionEnd),t.autoplay.paused=!1,t.autoplay.running?t.autoplay.run():t.autoplay.stop())}}})},on:{init:function(){this.params.autoplay.enabled&&this.autoplay.start()},beforeTransitionStart:function(e,t){this.autoplay.running&&(t||!this.params.autoplay.disableOnInteraction?this.autoplay.pause(e):this.autoplay.stop())},sliderFirstMove:function(){this.autoplay.running&&(this.params.autoplay.disableOnInteraction?this.autoplay.stop():this.autoplay.pause())},destroy:function(){this.autoplay.running&&this.autoplay.stop()}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){te.extend(this,{fadeEffect:{setTranslate:U.setTranslate.bind(this),setTransition:U.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("fade"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"fade");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};te.extend(e.params,t),te.extend(e.originalParams,t)}},setTranslate:function(){"fade"===this.params.effect&&this.fadeEffect.setTranslate()},setTransition:function(e){"fade"===this.params.effect&&this.fadeEffect.setTransition(e)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){te.extend(this,{cubeEffect:{setTranslate:K.setTranslate.bind(this),setTransition:K.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("cube"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};te.extend(e.params,t),te.extend(e.originalParams,t)}},setTranslate:function(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition:function(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){te.extend(this,{flipEffect:{setTranslate:_.setTranslate.bind(this),setTransition:_.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;if("flip"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};te.extend(e.params,t),te.extend(e.originalParams,t)}},setTranslate:function(){"flip"===this.params.effect&&this.flipEffect.setTranslate()},setTransition:function(e){"flip"===this.params.effect&&this.flipEffect.setTransition(e)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0}},create:function(){te.extend(this,{coverflowEffect:{setTranslate:Z.setTranslate.bind(this),setTransition:Z.setTransition.bind(this)}})},on:{beforeInit:function(){var e=this;"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},setTranslate:function(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition:function(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}},{name:"thumbs",params:{thumbs:{swiper:null,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create:function(){te.extend(this,{thumbs:{swiper:null,init:Q.init.bind(this),update:Q.update.bind(this),onThumbClick:Q.onThumbClick.bind(this)}})},on:{beforeInit:function(){var e=this.params.thumbs;e&&e.swiper&&(this.thumbs.init(),this.thumbs.update(!0))},slideChange:function(){this.thumbs.swiper&&this.thumbs.update()},update:function(){this.thumbs.swiper&&this.thumbs.update()},resize:function(){this.thumbs.swiper&&this.thumbs.update()},observerUpdate:function(){this.thumbs.swiper&&this.thumbs.update()},setTransition:function(e){var t=this.thumbs.swiper;t&&t.setTransition(e)},beforeDestroy:function(){var e=this.thumbs.swiper;e&&this.thumbs.swiperCreated&&e&&e.destroy()}}}];return void 0===S.use&&(S.use=S.Class.use,S.installModule=S.Class.installModule),S.use(J),S}); +//# sourceMappingURL=swiper.min.js.map diff --git a/src/decorators/template.decorator.ts b/src/decorators/template.decorator.ts index cecff1a..352d1b9 100644 --- a/src/decorators/template.decorator.ts +++ b/src/decorators/template.decorator.ts @@ -46,6 +46,6 @@ export function Template(options: TemplateOptions) { ${async(this.getTemplate())} `; }; - Component(options)(target); + return Component(options)(target); }; } diff --git a/src/graph/graph.component.ts b/src/graph/graph.component.ts index 458b0b2..613e434 100644 --- a/src/graph/graph.component.ts +++ b/src/graph/graph.component.ts @@ -36,7 +36,7 @@ import './style.component'; template(this: GraphComponent) { return html` ${async( this.result.pipe( diff --git a/yarn.lock b/yarn.lock index d69b728..0e2b41b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,29 +18,29 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@rxdi/core@^0.7.50": - version "0.7.50" - resolved "https://registry.yarnpkg.com/@rxdi/core/-/core-0.7.50.tgz#35f9386e86302b143cf533529c2f1d566db123f3" - integrity sha512-jpG321HJ2bCjm9O6RBBwRobgvJsPvk6Agh1I8je482/4gGbVrqcH6sQ5td2SsdiGb0X88ZGwObpmrrxhEssn8w== +"@rhtml/di@^0.0.62": + version "0.0.62" + resolved "https://registry.yarnpkg.com/@rhtml/di/-/di-0.0.62.tgz#3eb9e8e40f102ab2995941544debea396447cc3c" + integrity sha512-XbHLqE58VTzDToL4x/W+5AynW/kHmH3fHPiybSMDS0TawYMwGhrnfKyPJAjlpmSb3hOZHH+jiZokmsSNq5Py4g== + +"@rxdi/core@^0.7.81", "@rxdi/core@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/core/-/core-0.7.82.tgz#a70b273a8c87d55baaac8966d764a0d358364dee" + integrity sha512-PcN5oAVcPoq2xlCat3Mcth4gRgHGnxdsslOluoEdUoQnU1TVDJTVgH0Lk9nNnSb2NhaL6e6YYBApXTT0VoVVdA== dependencies: reflect-metadata "0.1.13" rxjs "^6.5.3" systemjs "0.21.4" -"@rxdi/firelink@^0.7.52": - version "0.7.52" - resolved "https://registry.yarnpkg.com/@rxdi/firelink/-/firelink-0.7.52.tgz#6a0bf15523189de32baf6ef63c190e25584c79c0" - integrity sha512-8L1UVFtGYGXpyvohujvpCvlCJwPKoVC/07ovcfyvIcDjeXiwb4p3Mpl5ZN7nv5HvORaaKlN/TJlis+yHXvJ1Zg== - -"@rxdi/forms@^0.7.50": - version "0.7.50" - resolved "https://registry.yarnpkg.com/@rxdi/forms/-/forms-0.7.50.tgz#6165437d57d10948c223067e7c342f8efad1f079" - integrity sha512-2YgGgDLGQbSdd13VadBjIBdBU2Z+RLKZLZXRrynXd/aqZodocXqXDU77oXHyZ087H5WnvPdO70aQqc+jiNyN+A== +"@rxdi/forms@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/forms/-/forms-0.7.82.tgz#6006d07399a37ca3abcb9469c0737e62d2d98f25" + integrity sha512-PMokbUvukIMeiUwxm5FUdCc6JuTOU+HwhnRuPjyL+0X/YFmKjOcXYMl9DaYR/Y6WVsv9GdnCtWVojgx7wxKoFg== -"@rxdi/graphql-client@^0.7.50": - version "0.7.50" - resolved "https://registry.yarnpkg.com/@rxdi/graphql-client/-/graphql-client-0.7.50.tgz#58f199fd2aa4f62f9c0fb8bccfa304c8e8eef0ec" - integrity sha512-zCGIs7ytfsNK5UDTTbF5H2rGGbyZd5kffI5v4nxh2jc0oB2eadk4f7wSKa8eK+DxvSKX2OCMhXUtQ0UWDrgblQ== +"@rxdi/graphql-client@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/graphql-client/-/graphql-client-0.7.82.tgz#e2ea8a1969cdded8aaddb8ed6ba9a666414eaead" + integrity sha512-chjpEycNJco86MVuhNZHmVFFEQqqtAzLC6mE6UflROEEvW184fYJziifOILbXDHTQJ2KDN2NpmptE1ffBfmlEw== dependencies: apollo-cache-inmemory "^1.6.2" apollo-client "^2.6.3" @@ -50,18 +50,26 @@ apollo-link-ws "^1.0.18" subscriptions-transport-ws "^0.9.16" -"@rxdi/lit-html@^0.7.51": - version "0.7.51" - resolved "https://registry.yarnpkg.com/@rxdi/lit-html/-/lit-html-0.7.51.tgz#7e0b56c9387a07117515bd44fe4cfd682bfa35ed" - integrity sha512-PAEPTV3ir6WvDDXvCk6gklzraG4hbelwptiF3Alh+WC2bUd3y/4Af7F+KQjbp0EbxptmgpieD9RjFjPcqurRRg== +"@rxdi/hotkeys@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/hotkeys/-/hotkeys-0.7.82.tgz#68be4b3b2502547702b924a114f5a6b83387bdca" + integrity sha512-nFl2uGwj7jf7Snaga9b81W77btVR0547Ws3HigtjqGHblr+jdMm7pGtYX0MHlyDh5GSvzplcErcx4suo1ofS+w== + dependencies: + "@rxdi/core" "^0.7.81" + mousetrap "^1.6.5" + rxjs "^6.5.3" + +"@rxdi/lit-html@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/lit-html/-/lit-html-0.7.82.tgz#9f68369035c2fdad90a0319daa421ba2f6023a84" + integrity sha512-3ttTXEgQ8PzbtN7R7SHwgFtjeIoaSsySdHCwo/Bt9kLt/AtnfebGJ021g7yUSFhYAqKy8lcsWJiJJYm0AuHd0w== -"@rxdi/router@^0.7.40": - version "0.7.40" - resolved "https://registry.yarnpkg.com/@rxdi/router/-/router-0.7.40.tgz#b3ea0541c02eac31945c0f0542c0e123af596ffe" - integrity sha512-DXwORrMZ0/ntyKXuMWEpFCapcQCHa2K2HEESQS1pLOB9jOrWqSJSI8Ii5u8SeZ4JNybGmT2kgmAzrynfjv1VVA== +"@rxdi/router@^0.7.82": + version "0.7.82" + resolved "https://registry.yarnpkg.com/@rxdi/router/-/router-0.7.82.tgz#60159f38cc929ab8536914c370a48c6a8e0dab09" + integrity sha512-v/YMy/LNACi0/4lkXkRQgm1I5r+V6Lcz8jekXFDk0G76ptjPH11HswUTnMeZObaR0e/TYiGxCSeAq9SF/yEzjg== dependencies: - "@vaadin/router" "^1.2.0" - router-slot "^1.5.2" + router-slot "^1.5.4" "@types/animejs@^3.1.0": version "3.1.0" @@ -103,26 +111,6 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== -"@vaadin/router@^1.2.0": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@vaadin/router/-/router-1.5.2.tgz#a80a1146e03806d4476c957c69681e6b681fcc66" - integrity sha512-Byjz/FQ7ohGZRrxZnoZ2DJgTUWtj7YLKFY9L4iaWw/NW9fklPyn+wYRgPfLc/uk3srBr1Hc9JWg/b++lE6lyfw== - dependencies: - "@vaadin/vaadin-usage-statistics" "^2.0.8" - path-to-regexp "2.4.0" - -"@vaadin/vaadin-development-mode-detector@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@vaadin/vaadin-development-mode-detector/-/vaadin-development-mode-detector-2.0.4.tgz#f49c8009856bead92d248377c36b295b5aae78e5" - integrity sha512-S+PaFrZpK8uBIOnIHxjntTrgumd5ztuCnZww96ydGKXgo9whXfZsbMwDuD/102a/IuPUMyF+dh/n3PbWzJ6igA== - -"@vaadin/vaadin-usage-statistics@^2.0.8": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@vaadin/vaadin-usage-statistics/-/vaadin-usage-statistics-2.0.11.tgz#6712d389089f248d2865ed2d74c665103b354378" - integrity sha512-6isKfOQnb6BSj181nehId4w8SOUKDLNcNza1RKdiNGgnOlqjZx/p4+FbJS9PQ4q0lwP1/TQa3Vx7SAWdoVfNOQ== - dependencies: - "@vaadin/vaadin-development-mode-detector" "^2.0.0" - "@wry/context@^0.4.0": version "0.4.4" resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8" @@ -746,6 +734,11 @@ indexes-of@^1.0.1: resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= +infinite-carousel-wc@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/infinite-carousel-wc/-/infinite-carousel-wc-0.5.3.tgz#68d8b770f203065b45de5ae3d5d153a1a768c9d8" + integrity sha512-EFnTaoS1P0s3llBScniG525E81PciUlsKOcX9SI6AiQmKb1IIcRmJo6O6u2o38pWWOHaqgp++mXfovXcIAPO7Q== + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -896,6 +889,11 @@ mkdirp@~0.5.1: dependencies: minimist "0.0.8" +mousetrap@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9" + integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -1041,11 +1039,6 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -path-to-regexp@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.4.0.tgz#35ce7f333d5616f1c1e1bfe266c3aba2e5b2e704" - integrity sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w== - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -1395,6 +1388,11 @@ router-slot@^1.5.2: resolved "https://registry.yarnpkg.com/router-slot/-/router-slot-1.5.2.tgz#89f5f82c79b1e5343d449083e9f09bbd9e55a375" integrity sha512-NUvYbjsd1CAhhc23V6+UQsUKS+ZVfPe0esRPTDKW0iV+dilfB3Tn5A1SwIkEnf7BP4flUNXKEVa21fvaGn3JVQ== +router-slot@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/router-slot/-/router-slot-1.5.4.tgz#2262a1eaf49962e3f922f84ae4692abe0b25a59c" + integrity sha512-tHqDp0ZZ/KF+j3+OlPbxHoYRkMrHQrxU8D0kUoUhZEevj+j/sMV2pXmZ2jL4oND2o6PyTsCYz1VRqZr7mBfaTg== + run-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" @@ -1613,10 +1611,10 @@ type-fest@^0.6.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -typescript@^3.5.3: - version "3.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.2.tgz#27e489b95fa5909445e9fef5ee48d81697ad18fb" - integrity sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ== +typescript@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== uniq@^1.0.1: version "1.0.1"