From 5b707ec169ccbd0142cb9f40772d4691aa72a3b5 Mon Sep 17 00:00:00 2001 From: Lex Lim Date: Mon, 24 Oct 2022 11:31:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Feed=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IsekaiWidgets.i18n.php | 7 + IsekaiWidgets.zip | Bin 71021 -> 0 bytes README.md | 96 +- docs/previewCard-design.md | 20 +- extension.json | 260 +- i18n/en.json | 52 +- i18n/ja.json | 32 +- i18n/zh-hans.json | 54 +- i18n/zh-hant.json | 52 +- includes/CreatePageWidget.php | 32 +- includes/DiscoverWidget.php | 32 +- includes/ExtraFontWidget.php | 76 +- includes/FeedListWidget.php | 17 + includes/FontFaceWidget.php | 104 +- includes/Html5Widget.php | 35 + includes/PreviewCardWidget.php | 52 +- includes/TileGroupWidget.php | 186 +- includes/TileWidget.php | 431 +- includes/Utils.php | 41 +- includes/Widgets.php | 54 +- .../createPage/ext.isekai.createPage.base.js | 14 +- .../ext.isekai.createPage.base.less | 132 +- modules/createPage/ext.isekai.createPage.tpl | 18 +- modules/discover/ext.isekai.discover.base.js | 14 +- .../discover/ext.isekai.discover.base.less | 291 +- .../ext.isekai.discover.otherLanguage.less | 206 +- modules/discover/ext.isekai.discover.tpl | 24 +- modules/ext.isekai.alert.less | 0 modules/ext.isekai.collapse.js | 33 + modules/ext.isekai.collapse.less | 64 + modules/ext.isekai.grid.less | 34 +- modules/ext.isekai.widgets.global.less | 52 + modules/feedList/ext.isekai.feedList.js | 122 + modules/feedList/ext.isekai.feedList.less | 92 + modules/feedList/ext.isekai.feedList.tpl | 24 + modules/previewCard/ext.isekai.previewCard.js | 190 +- .../previewCard/ext.isekai.previewCard.less | 236 +- ...ewCard.html => ext.isekai.previewCard.tpl} | 38 +- modules/tile/style.less | 40 +- modules/tile/tile.css | 2782 ++++---- modules/tile/tile.js | 1696 ++--- package-lock.json | 6248 ++++++++--------- src/createPage/ext.isekai.createPage.js | 214 +- src/discover/ext.isekai.discover.js | 288 +- src/moduleRegister.js | 36 +- src/previewCard/ext.isekai.previewCard.js | 52 +- src/tile/include/default-icons.less | 126 +- src/tile/include/mixins.less | 1074 +-- src/tile/include/vars.less | 628 +- src/tile/tile.less | 964 +-- 50 files changed, 8956 insertions(+), 8409 deletions(-) create mode 100644 IsekaiWidgets.i18n.php delete mode 100644 IsekaiWidgets.zip create mode 100644 includes/FeedListWidget.php create mode 100644 includes/Html5Widget.php delete mode 100644 modules/ext.isekai.alert.less create mode 100644 modules/ext.isekai.collapse.js create mode 100644 modules/ext.isekai.collapse.less create mode 100644 modules/ext.isekai.widgets.global.less create mode 100644 modules/feedList/ext.isekai.feedList.js create mode 100644 modules/feedList/ext.isekai.feedList.less create mode 100644 modules/feedList/ext.isekai.feedList.tpl rename modules/previewCard/{ext.isekai.previewCard.html => ext.isekai.previewCard.tpl} (76%) diff --git a/IsekaiWidgets.i18n.php b/IsekaiWidgets.i18n.php new file mode 100644 index 0000000..d803955 --- /dev/null +++ b/IsekaiWidgets.i18n.php @@ -0,0 +1,7 @@ + [ + 'htmldetails' => [0, 'htmldetails'], + 'htmlsummary' => [0, 'htmlsummary'], + ], +]; \ No newline at end of file diff --git a/IsekaiWidgets.zip b/IsekaiWidgets.zip deleted file mode 100644 index 25feeddc81cb6395fd6c4bbb99bb8f105019e2d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71021 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 diff --git a/README.md b/README.md index f801f0c..39e2733 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,49 @@ -# Isekai Create Page widget -## Useage -``` - -``` - -## Screenshots -![Screenshot](https://imgur.com/IcVNDwW.png) -![Screenshot](https://imgur.com/FAkh3gK.png) - -# 异世界百科 磁贴 -## 截图 -![Screenshot](https://i.imgur.com/RM51jak.png) - -## 用法 -### 磁贴容器 -用来把多个磁贴拼成一块的 - -```html - - - -``` - -参数 - -| 参数名 | 参数值 | 介绍 | -| ------ | ----- | ---- | -| size | xs-12 sm-12 md-12 lg-12 xl-12 xxl-12 | 控制不同屏幕上的显示宽度,和bootstrap的col差不多,最宽为12 | -| title | * | 这一组磁贴的标题 | - -### 磁贴 -显示一个矩形的磁贴 - -```html -title -``` - -参数 - -| 参数名 | 参数值 | 介绍 | -| ------ | ----- | ---- | -| size | app,small,medium,wide,large | 控制磁贴大小 | -| icon | fa fa-fw fa-map | 磁贴的图标,可以是文件路径或者css类 | -| 内容 | title | 磁贴的标题 | -| badge | 1 | 磁贴左上角显示的数字(未读消息) | -| color | #ccc | 磁贴的颜色 | -| href | [[首页]] | 指向链接,支持使用 ```[[]]``` 表示文章链接 | +# Isekai Create Page widget +## Useage +``` + +``` + +## Screenshots +![Screenshot](https://imgur.com/IcVNDwW.png) +![Screenshot](https://imgur.com/FAkh3gK.png) + +# 异世界百科 磁贴 +## 截图 +![Screenshot](https://i.imgur.com/RM51jak.png) + +## 用法 +### 磁贴容器 +用来把多个磁贴拼成一块的 + +```html + + + +``` + +参数 + +| 参数名 | 参数值 | 介绍 | +| ------ | ----- | ---- | +| size | xs-12 sm-12 md-12 lg-12 xl-12 xxl-12 | 控制不同屏幕上的显示宽度,和bootstrap的col差不多,最宽为12 | +| title | * | 这一组磁贴的标题 | + +### 磁贴 +显示一个矩形的磁贴 + +```html +title +``` + +参数 + +| 参数名 | 参数值 | 介绍 | +| ------ | ----- | ---- | +| size | app,small,medium,wide,large | 控制磁贴大小 | +| icon | fa fa-fw fa-map | 磁贴的图标,可以是文件路径或者css类 | +| 内容 | title | 磁贴的标题 | +| badge | 1 | 磁贴左上角显示的数字(未读消息) | +| color | #ccc | 磁贴的颜色 | +| href | [[首页]] | 指向链接,支持使用 ```[[]]``` 表示文章链接 | | grid | 1 2 | grid位置,格式为 ``` ``` | \ No newline at end of file diff --git a/docs/previewCard-design.md b/docs/previewCard-design.md index e2c02fa..4d6a3b2 100644 --- a/docs/previewCard-design.md +++ b/docs/previewCard-design.md @@ -1,10 +1,10 @@ -## 预览卡片设计 -```html - - [[链接1]] - [[链接2]] - - - - -``` +## 预览卡片设计 +```html + + [[链接1]] + [[链接2]] + + + + +``` diff --git a/extension.json b/extension.json index 6a141a3..ad906e0 100644 --- a/extension.json +++ b/extension.json @@ -1,107 +1,155 @@ -{ - "name": "Isekai Discover Box", - "namemsg": "isekai-widgets", - "author": "Hyperzlib", - "version": "1.0.2", - "url": "https://github.com/Isekai-Project/mediawiki-extension-IsekaiWidgets", - "descriptionmsg": "isekai-widgets-desc", - "license-name": "GPL-2.0-or-later", - "type": "parserhook", - "MessagesDirs": { - "IsekaiWidgets": [ - "i18n" - ] - }, - "AutoloadNamespaces": { - "Isekai\\Widgets\\": "includes" - }, - "Hooks": { - "ParserFirstCallInit": "Isekai\\Widgets\\Widgets::onParserSetup" - }, - "ResourceModules": { - "ext.isekai.widgets.global": { - "styles": [ - "ext.isekai.alert.less" - ] - }, - "ext.isekai.createPage": { - "scripts": [ - "createPage/ext.isekai.createPage.js", - "createPage/ext.isekai.createPage.base.js" - ], - "styles": [ - "createPage/ext.isekai.createPage.base.less" - ], - "dependencies": [ - "oojs-ui-core" - ], - "targets": [ - "desktop", - "mobile" - ], - "messages": [ - "isekai-createpage-page-title", - "isekai-createpage-create-page-button", - "isekai-createpage-page-exists", - "isekai-createpage-title-empty", - "isekai-createpage-redirecting" - ] - }, - "ext.isekai.discover": { - "scripts": [ - "discover/ext.isekai.discover.js", - "discover/ext.isekai.discover.base.js" - ], - "styles": [ - "discover/ext.isekai.discover.base.less" - ], - "dependencies": [ - "oojs", - "oojs-ui-core", - "oojs-ui.styles.icons-interactions" - ], - "targets": [ - "desktop", - "mobile" - ], - "messages": [ - "isekai-discover-change-btn", - "isekai-discover-readmore-btn", - "isekai-discover-error-cannotload" - ] - }, - "ext.isekai.previewCard": { - "scripts": [ - "previewCard/ext.isekai.previewCard.js" - ], - "styles": [ - "previewCard/ext.isekai.previewCard.less" - ], - "targets": [ - "desktop", - "mobile" - ], - "messages": [ - - ] - }, - "ext.isekai.tile": { - "scripts": [ - "tile/tile.js" - ], - "styles": [ - "tile/tile.css", - "tile/style.less" - ], - "targets": [ - "desktop", - "mobile" - ] - } - }, - "ResourceFileModulePaths": { - "localBasePath": "modules", - "remoteExtPath": "IsekaiWidgets/modules" - }, - "manifest_version": 1 +{ + "name": "Isekai Discover Box", + "namemsg": "isekai-widgets", + "author": "Hyperzlib", + "version": "1.0.2", + "url": "https://github.com/Isekai-Project/mediawiki-extension-IsekaiWidgets", + "descriptionmsg": "isekai-widgets-desc", + "license-name": "GPL-2.0-or-later", + "type": "parserhook", + "requires": { + "MediaWiki": ">= 1.34.0" + }, + "MessagesDirs": { + "IsekaiWidgets": [ + "i18n" + ] + }, + "ExtensionMessagesFiles": { + "IsekaiWidgetsMagic": "IsekaiWidgets.i18n.php" + }, + "AutoloadNamespaces": { + "Isekai\\Widgets\\": "includes" + }, + "Hooks": { + "ParserFirstCallInit": "Isekai\\Widgets\\Widgets::onParserSetup", + "BeforePageDisplay": "Isekai\\Widgets\\Widgets::onLoad" + }, + "ResourceModules": { + "ext.isekai.widgets.global": { + "styles": [ + "ext.isekai.widgets.global.less" + ] + }, + "ext.isekai.createPage": { + "scripts": [ + "createPage/ext.isekai.createPage.js", + "createPage/ext.isekai.createPage.base.js" + ], + "styles": [ + "createPage/ext.isekai.createPage.base.less" + ], + "dependencies": [ + "oojs-ui-core" + ], + "targets": [ + "desktop", + "mobile" + ], + "messages": [ + "isekai-createpage-page-title", + "isekai-createpage-create-page-button", + "isekai-createpage-page-exists", + "isekai-createpage-title-empty", + "isekai-createpage-redirecting" + ] + }, + "ext.isekai.discover": { + "scripts": [ + "discover/ext.isekai.discover.js", + "discover/ext.isekai.discover.base.js" + ], + "styles": [ + "discover/ext.isekai.discover.base.less" + ], + "dependencies": [ + "oojs", + "oojs-ui-core", + "oojs-ui.styles.icons-interactions" + ], + "targets": [ + "desktop", + "mobile" + ], + "messages": [ + "isekai-discover-change-btn", + "isekai-discover-readmore-btn", + "isekai-discover-error-cannotload" + ] + }, + "ext.isekai.feedList": { + "es6": true, + "scripts": [ + "feedList/ext.isekai.feedList.js" + ], + "styles": [ + "feedList/ext.isekai.feedList.less" + ], + "dependencies": [ + "vue" + ], + "targets": [ + "desktop", + "mobile" + ], + "messages": [ + + ] + }, + "ext.isekai.previewCard": { + "scripts": [ + "previewCard/ext.isekai.previewCard.js" + ], + "styles": [ + "previewCard/ext.isekai.previewCard.less" + ], + "targets": [ + "desktop", + "mobile" + ], + "messages": [ + + ] + }, + "ext.isekai.tile": { + "scripts": [ + "tile/tile.js" + ], + "styles": [ + "tile/tile.css", + "tile/style.less" + ], + "targets": [ + "desktop", + "mobile" + ] + }, + "ext.isekai.collapse": { + "scripts": [ + "ext.isekai.collapse.js" + ], + "styles": [ + "ext.isekai.collapse.less" + ], + "targets": [ + "desktop", + "mobile" + ] + } + }, + "ResourceFileModulePaths": { + "localBasePath": "modules", + "remoteExtPath": "IsekaiWidgets/modules" + }, + "attributes": { + "CodeMirror": { + "TagModes": { + "tilegroup": "text/mediawiki", + "exfont": "text/mediawiki", + "details": "text/mediawiki", + "summary": "text/mediawiki" + } + } + }, + "manifest_version": 2 } \ No newline at end of file diff --git a/i18n/en.json b/i18n/en.json index e5b8827..9e4b305 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -1,27 +1,27 @@ -{ - "isekai-widgets": "Isekai Widgets", - "isekai-widgets-desc": "Some custom widgets uses on Isekai Wiki", - - "isekai-createpage-page-title": "Title for new page", - "isekai-createpage-create-page": "Create page", - "isekai-createpage-create-page-button": "Create", - "isekai-createpage-page-exists": "A page with the same name already exists. Please use another name.", - "isekai-createpage-title-empty": "Please input title.", - "isekai-createpage-redirecting": "Redirecting, please wait...", - - "isekai-discover-langcode": "en", - "isekai-discover-randompage": "Random Page", - "isekai-discover-loading": "Loading...", - "isekai-discover-change-btn": "Another", - "isekai-discover-readmore-btn": "Detail", - "isekai-discover-error-cannotload": "Cannot load page from server.", - - "isekai-fontface-error-invalid-params": "Please specify src and name attributes.", - "isekai-fontface-error-font-name-invalid": "Font name cannot contain special characters.", - "isekai-fontface-error-font-not-exists": "Font file \"$1\" not exists.", - "isekai-fontface-error-font-already-defined": "Font \"$1\" already imported, please check.", - - "isekai-font-error-invalid-params": "Please specify name attributes.", - "isekai-font-error-font-name-invalid": "Font name cannot contain special characters.", - "isekai-font-error-font-not-imported": "Font \"$1\" not imported." +{ + "isekai-widgets": "Isekai Widgets", + "isekai-widgets-desc": "Some custom widgets uses on Isekai Wiki", + + "isekai-createpage-page-title": "Title for new page", + "isekai-createpage-create-page": "Create page", + "isekai-createpage-create-page-button": "Create", + "isekai-createpage-page-exists": "A page with the same name already exists. Please use another name.", + "isekai-createpage-title-empty": "Please input title.", + "isekai-createpage-redirecting": "Redirecting, please wait...", + + "isekai-discover-langcode": "en", + "isekai-discover-randompage": "Random Page", + "isekai-discover-loading": "Loading...", + "isekai-discover-change-btn": "Another", + "isekai-discover-readmore-btn": "Detail", + "isekai-discover-error-cannotload": "Cannot load page from server.", + + "isekai-fontface-error-invalid-params": "Please specify src and name attributes.", + "isekai-fontface-error-font-name-invalid": "Font name cannot contain special characters.", + "isekai-fontface-error-font-not-exists": "Font file \"$1\" not exists.", + "isekai-fontface-error-font-already-defined": "Font \"$1\" already imported, please check.", + + "isekai-font-error-invalid-params": "Please specify name attributes.", + "isekai-font-error-font-name-invalid": "Font name cannot contain special characters.", + "isekai-font-error-font-not-imported": "Font \"$1\" not imported." } \ No newline at end of file diff --git a/i18n/ja.json b/i18n/ja.json index 1a537da..2672d93 100644 --- a/i18n/ja.json +++ b/i18n/ja.json @@ -1,17 +1,17 @@ -{ - "isekai-widgets-desc": "異世界ウィキで使用するカスタムウィジェットたち", - - "isekai-createpage-page-title": "新しいページの名", - "isekai-createpage-create-page": "ページを新規作成", - "isekai-createpage-create-page-button": "作成", - "isekai-createpage-page-exists": "同じタイトルのページが既に存在します。変更してください。", - "isekai-createpage-title-empty": "おタイトルを入力してください", - "isekai-createpage-redirecting": "ジャンプしてお待ちください...", - - "isekai-discover-langcode": "ja", - "isekai-discover-randompage": "おまかせ表示", - "isekai-discover-loading": "読み込み中...", - "isekai-discover-change-btn": "変える", - "isekai-discover-readmore-btn": "開く", - "isekai-discover-error-cannotload": "サーバからのページを読み取りに失敗しま。" +{ + "isekai-widgets-desc": "異世界ウィキで使用するカスタムウィジェットたち", + + "isekai-createpage-page-title": "新しいページの名", + "isekai-createpage-create-page": "ページを新規作成", + "isekai-createpage-create-page-button": "作成", + "isekai-createpage-page-exists": "同じタイトルのページが既に存在します。変更してください。", + "isekai-createpage-title-empty": "おタイトルを入力してください", + "isekai-createpage-redirecting": "ジャンプしてお待ちください...", + + "isekai-discover-langcode": "ja", + "isekai-discover-randompage": "おまかせ表示", + "isekai-discover-loading": "読み込み中...", + "isekai-discover-change-btn": "変える", + "isekai-discover-readmore-btn": "開く", + "isekai-discover-error-cannotload": "サーバからのページを読み取りに失敗しました。" } \ No newline at end of file diff --git a/i18n/zh-hans.json b/i18n/zh-hans.json index a2fef24..ca2d425 100644 --- a/i18n/zh-hans.json +++ b/i18n/zh-hans.json @@ -1,27 +1,29 @@ -{ - "isekai-widgets": "异世界百科 小部件", - "isekai-widgets-desc": "在异世界百科上使用的一些小部件", - - "isekai-createpage-page-title": "页面标题", - "isekai-createpage-create-page": "新建页面", - "isekai-createpage-create-page-button": "创建", - "isekai-createpage-page-exists": "已有相同名字的页面存在,换一个名字吧。", - "isekai-createpage-title-empty": "请填写标题", - "isekai-createpage-redirecting": "正在跳转,请稍后……", - - "isekai-discover-langcode": "zh", - "isekai-discover-randompage": "随机页面", - "isekai-discover-loading": "加载中……", - "isekai-discover-change-btn": "换一个", - "isekai-discover-readmore-btn": "查看", - "isekai-discover-error-cannotload": "无法从服务器加载数据", - - "isekai-fontface-error-invalid-params": "请提供src和name参数。", - "isekai-fontface-error-font-name-invalid": "字体名中不能包含特殊字符。", - "isekai-fontface-error-font-not-exists": "字体文件 \"$1\" 不存在。", - "isekai-fontface-error-font-already-defined": "字体 \"$1\" 已引用,请检查重复引用。", - - "isekai-font-error-invalid-params": "请提供name参数。", - "isekai-font-error-font-name-invalid": "字体名中不能包含特殊字符。", - "isekai-font-error-font-not-imported": "未导入字体: \"$1\"。" +{ + "isekai-widgets": "异世界百科 小部件", + "isekai-widgets-desc": "在异世界百科上使用的一些小部件", + + "isekai-createpage-page-title": "页面标题", + "isekai-createpage-create-page": "新建页面", + "isekai-createpage-create-page-button": "创建", + "isekai-createpage-page-exists": "已有相同名字的页面存在,换一个名字吧。", + "isekai-createpage-title-empty": "请填写标题", + "isekai-createpage-redirecting": "正在跳转,请稍后……", + + "isekai-discover-langcode": "zh", + "isekai-discover-randompage": "随机页面", + "isekai-discover-loading": "加载中……", + "isekai-discover-change-btn": "换一个", + "isekai-discover-readmore-btn": "查看", + "isekai-discover-error-cannotload": "无法从服务器加载数据", + + "isekai-feed-list-title": "最近更新", + + "isekai-fontface-error-invalid-params": "请提供src和name参数。", + "isekai-fontface-error-font-name-invalid": "字体名中不能包含特殊字符。", + "isekai-fontface-error-font-not-exists": "字体文件 \"$1\" 不存在。", + "isekai-fontface-error-font-already-defined": "字体 \"$1\" 已引用,请检查重复引用。", + + "isekai-font-error-invalid-params": "请提供name参数。", + "isekai-font-error-font-name-invalid": "字体名中不能包含特殊字符。", + "isekai-font-error-font-not-imported": "未导入字体: \"$1\"。" } \ No newline at end of file diff --git a/i18n/zh-hant.json b/i18n/zh-hant.json index 464c574..79c6789 100644 --- a/i18n/zh-hant.json +++ b/i18n/zh-hant.json @@ -1,27 +1,27 @@ -{ - "isekai-widgets": "異世界百科 小部件", - "isekai-widgets-desc": "在異世界百科上使用的一些小部件", - - "isekai-createpage-page-title": "頁面標題", - "isekai-createpage-create-page": "建立頁面", - "isekai-createpage-create-page-button": "創建", - "isekai-createpage-page-exists": "已有相同名字的頁面存在,換一個名字吧。", - "isekai-createpage-title-empty": "请填写标题", - "isekai-createpage-redirecting": "正在跳轉,請稍後……", - - "isekai-discover-langcode": "zh", - "isekai-discover-randompage": "隨機頁面", - "isekai-discover-loading": "讀取中……", - "isekai-discover-change-btn": "換一個", - "isekai-discover-readmore-btn": "詳情", - "isekai-discover-error-cannotload": "無法從伺服器讀取數據", - - "isekai-fontface-error-invalid-params": "請提供src和name參數。", - "isekai-fontface-error-font-name-invalid": "字體名中不能包含特殊字元。", - "isekai-fontface-error-font-not-exists": "字體檔案 \"$1\" 不存在。", - "isekai-fontface-error-font-already-defined": "字體 \"$1\" 已被引用,請檢查重複引用。", - - "isekai-font-error-invalid-params": "請提供name參數。", - "isekai-font-error-font-name-invalid": "字體名中不能包含特殊字元。", - "isekai-font-error-font-not-imported": "未導入字體: \"$1\"。" +{ + "isekai-widgets": "異世界百科 小部件", + "isekai-widgets-desc": "在異世界百科上使用的一些小部件", + + "isekai-createpage-page-title": "頁面標題", + "isekai-createpage-create-page": "建立頁面", + "isekai-createpage-create-page-button": "創建", + "isekai-createpage-page-exists": "已有相同名字的頁面存在,換一個名字吧。", + "isekai-createpage-title-empty": "请填写标题", + "isekai-createpage-redirecting": "正在跳轉,請稍後……", + + "isekai-discover-langcode": "zh", + "isekai-discover-randompage": "隨機頁面", + "isekai-discover-loading": "讀取中……", + "isekai-discover-change-btn": "換一個", + "isekai-discover-readmore-btn": "詳情", + "isekai-discover-error-cannotload": "無法從伺服器讀取數據", + + "isekai-fontface-error-invalid-params": "請提供src和name參數。", + "isekai-fontface-error-font-name-invalid": "字體名中不能包含特殊字元。", + "isekai-fontface-error-font-not-exists": "字體檔案 \"$1\" 不存在。", + "isekai-fontface-error-font-already-defined": "字體 \"$1\" 已被引用,請檢查重複引用。", + + "isekai-font-error-invalid-params": "請提供name參數。", + "isekai-font-error-font-name-invalid": "字體名中不能包含特殊字元。", + "isekai-font-error-font-not-imported": "未導入字體: \"$1\"。" } \ No newline at end of file diff --git a/includes/CreatePageWidget.php b/includes/CreatePageWidget.php index fc86126..fb03520 100644 --- a/includes/CreatePageWidget.php +++ b/includes/CreatePageWidget.php @@ -1,17 +1,17 @@ - 'nowiki']; - } - - public static function create($text, $params, $parser, $frame){ - $parser->getOutput()->addModules('ext.isekai.createPage'); - - return self::getHtml(); - } + 'nowiki']; + } + + public static function create($text, $params, $parser, $frame){ + $parser->getOutput()->addModules('ext.isekai.createPage'); + + return self::getHtml(); + } } \ No newline at end of file diff --git a/includes/DiscoverWidget.php b/includes/DiscoverWidget.php index 5e04649..4f1e09d 100644 --- a/includes/DiscoverWidget.php +++ b/includes/DiscoverWidget.php @@ -1,17 +1,17 @@ - 'nowiki']; - } - - public static function create($text, $params, \Parser $parser, $frame){ - $parser->getOutput()->addModules('ext.isekai.discover'); - - return self::getHtml(); - } + 'nowiki']; + } + + public static function create($text, $params, \Parser $parser, $frame){ + $parser->getOutput()->addModules('ext.isekai.discover'); + + return self::getHtml(); + } } \ No newline at end of file diff --git a/includes/ExtraFontWidget.php b/includes/ExtraFontWidget.php index 3116ef0..a740505 100644 --- a/includes/ExtraFontWidget.php +++ b/includes/ExtraFontWidget.php @@ -1,39 +1,39 @@ -extIsekaiWidgetsCache->get('extraFonts', INF, []); - - $content = $text = $frame->expand($text); - if (!isset($params['name']) || empty($params['name'])) { - return '' . wfMessage('isekai-font-error-invalid-params')->parse() . '' . $content; - } - - $fontName = 'extra-' . $params['name']; - if (preg_match('/[`~!@#$%^&*()+=<>?:"{}|,.\/;\'\\\\\[\]]\r\n/', $fontName)) { - return '' . - wfMessage('isekai-font-error-font-name-invalid')->parse() . - '' . - $content; - } - - $existsFonts = $parser->extIsekaiWidgetsCache->get('extraFonts', INF, []); - if (!isset($existsFonts[$fontName])) { - return '' . - wfMessage('isekai-font-error-font-not-imported', $params['name'])->parse() . - '' . - $content; - } - $fontId = $existsFonts[$fontName]; - - return [ - Html::rawElement('span', [ - 'class' => 'isekai-extra-font font-' . $fontId, - ], $content), - "markerType" => 'nowiki' - ]; - } +extIsekaiWidgetsCache->get('extraFonts', INF, []); + + $content = $text = $parser->recursiveTagParse($text, $frame); + if (!isset($params['name']) || empty($params['name'])) { + return '' . wfMessage('isekai-font-error-invalid-params')->parse() . '' . $content; + } + + $fontName = 'extra-' . $params['name']; + if (preg_match('/[`~!@#$%^&*()+=<>?:"{}|,.\/;\'\\\\\[\]]\r\n/', $fontName)) { + return '' . + wfMessage('isekai-font-error-font-name-invalid')->parse() . + '' . + $content; + } + + $existsFonts = $parser->extIsekaiWidgetsCache->get('extraFonts', INF, []); + if (!isset($existsFonts[$fontName])) { + return '' . + wfMessage('isekai-font-error-font-not-imported', $params['name'])->parse() . + '' . + $content; + } + $fontId = $existsFonts[$fontName]; + + return [ + Html::rawElement('span', [ + 'class' => 'isekai-extra-font font-' . $fontId, + ], $content), + "markerType" => 'nowiki' + ]; + } } \ No newline at end of file diff --git a/includes/FeedListWidget.php b/includes/FeedListWidget.php new file mode 100644 index 0000000..0883562 --- /dev/null +++ b/includes/FeedListWidget.php @@ -0,0 +1,17 @@ + 'nowiki']; + } + + public static function create($text, $params, \Parser $parser, $frame){ + $parser->getOutput()->addModules('ext.isekai.feedList'); + + return self::getHtml(); + } +} \ No newline at end of file diff --git a/includes/FontFaceWidget.php b/includes/FontFaceWidget.php index 385c221..cc4c49a 100644 --- a/includes/FontFaceWidget.php +++ b/includes/FontFaceWidget.php @@ -1,53 +1,53 @@ -' . wfMessage('isekai-fontface-error-invalid-params')->parse() . ''; - } - - $service = MediaWikiServices::getInstance(); - - $fontName = 'extra-' . $params['name']; - $existsFonts = $parser->extIsekaiWidgetsCache->get('extraFonts', INF, []); - if (isset($existsFonts[$fontName])) { - return '' . - wfMessage('isekai-fontface-error-font-already-defined', $params['name'])->parse() . - ''; - } - if (preg_match('/[`~!@#$%^&*()+=<>?:"{}|,.\/;\'\\\\\[\]]\r\n/', $fontName)) { - return '' . - wfMessage('isekai-fontface-error-font-name-invalid')->parse() . - ''; - } - - $title = Title::newFromText($params['src'], NS_FILE); - $file = $service->getRepoGroup()->findFile($title); - if (!$file) { - return '' . - wfMessage('isekai-fontface-error-font-not-exists', $params['src'])->parse() . - ''; - } - - $fontUrl = $file->getUrl(); - $fontId = substr(Utils::safeBase64Encode(md5($fontName, true)), 0, 8); - $css = ""; - - $existsFonts[$fontName] = $fontId; - $existsFonts = $parser->extIsekaiWidgetsCache->set('extraFonts', $existsFonts); - - return [$css, "markerType" => 'nowiki']; - } +' . wfMessage('isekai-fontface-error-invalid-params')->parse() . ''; + } + + $service = MediaWikiServices::getInstance(); + + $fontName = 'extra-' . $params['name']; + $existsFonts = $parser->extIsekaiWidgetsCache->get('extraFonts', INF, []); + if (isset($existsFonts[$fontName])) { + return '' . + wfMessage('isekai-fontface-error-font-already-defined', $params['name'])->parse() . + ''; + } + if (preg_match('/[`~!@#$%^&*()+=<>?:"{}|,.\/;\'\\\\\[\]]\r\n/', $fontName)) { + return '' . + wfMessage('isekai-fontface-error-font-name-invalid')->parse() . + ''; + } + + $title = Title::newFromText($params['src'], NS_FILE); + $file = $service->getRepoGroup()->findFile($title); + if (!$file) { + return '' . + wfMessage('isekai-fontface-error-font-not-exists', $params['src'])->parse() . + ''; + } + + $fontUrl = $file->getUrl(); + $fontId = substr(Utils::safeBase64Encode(md5($fontName, true)), 0, 8); + $css = ""; + + $existsFonts[$fontName] = $fontId; + $existsFonts = $parser->extIsekaiWidgetsCache->set('extraFonts', $existsFonts); + + return [$css, "markerType" => 'nowiki']; + } } \ No newline at end of file diff --git a/includes/Html5Widget.php b/includes/Html5Widget.php new file mode 100644 index 0000000..570d85c --- /dev/null +++ b/includes/Html5Widget.php @@ -0,0 +1,35 @@ +getOutput()->addModules('ext.isekai.collapse'); + $allowedAttr = ['class']; + $htmlArgs = array_filter($args, function($k) use($allowedAttr) { + return in_array($k, $allowedAttr); + }, ARRAY_FILTER_USE_KEY); + + $content = ''; + if ($text) { + $content = Utils::makeParagraph($parser->recursiveTagParse($text, $frame), true); + } + + return [Html::rawElement('details', $htmlArgs, $content), "markerType" => 'nowiki']; + } + + public static function createSummary(string $text, array $args, \Parser $parser, \PPFrame $frame) { + $allowedAttr = ['class']; + $htmlArgs = array_filter($args, function($k) use($allowedAttr) { + return in_array($k, $allowedAttr); + }, ARRAY_FILTER_USE_KEY); + + $content = ''; + if ($text) { + $content = $parser->recursiveTagParse($text, $frame); + } + + return [Html::rawElement('summary', $htmlArgs, $content), "markerType" => 'nowiki']; + } +} \ No newline at end of file diff --git a/includes/PreviewCardWidget.php b/includes/PreviewCardWidget.php index 58be736..6d4705a 100644 --- a/includes/PreviewCardWidget.php +++ b/includes/PreviewCardWidget.php @@ -1,27 +1,27 @@ - 'nowiki']; - } - - public static function create($text, $params, $parser, $frame){ - $parser->getOutput()->addModules('ext.isekai.previewCard'); - - $titleChunk = explode('/', $text); - $len = count($titleChunk); - $displayTitle = $titleChunk[$len - 1]; - unset($titleChunk[$len - 1]); - $path = implode('/', $titleChunk); - return self::getHtml([ - 'title' => $text, - 'displayTitle' => $displayTitle, - 'path' => $path, - ]); - } + 'nowiki']; + } + + public static function create($text, $params, $parser, $frame){ + $parser->getOutput()->addModules('ext.isekai.previewCard'); + + $titleChunk = explode('/', $text); + $len = count($titleChunk); + $displayTitle = $titleChunk[$len - 1]; + unset($titleChunk[$len - 1]); + $path = implode('/', $titleChunk); + return self::getHtml([ + 'title' => $text, + 'displayTitle' => $displayTitle, + 'path' => $path, + ]); + } } \ No newline at end of file diff --git a/includes/TileGroupWidget.php b/includes/TileGroupWidget.php index f02d44e..522dda6 100644 --- a/includes/TileGroupWidget.php +++ b/includes/TileGroupWidget.php @@ -1,94 +1,94 @@ -parseArgs($args); - } - - public static function create(string $text, array $args, \Parser $parser, \PPFrame $frame){ - $content = $parser->recursiveTagParse($text, $frame); - - $args['content'] = $content; - - $tileGroup = new TileGroupWidget($args); - return [$tileGroup->getHtml(), "markerType" => 'nowiki']; - } - - private function parseArgs($args){ - $allowedArgs = ['content', 'size', 'title', 'class', 'style']; - - if(isset($args['content'])){ - $this->content = $args['content']; - } - - if(isset($args['size'])){ - $this->size = explode(' ', str_replace('size-', '', $args['size'])); - } - - if(isset($args['title'])){ - $this->title = $args['title']; - } - - if(isset($args['class'])){ - $this->classes = explode(' ', $args['class']); - } - - if(isset($args['style'])){ - $this->classes = explode(' ', $args['style']); - } - - foreach($args as $name => $arg){ - if(!in_array($name, $allowedArgs) && substr($name, 0, 2) !== 'on'){ - $this->attributes[$name] = $arg; - } - } - } - - private function getSizeArgs(array &$element){ - if(!empty($this->size)){ - $sizeAttr = []; - foreach($this->size as $size){ - $sizeAttr[] = 'size-' . $size; - } - $element['class'] = array_merge($element['class'], $sizeAttr); - } - } - - private function getTitleArgs(array &$element){ - if($this->title){ - $element['data-group-title'] = $this->title; - } - } - - public function getHtml(){ - $element = array_merge($this->attributes, [ - 'class' => array_merge($this->classes, ['tiles-grid', 'tiles-group']), - 'style' => $this->styles, - ]); - - $this->getSizeArgs($element); - $this->getTitleArgs($element); - - if(!empty($element['class'])){ - $element['class'] = implode(' ', $element['class']); - } else { - unset($element['class']); - } - if(!empty($element['style'])){ - $element['style'] = implode('; ', $element['style']) . ';'; - } else { - unset($element['style']); - } - return Html::rawElement('div', $element, $this->content); - } +parseArgs($args); + } + + public static function create(string $text, array $args, \Parser $parser, \PPFrame $frame){ + $content = $parser->recursiveTagParse($text, $frame); + + $args['content'] = $content; + + $tileGroup = new TileGroupWidget($args); + return [$tileGroup->getHtml(), "markerType" => 'nowiki']; + } + + private function parseArgs($args){ + $allowedArgs = ['content', 'size', 'title', 'class', 'style']; + + if(isset($args['content'])){ + $this->content = $args['content']; + } + + if(isset($args['size'])){ + $this->size = explode(' ', str_replace('size-', '', $args['size'])); + } + + if(isset($args['title'])){ + $this->title = $args['title']; + } + + if(isset($args['class'])){ + $this->classes = explode(' ', $args['class']); + } + + if(isset($args['style'])){ + $this->classes = explode(' ', $args['style']); + } + + foreach($args as $name => $arg){ + if(!in_array($name, $allowedArgs) && substr($name, 0, 2) !== 'on'){ + $this->attributes[$name] = $arg; + } + } + } + + private function getSizeArgs(array &$element){ + if(!empty($this->size)){ + $sizeAttr = []; + foreach($this->size as $size){ + $sizeAttr[] = 'size-' . $size; + } + $element['class'] = array_merge($element['class'], $sizeAttr); + } + } + + private function getTitleArgs(array &$element){ + if($this->title){ + $element['data-group-title'] = $this->title; + } + } + + public function getHtml(){ + $element = array_merge($this->attributes, [ + 'class' => array_merge($this->classes, ['tiles-grid', 'tiles-group']), + 'style' => $this->styles, + ]); + + $this->getSizeArgs($element); + $this->getTitleArgs($element); + + if(!empty($element['class'])){ + $element['class'] = implode(' ', $element['class']); + } else { + unset($element['class']); + } + if(!empty($element['style'])){ + $element['style'] = implode('; ', $element['style']) . ';'; + } else { + unset($element['style']); + } + return Html::rawElement('div', $element, $this->content); + } } \ No newline at end of file diff --git a/includes/TileWidget.php b/includes/TileWidget.php index 32a0c67..95fbb7f 100644 --- a/includes/TileWidget.php +++ b/includes/TileWidget.php @@ -1,216 +1,217 @@ -content = $content; - $this->parseArgs($args); - } - - public static function create(string $text, array $args, \Parser $parser, \PPFrame $frame){ - $parser->getOutput()->addModules('ext.isekai.tile'); - - $content = ''; - if ($text) { - $content = $frame->expand($text); - - $title = preg_replace('/\[\[.*?\]\]/', '', $content); - $title = preg_replace('/]+>/', '', $title); - $title = strip_tags(trim($title)); - $args['title'] = $title; - } - - $tile = new TileWidget($args, $content); - return [$tile->toHtml(), 'markerType' => 'nowiki']; - } - - private function parseArgs($args){ - $allowedArgs = ['size', 'icon', 'title', 'cover', 'badge', 'color', 'href', 'grid']; - - foreach($args as $name => $arg){ - if(in_array($name, $allowedArgs)){ - $this->$name = $arg; - } elseif(substr($name, 0, 2) !== 'on'){ - $this->attributes[$name] = $arg; - } - } - } - - private function getSizeArgs(array &$element, array &$content){ - $element['data-size'] = $this->size; - $element['class'][] = 'tile-' . $this->size; - } - - private function getColorArgs(array &$element, array &$content){ - if($this->color){ - if(substr($this->color, 0, 1) == '#' || substr($this->color, 0, 3) == 'rgb'){ - $element['style'][] = 'background-color: ' . $this->color; - } else { - $color = str_replace($this->color, 'bg-', ''); - $element['class'][] = 'bg-' . $color; - } - } - } - - private function getTitleArgs(array &$element, array &$content){ - if(!empty($this->title)){ - $content[] = Html::element('span', [ - 'class' => ['branding-bar'], - ], $this->title); - $element['data-title'] = $this->title; - } - } - - private function getCoverArgs(array &$element, array &$content){ - $element['data-cover'] = $this->cover; - } - - private function getHrefArgs(array &$element, array &$content){ - if(substr($this->href, 0, 2) == '[[' && substr($this->href, -2, 2) == ']]'){ //内部链接 - $titleText = substr($this->href, 2, strlen($this->href) - 4); - $title = Title::newFromText($titleText); - $href = $title->getLocalURL(); - } else { - $href = $this->href; - } - $element['href'] = $href; - } - - private function getIconArgs(array &$element, array &$content){ - if($this->icon){ - if(is_string($this->icon)){ - if(preg_match('/\.[a-zA-Z0-9]{3,4}$/', $this->icon)){ - //图片图标 - $iconSrc = $this->icon; - $type = 'image'; - } else { - $iconSrc = explode(' ', $this->icon); - $type = 'class'; - } - } else { - $type = 'class'; - $iconSrc = $this->icon; - } - - if($type == 'class'){ - $content[] = Html::element('span', [ - 'class' => array_merge($iconSrc, ['icon']), - ]); - } elseif($type == 'image'){ - $content[] = Html::element('img', [ - 'src' => $iconSrc, - 'class' => ['icon'], - ]); - } - } - } - - private function getBadgeArgs(array &$element, array &$content){ - if($this->badge){ - $content[] = Html::element('span', [ - 'class' => ['badge-bottom'], - ], strval($this->badge)); - } - } - - private function getImagesArgs(array &$element, array &$content){ - /*$service = MediaWikiServices::getInstance(); - $this->images = []; - // 提取wikitext图片 - preg_match_all('/\[\[(?.+?:.+?)(\|.*?)?\]\]/', $this->content, $matches); - if (isset($matches['title']) && !empty($matches['title'])) { - foreach ($matches['title'] as $titleText) { - $title = Title::newFromText($titleText); - if ($title->inNamespace(NS_FILE)) { - $file = $service->getRepoGroup()->findFile($title); - $thumb = $file->getUrl(); - $this->images[] = $thumb; - } - } - } - - // 提取html图片 - preg_match_all('/<img .*?src="(?<src>.*?)".*?srcset="(?<srcset>.*?)"[^\>]+>/', $this->content, $matches); - if (isset($matches['src']) && !empty($matches['src'])) { - $this->images = array_merge($this->images, $matches['src']); - }*/ - - if(!empty($this->images)){ - $element['data-effect'] = 'image-set'; - foreach($this->images as $image){ - $content[] = Html::element('img', [ - 'src' => $image, - ]); - } - } - } - - private function getGridArgs(array &$element, array &$content){ - if($this->grid){ - $grid = explode(' ', $this->grid); - $element['class'][] = 'col-' . $grid[0]; - if(count($grid) > 1){ - $element['class'][] = 'row-' . $grid[1]; - } - } - } - - public function toHtml(){ - $element = array_merge($this->attributes, [ - 'data-role' => 'tile', - ]); - $content = []; - - if(isset($element['class'])){ - $element['class'] = explode(' ', $element['class']); - } else { - $element['class'] = []; - } - if(isset($element['style'])){ - $element['style'] = explode(' ', $element['style']); - } else { - $element['style'] = []; - } - - $this->getSizeArgs($element, $content); - $this->getColorArgs($element, $content); - $this->getIconArgs($element, $content); - $this->getTitleArgs($element, $content); - $this->getCoverArgs($element, $content); - $this->getHrefArgs($element, $content); - $this->getBadgeArgs($element, $content); - $this->getImagesArgs($element, $content); - $this->getGridArgs($element, $content); - - $content = implode('', $content); - - if(!empty($element['class'])){ - $element['class'] = implode(' ', $element['class']); - } else { - unset($element['class']); - } - if(!empty($element['style'])){ - $element['style'] = implode('; ', $element['style']) . ';'; - } else { - unset($element['style']); - } - - return Html::rawElement('a', $element, $content); - } +<?php +namespace Isekai\Widgets; + +use Html; +use MediaWiki\MediaWikiServices; +use Title; + +class TileWidget { + private $size = 'medium'; + private $icon = false; + private $title = ''; + private $href = ''; + private $badge = false; + private $color = false; + private $cover = false; + private $images = []; + private $grid = false; + + private $attributes = []; + + public function __construct($args, $content){ + $this->content = $content; + $this->parseArgs($args); + } + + public static function create(string $text, array $args, \Parser $parser, \PPFrame $frame){ + $parser->getOutput()->addModules('ext.isekai.tile'); + + $content = ''; + if ($text) { + $content = $frame->expand($text); + + $title = preg_replace('/\[\[.*?\]\]/', '', $content); + $title = preg_replace('/<img .*?src="(?<src>.*?)".*?srcset="(?<srcset>.*?)"[^\>]+>/', '', $title); + $title = strip_tags(trim($title)); + $args['title'] = $title; + } + + $tile = new TileWidget($args, $content); + return [$tile->toHtml(), 'markerType' => 'nowiki']; + } + + private function parseArgs($args){ + $allowedArgs = ['size', 'icon', 'title', 'cover', 'badge', 'color', 'href', 'grid']; + + foreach($args as $name => $arg){ + if(in_array($name, $allowedArgs)){ + $this->$name = $arg; + } elseif(substr($name, 0, 2) !== 'on'){ + $this->attributes[$name] = $arg; + } + } + } + + private function getSizeArgs(array &$element, array &$content){ + $element['data-size'] = $this->size; + $element['class'][] = 'tile-' . $this->size; + } + + private function getColorArgs(array &$element, array &$content){ + if($this->color){ + if(substr($this->color, 0, 1) == '#' || substr($this->color, 0, 3) == 'rgb'){ + $element['style'][] = 'background-color: ' . $this->color; + } else { + $color = str_replace($this->color, 'bg-', ''); + $element['class'][] = 'bg-' . $color; + } + } + } + + private function getTitleArgs(array &$element, array &$content){ + if(!empty($this->title)){ + $content[] = Html::element('span', [ + 'class' => ['branding-bar'], + ], $this->title); + $element['data-title'] = $this->title; + } + } + + private function getCoverArgs(array &$element, array &$content){ + $element['data-cover'] = $this->cover; + } + + private function getHrefArgs(array &$element, array &$content){ + if(substr($this->href, 0, 2) == '[[' && substr($this->href, -2, 2) == ']]'){ //内部链接 + $titleText = substr($this->href, 2, strlen($this->href) - 4); + $title = Title::newFromText($titleText); + $href = $title->getLocalURL(); + } else { + $href = $this->href; + } + $element['href'] = $href; + } + + private function getIconArgs(array &$element, array &$content){ + if($this->icon){ + if(is_string($this->icon)){ + if(preg_match('/\.[a-zA-Z0-9]{3,4}$/', $this->icon)){ + //图片图标 + $iconSrc = $this->icon; + $type = 'image'; + } else { + $iconSrc = explode(' ', $this->icon); + $type = 'class'; + } + } else { + $type = 'class'; + $iconSrc = $this->icon; + } + + if($type == 'class'){ + $content[] = Html::element('span', [ + 'class' => array_merge($iconSrc, ['icon']), + ]); + } elseif($type == 'image'){ + $content[] = Html::element('img', [ + 'src' => $iconSrc, + 'class' => ['icon'], + ]); + } + } + } + + private function getBadgeArgs(array &$element, array &$content){ + if($this->badge){ + $content[] = Html::element('span', [ + 'class' => ['badge-bottom'], + ], strval($this->badge)); + } + } + + private function getImagesArgs(array &$element, array &$content){ + $service = MediaWikiServices::getInstance(); + $this->images = []; + // 提取wikitext图片 + preg_match_all('/\[\[(?<title>.+?:.+?)(\|.*?)?\]\]/', $this->content, $matches); + if (isset($matches['title']) && !empty($matches['title'])) { + foreach ($matches['title'] as $titleText) { + $title = Title::newFromText($titleText); + if ($title->inNamespace(NS_FILE)) { + $file = $service->getRepoGroup()->findFile($title); + $thumb = $file->getUrl(); + $this->images[] = $thumb; + } + } + } + + // 提取html图片 + preg_match_all('/<img .*?src="(?<src>.*?)".*?srcset="(?<srcset>.*?)"[^\>]+>/', $this->content, $matches); + if (isset($matches['src']) && !empty($matches['src'])) { + $this->images = array_merge($this->images, $matches['src']); + } + + if(!empty($this->images)){ + $element['data-effect'] = 'image-set'; + foreach($this->images as $image){ + $content[] = Html::element('img', [ + 'src' => $image, + 'style' => 'display: none' + ]); + } + } + } + + private function getGridArgs(array &$element, array &$content){ + if($this->grid){ + $grid = explode(' ', $this->grid); + $element['class'][] = 'col-' . $grid[0]; + if(count($grid) > 1){ + $element['class'][] = 'row-' . $grid[1]; + } + } + } + + public function toHtml(){ + $element = array_merge($this->attributes, [ + 'data-role' => 'tile', + ]); + $content = []; + + if(isset($element['class'])){ + $element['class'] = explode(' ', $element['class']); + } else { + $element['class'] = []; + } + if(isset($element['style'])){ + $element['style'] = explode(' ', $element['style']); + } else { + $element['style'] = []; + } + + $this->getSizeArgs($element, $content); + $this->getColorArgs($element, $content); + $this->getIconArgs($element, $content); + $this->getTitleArgs($element, $content); + $this->getCoverArgs($element, $content); + $this->getHrefArgs($element, $content); + $this->getBadgeArgs($element, $content); + $this->getImagesArgs($element, $content); + $this->getGridArgs($element, $content); + + $content = implode('', $content); + + if(!empty($element['class'])){ + $element['class'] = implode(' ', $element['class']); + } else { + unset($element['class']); + } + if(!empty($element['style'])){ + $element['style'] = implode('; ', $element['style']) . ';'; + } else { + unset($element['style']); + } + + return Html::rawElement('a', $element, $content); + } } \ No newline at end of file diff --git a/includes/Utils.php b/includes/Utils.php index d18d572..2ef555f 100644 --- a/includes/Utils.php +++ b/includes/Utils.php @@ -1,8 +1,35 @@ -<?php -namespace Isekai\Widgets; - -class Utils { - public static function safeBase64Encode($input) { - return str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($input)); - } +<?php +namespace Isekai\Widgets; + +class Utils { + public static function safeBase64Encode($input) { + return str_replace(['+', '/', '='], ['-', '_', ''], base64_encode($input)); + } + + public static function makeParagraph($text, $hasUniq = false) { + $text = str_replace("\r\n", "\n", $text); + if (strpos($text, "\n\n") === false) { + return $text; + } + $prepend = ""; + $append = ""; + if ($hasUniq) { + $splitPoint = strpos($text, "\n", 1) + 1; + $prepend = substr($text, 0, $splitPoint); + $text = substr($text, $splitPoint); + } + preg_match("/(\<\/div[^\>]*?\>|\n)+$/", $text, $matches); + if (count($matches) > 0) { + $append = $matches[0]; + $text = substr($text, 0, -1 * strlen($append)); + $tagNum = substr_count($append, '</div'); + preg_match('/^(\<div[^\>]*?\>){' . $tagNum . '}/', $text, $matches); + if (count($matches) > 0) { + $prepend .= $matches[0]; + $text = substr($text, strlen($matches[0])); + } + } + $lines = explode("\n\n", $text); + return $prepend . "<p>" . implode("</p>\n<p>", $lines) . "</p>" . $append; + } } \ No newline at end of file diff --git a/includes/Widgets.php b/includes/Widgets.php index 84bc1df..f12967e 100644 --- a/includes/Widgets.php +++ b/includes/Widgets.php @@ -1,21 +1,35 @@ -<?php -namespace Isekai\Widgets; - -use MapCacheLRU; - -class Widgets { - public static function onParserSetup(&$parser){ - $parser->extIsekaiWidgetsCache = new MapCacheLRU( 100 ); // 100 is arbitrary - - $parser->setHook('createpage', CreatePageWidget::class . '::create'); - $parser->setHook('discoverbox', DiscoverWidget::class . '::create'); - $parser->setHook('previewcard', PreviewCardWidget::class . '::create'); - - $parser->setHook('tile', TileWidget::class . '::create'); - $parser->setHook('tilegroup', TileGroupWidget::class . '::create'); - - $parser->setHook('fontface', FontFaceWidget::class . '::create'); - $parser->setHook('exfont', ExtraFontWidget::class . '::create'); - return true; - } +<?php +namespace Isekai\Widgets; + +use MapCacheLRU; +use Parser; + +class Widgets { + /** + * @param \Parser $parser + */ + public static function onParserSetup(&$parser){ + $parser->extIsekaiWidgetsCache = new MapCacheLRU( 100 ); // 100 is arbitrary + + $parser->setHook('createpage', [CreatePageWidget::class, 'create']); + $parser->setHook('discoverbox', [DiscoverWidget::class, 'create']); + $parser->setHook('feedlist', [FeedListWidget::class, 'create']); + $parser->setHook('previewcard', [PreviewCardWidget::class, 'create']); + + $parser->setHook('tile', [TileWidget::class, 'create']); + $parser->setHook('tilegroup', [TileGroupWidget::class, 'create']); + + $parser->setHook('fontface', [FontFaceWidget::class, 'create']); + $parser->setHook('exfont', [ExtraFontWidget::class, 'create']); + + $parser->setHook('details', [Html5Widget::class, 'createDetails']); + $parser->setHook('summary', [Html5Widget::class, 'createSummary']); + + return true; + } + + public static function onLoad(\OutputPage $outputPage) { + $outputPage->addModuleStyles("ext.isekai.widgets.global"); + $outputPage->addModuleStyles("ext.isekai.collapse"); + } } \ No newline at end of file diff --git a/modules/createPage/ext.isekai.createPage.base.js b/modules/createPage/ext.isekai.createPage.base.js index f6e497a..dd36c54 100644 --- a/modules/createPage/ext.isekai.createPage.base.js +++ b/modules/createPage/ext.isekai.createPage.base.js @@ -1,8 +1,8 @@ -$(function(){ - if($('.isekai-create-page').length > 0){ - var CreatePageWidget = isekai.ui.CreatePageWidget; - $('.isekai-create-page').each(function(){ - new CreatePageWidget($(this)); - }); - } +$(function(){ + if($('.isekai-create-page').length > 0){ + var CreatePageWidget = isekai.ui.CreatePageWidget; + $('.isekai-create-page').each(function(){ + new CreatePageWidget($(this)); + }); + } }); \ No newline at end of file diff --git a/modules/createPage/ext.isekai.createPage.base.less b/modules/createPage/ext.isekai.createPage.base.less index cfe5705..bee10f7 100644 --- a/modules/createPage/ext.isekai.createPage.base.less +++ b/modules/createPage/ext.isekai.createPage.base.less @@ -1,67 +1,67 @@ -@height: 2.25em; -@text-size: 0.95em; - -.isekai-create-page { - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0,0,0,.125); - border-radius: .25rem; - - .card-header { - padding: .75rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0,0,0,.03); - border-bottom: 1px solid rgba(0,0,0,.125); - display: flex; - align-items: center; - - &:first-child { - border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; - } - - .card-header-text { - font-size: 1.25em; - } - - @media(max-width: 360px){ - .card-header-text { - font-size: 1em; - } - } - } - - .card-title { - margin: 1em 0 0.75em 1em; - } - - .card-body { - flex: 1 1 auto; - padding: 0.25em; - font-size: 1.25em; - - .card-content { - overflow-y: auto; - padding: 1em 0.5em; - margin: 0 0.4em; - min-height: @height; - font-size: @text-size; - - .oo-ui-fieldLayout-header { - display: none; - } - - .oo-ui-fieldLayout-messages { - margin: 0.5em 0 0 0.5em; - } - - .oo-ui-actionFieldLayout.oo-ui-fieldLayout-align-top { - max-width: none; - } - } - } +@height: 2.25em; +@text-size: 0.95em; + +.isekai-create-page { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0,0,0,.125); + border-radius: .25rem; + + .card-header { + padding: .75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0,0,0,.03); + border-bottom: 1px solid rgba(0,0,0,.125); + display: flex; + align-items: center; + + &:first-child { + border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; + } + + .card-header-text { + font-size: 1.25em; + } + + @media(max-width: 360px){ + .card-header-text { + font-size: 1em; + } + } + } + + .card-title { + margin: 1em 0 0.75em 1em; + } + + .card-body { + flex: 1 1 auto; + padding: 0.25em; + font-size: 1.25em; + + .card-content { + overflow-y: auto; + padding: 1em 0.5em; + margin: 0 0.4em; + min-height: @height; + font-size: @text-size; + + .oo-ui-fieldLayout-header { + display: none; + } + + .oo-ui-fieldLayout-messages { + margin: 0.5em 0 0 0.5em; + } + + .oo-ui-actionFieldLayout.oo-ui-fieldLayout-align-top { + max-width: none; + } + } + } } \ No newline at end of file diff --git a/modules/createPage/ext.isekai.createPage.tpl b/modules/createPage/ext.isekai.createPage.tpl index 5ae3a8b..21a90e6 100644 --- a/modules/createPage/ext.isekai.createPage.tpl +++ b/modules/createPage/ext.isekai.createPage.tpl @@ -1,10 +1,10 @@ -<div class="isekai-create-page"> - <div class="card-header"> - <span class="card-header-text"><?php echo wfMessage('isekai-createpage-create-page')->parse(); ?></span> - </div> - <div class="card-body"> - <div class="card-content"> - - </div> - </div> +<div class="isekai-create-page"> + <div class="card-header"> + <span class="card-header-text"><?php echo wfMessage('isekai-createpage-create-page')->parse(); ?></span> + </div> + <div class="card-body"> + <div class="card-content"> + + </div> + </div> </div> \ No newline at end of file diff --git a/modules/discover/ext.isekai.discover.base.js b/modules/discover/ext.isekai.discover.base.js index 20c7099..8d77933 100644 --- a/modules/discover/ext.isekai.discover.base.js +++ b/modules/discover/ext.isekai.discover.base.js @@ -1,8 +1,8 @@ -$(function(){ - if($('.isekai-discover').length > 0){ - var DiscoverWidget = isekai.ui.DiscoverWidget; - $('.isekai-discover').each(function(){ - new DiscoverWidget($(this)); - }); - } +$(function(){ + if($('.isekai-discover').length > 0){ + var DiscoverWidget = isekai.ui.DiscoverWidget; + $('.isekai-discover').each(function(){ + new DiscoverWidget($(this)); + }); + } }); \ No newline at end of file diff --git a/modules/discover/ext.isekai.discover.base.less b/modules/discover/ext.isekai.discover.base.less index 357bfbb..3d1708e 100644 --- a/modules/discover/ext.isekai.discover.base.less +++ b/modules/discover/ext.isekai.discover.base.less @@ -1,146 +1,147 @@ -@height: 20em; -@text-size: 0.85em; - -.discover-card { - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0,0,0,.125); - border-radius: .25rem; - - .card-header { - padding: .75rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0,0,0,.03); - border-bottom: 1px solid rgba(0,0,0,.125); - display: flex; - align-items: center; - - &:first-child { - border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; - } - - .card-header-text { - font-size: 1.25em; - } - - .card-header-buttons { - margin-left: auto; - } - } - - .card-title { - margin: 1em 0 0.75em 1em; - } - - .card-body { - flex: 1 1 auto; - padding: 0.25em; - font-size: 1.25em; - - .loading { - width: 100%; - height: @height; - font-size: @text-size; - margin-top: 1px; - display: flex; - - .spinner { - margin: auto; - padding: 2em; - width: 100%; - } - } - - .card-content { - height: @height; - overflow-y: auto; - border-top: 1px solid #ccc; - padding: 0 0.6em; - margin: 0 0.4em; - font-size: @text-size; - } - } - - &.discover-card-zh { - .card-header { - @media(max-width: 410px){ - .card-header-buttons { - font-size: 0.9em; - } - } - - @media(max-width: 380px){ - .card-header-buttons { - font-size: 0.8em; - } - } - - @media(max-width: 360px){ - .card-header-text { - font-size: 1em; - } - } - - @media(max-width: 350px){ - .card-header-text { - font-size: 1.25em; - } - - .card-header-buttons { - margin-left: 0; - margin-top: 0.8em; - font-size: 1em; - } - - & { - flex-direction: column; - } - } - } - } - - &.discover-card-en { - .card-header { - @media(max-width: 500px){ - .card-header-text { - font-size: 1em; - } - - .card-header-buttons { - font-size: 0.8em; - } - } - - @media(max-width: 430px){ - .card-header-text { - font-size: 1.25em; - } - - .card-header-buttons { - margin-left: 0; - margin-top: 0.8em; - font-size: 1em; - } - - & { - flex-direction: column; - } - } - - @media(max-width: 350px){ - .card-header-text { - font-size: 1em; - } - - .card-header-buttons { - font-size: 0.8em; - } - } - } - } +@height: 20rem; +@text-size: 0.85rem; + +.discover-card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0,0,0,.125); + border-radius: .25rem; + + .card-header { + height: 2.25rem; + padding: .75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0,0,0,.03); + border-bottom: 1px solid rgba(0,0,0,.125); + display: flex; + align-items: center; + + &:first-child { + border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; + } + + .card-header-text { + font-size: 1.25rem; + } + + .card-header-buttons { + margin-left: auto; + } + } + + .card-title { + margin: 1rem 0 0.75rem 1rem; + } + + .card-body { + flex: 1 1 auto; + padding: 0.25rem; + font-size: 1.25rem; + + .loading { + width: 100%; + height: @height; + font-size: @text-size; + margin-top: 1px; + display: flex; + + .spinner { + margin: auto; + padding: 2rem; + width: 100%; + } + } + + .card-content { + height: @height; + overflow-y: auto; + border-top: 1px solid #ccc; + padding: 0 0.6rem; + margin: 0 0.4rem; + font-size: @text-size; + } + } + + &.discover-card-zh { + .card-header { + @media(max-width: 410px){ + .card-header-buttons { + font-size: 0.9rem; + } + } + + @media(max-width: 380px){ + .card-header-buttons { + font-size: 0.8rem; + } + } + + @media(max-width: 360px){ + .card-header-text { + font-size: 1rem; + } + } + + @media(max-width: 350px){ + .card-header-text { + font-size: 1.25rem; + } + + .card-header-buttons { + margin-left: 0; + margin-top: 0.8rem; + font-size: 1rem; + } + + & { + flex-direction: column; + } + } + } + } + + &.discover-card-en { + .card-header { + @media(max-width: 500px){ + .card-header-text { + font-size: 1rem; + } + + .card-header-buttons { + font-size: 0.8rem; + } + } + + @media(max-width: 430px){ + .card-header-text { + font-size: 1.25rem; + } + + .card-header-buttons { + margin-left: 0; + margin-top: 0.8rem; + font-size: 1rem; + } + + & { + flex-direction: column; + } + } + + @media(max-width: 350px){ + .card-header-text { + font-size: 1rem; + } + + .card-header-buttons { + font-size: 0.8rem; + } + } + } + } } \ No newline at end of file diff --git a/modules/discover/ext.isekai.discover.otherLanguage.less b/modules/discover/ext.isekai.discover.otherLanguage.less index 9bdbaf7..213f336 100644 --- a/modules/discover/ext.isekai.discover.otherLanguage.less +++ b/modules/discover/ext.isekai.discover.otherLanguage.less @@ -1,104 +1,104 @@ -@height: 20em; -@text-size: 0.85em; - -.discover-card { - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - border: 1px solid rgba(0,0,0,.125); - border-radius: .25rem; - - .card-header { - padding: .75rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0,0,0,.03); - border-bottom: 1px solid rgba(0,0,0,.125); - display: flex; - align-items: center; - - &:first-child { - border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; - } - - .card-header-text { - font-size: 1.25em; - } - - .card-header-buttons { - margin-left: auto; - } - - @media(max-width: 500px){ - .card-header-text { - font-size: 1em; - } - - .card-header-buttons { - font-size: 0.8em; - } - } - - @media(max-width: 430px){ - .card-header-text { - font-size: 1.25em; - } - - .card-header-buttons { - margin-left: 0; - margin-top: 0.8em; - font-size: 1em; - } - - & { - flex-direction: column; - } - } - - @media(max-width: 350px){ - .card-header-text { - font-size: 1em; - } - - .card-header-buttons { - font-size: 0.8em; - } - } - } - - .card-title { - margin: 1em 0 0.75em 1em; - } - - .card-body { - flex: 1 1 auto; - padding: 0.25em; - font-size: 1.25em; - - .loading { - width: 100%; - height: @height; - font-size: @text-size; - margin-top: 1px; - display: flex; - - .spinner { - margin: auto; - padding: 2em; - width: 100%; - } - } - - .card-content { - height: @height; - overflow-y: auto; - border-top: 1px solid #ccc; - padding: 0 0.6em; - margin: 0 0.4em; - font-size: @text-size; - } - } +@height: 20em; +@text-size: 0.85em; + +.discover-card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0,0,0,.125); + border-radius: .25rem; + + .card-header { + padding: .75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0,0,0,.03); + border-bottom: 1px solid rgba(0,0,0,.125); + display: flex; + align-items: center; + + &:first-child { + border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; + } + + .card-header-text { + font-size: 1.25em; + } + + .card-header-buttons { + margin-left: auto; + } + + @media(max-width: 500px){ + .card-header-text { + font-size: 1em; + } + + .card-header-buttons { + font-size: 0.8em; + } + } + + @media(max-width: 430px){ + .card-header-text { + font-size: 1.25em; + } + + .card-header-buttons { + margin-left: 0; + margin-top: 0.8em; + font-size: 1em; + } + + & { + flex-direction: column; + } + } + + @media(max-width: 350px){ + .card-header-text { + font-size: 1em; + } + + .card-header-buttons { + font-size: 0.8em; + } + } + } + + .card-title { + margin: 1em 0 0.75em 1em; + } + + .card-body { + flex: 1 1 auto; + padding: 0.25em; + font-size: 1.25em; + + .loading { + width: 100%; + height: @height; + font-size: @text-size; + margin-top: 1px; + display: flex; + + .spinner { + margin: auto; + padding: 2em; + width: 100%; + } + } + + .card-content { + height: @height; + overflow-y: auto; + border-top: 1px solid #ccc; + padding: 0 0.6em; + margin: 0 0.4em; + font-size: @text-size; + } + } } \ No newline at end of file diff --git a/modules/discover/ext.isekai.discover.tpl b/modules/discover/ext.isekai.discover.tpl index 60fcd9b..147cc32 100644 --- a/modules/discover/ext.isekai.discover.tpl +++ b/modules/discover/ext.isekai.discover.tpl @@ -1,13 +1,13 @@ -<div class="isekai-discover discover-card discover-card-<?php echo wfMessage('isekai-discover-langcode')->parse(); ?>"> - <div class="card-header"> - <span class="card-header-text" data-msg="isekai-discover-randompage"><?php echo wfMessage('isekai-discover-randompage')->parse(); ?></span> - <span class="card-header-buttons"></span> - </div> - <div class="card-body"> - <div class="card-title" data-msg="isekai-discover-loading"><?php echo wfMessage('isekai-discover-loading')->parse(); ?></div> - <div class="loading"> - <div class="spinner"></div> - </div> - <div class="card-content" style="display: none;"></div> - </div> +<div class="isekai-discover discover-card discover-card-<?=wfMessage('isekai-discover-langcode')->parse()?>"> + <div class="card-header"> + <span class="card-header-text" data-msg="isekai-discover-randompage"><?=wfMessage('isekai-discover-randompage')->parse()?></span> + <span class="card-header-buttons"></span> + </div> + <div class="card-body"> + <div class="card-title" data-msg="isekai-discover-loading"><?=wfMessage('isekai-discover-loading')->parse()?></div> + <div class="loading"> + <div class="spinner"></div> + </div> + <div class="card-content" style="display: none;"></div> + </div> </div> \ No newline at end of file diff --git a/modules/ext.isekai.alert.less b/modules/ext.isekai.alert.less deleted file mode 100644 index e69de29..0000000 diff --git a/modules/ext.isekai.collapse.js b/modules/ext.isekai.collapse.js new file mode 100644 index 0000000..2ecd15f --- /dev/null +++ b/modules/ext.isekai.collapse.js @@ -0,0 +1,33 @@ +(function($) { + $('.isekai-collapse').addClass('animate') + $('.isekai-collapse .isekai-collapse-title').on('click', '', function(e) { + e.preventDefault(); + var titleElem = $(this); + var containerElem = titleElem.parent('.isekai-collapse'); + var contentElem = containerElem.find('.isekai-collapse-content'); + if (containerElem.prop('open')) { // 需要收起 + var collapsedHeight = titleElem.outerHeight(); + var expandedHeight = collapsedHeight + contentElem.outerHeight(); + containerElem.css('height', expandedHeight); + console.log('expandedHeight', expandedHeight); + requestAnimationFrame(function() { + console.log('collapsedHeight', collapsedHeight); + containerElem.addClass('closing').css('height', collapsedHeight); + setTimeout(function() { + containerElem.prop('open', false).removeClass('closing'); //.css('height', 'auto'); + }, 260); + }); + } else { // 需要展开 + containerElem.prop('open', true); + var collapsedHeight = titleElem.outerHeight(); + containerElem.css('height', collapsedHeight); + requestAnimationFrame(function() { + var expandedHeight = collapsedHeight + contentElem.outerHeight(); + containerElem.css('height', expandedHeight); + /*setTimeout(function() { + containerElem.css('height', 'auto'); + }, 260);*/ + }); + } + }); +})(jQuery); diff --git a/modules/ext.isekai.collapse.less b/modules/ext.isekai.collapse.less new file mode 100644 index 0000000..e303396 --- /dev/null +++ b/modules/ext.isekai.collapse.less @@ -0,0 +1,64 @@ +.isekai-collapse { + width: 50%; + background: #fff; + margin-bottom: .5rem; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + border-radius: 5px; + overflow: hidden; + + @media screen and (max-width: 767px) { + width: 100%; + } + + &.animate { + overflow-y: hidden; + will-change: height; + transition: height 250ms ease-in-out; + } + + .isekai-collapse-title { + padding: 1rem; + display: block; + background-color: #f7f7f7; + padding-left: 2.2rem; + position: relative; + cursor: pointer; + color: black; + font-size: 1rem; + + &::before { + content: ''; + border-width: 0.4rem; + border-style: solid; + border-color: transparent transparent transparent #000; + position: absolute; + top: 1.32rem; + left: 1.2rem; + transform: rotate(0); + transform-origin: 0.2rem 50%; + will-change: transform; + transition: transform 250ms ease; + } + + &::-webkit-details-marker { + transform: rotate(90deg); + } + } + + .isekai-collapse-content { + padding: 1em; + } + + &[open] > .isekai-collapse-title:before { + transform: rotate(90deg); + } + + &.closing[open] > .isekai-collapse-title:before { + transform: rotate(0); + } +} + +.isekai-indent > .isekai-collapse { + padding-left: 0; + margin-left: 8px; +} \ No newline at end of file diff --git a/modules/ext.isekai.grid.less b/modules/ext.isekai.grid.less index f962049..a104131 100644 --- a/modules/ext.isekai.grid.less +++ b/modules/ext.isekai.grid.less @@ -1,18 +1,18 @@ -.isekai-row { - display: flex; - - .isekai-col { - width: 100%; - - @media(min-width: 851px){ - & { - width: 50%; - margin-left: 1em; - - &:first-child { - margin-left: 0px; - } - } - } - } +.isekai-row { + display: flex; + + .isekai-col { + width: 100%; + + @media(min-width: 851px){ + & { + width: 50%; + margin-left: 1em; + + &:first-child { + margin-left: 0px; + } + } + } + } } \ No newline at end of file diff --git a/modules/ext.isekai.widgets.global.less b/modules/ext.isekai.widgets.global.less new file mode 100644 index 0000000..e691b82 --- /dev/null +++ b/modules/ext.isekai.widgets.global.less @@ -0,0 +1,52 @@ +.isekai-card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0,0,0,.125); + border-radius: .25rem; + + .card-header { + padding: .75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0,0,0,.03); + border-bottom: 1px solid rgba(0,0,0,.125); + display: flex; + align-items: center; + + &:first-child { + border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0; + } + + .card-header-text { + font-size: 1.25rem; + } + + .card-header-buttons { + margin-left: auto; + } + } + + .card-title { + margin: 1rem 0 0.75rem 1rem; + } + + .card-body { + flex: 1 1 auto; + padding: 0.25rem; + } + + .card-body-fluid { + flex: 1 1 auto; + padding: 0; + } + + @media(max-width: 360px){ + .card-header-text { + font-size: 1rem; + } + } +} \ No newline at end of file diff --git a/modules/feedList/ext.isekai.feedList.js b/modules/feedList/ext.isekai.feedList.js new file mode 100644 index 0000000..38eca02 --- /dev/null +++ b/modules/feedList/ext.isekai.feedList.js @@ -0,0 +1,122 @@ +const Vue = require("vue"); + +if (document.querySelector('#isekai-feed-list')) { + new Vue({ + el: '#isekai-feed-list', + data: { + mounted: false, + loading: true, + feedList: [] + }, + mounted() { + this.$data.mounted = true; + const api = new mw.Api(); + + let recentData = { + recentNew: null, + recentEdit: null, + }; + const onLoaded = () => { + if (Array.isArray(recentData.recentNew) && Array.isArray(recentData.recentEdit)) { + // 混合两个列表 + let recentList = [ + ...recentData.recentNew, + ...recentData.recentEdit + ]; + recentList.sort((a, b) => b.orderWeight - a.orderWeight); + // 去除重复,获取pageid列表 + let pageIdList = []; + recentList = recentList.filter((item) => { + if (pageIdList.includes(item.pageid)) { + return false; + } else { + pageIdList.push(item.pageid); + return true; + } + }); + + // 获取页面详细信息 + api.get({ + "action": "query", + "prop": "extracts|info", + "pageids": pageIdList.join('|'), + "redirects": 1, + "converttitles": 1, + "exchars": 100, + "exintro": 1, + "explaintext": 1, + "inprop": "url" + }).done((data) => { + if (data.query && data.query.pages) { + const pageInfoList = data.query.pages; + recentList = recentList.map((info) => { + if (info.pageid in pageInfoList) { + const pageInfo = pageInfoList[info.pageid]; + return { + pageid: info.pageid, + title: pageInfo.title, + description: pageInfo.extract, + url: pageInfo.fullurl + } + } else { + return { + pageid: info.pageid, + title: info.title, + description: '', + url: mw.util.getUrl(info.title) + } + } + }); + // 设置data + this.$data.feedList = recentList; + this.$data.loading = false; + } + }); + } + }; + api.get({ + action: 'query', + list: 'recentchanges', + rctype: 'edit', + rcnamespace: 0, + rclimit: 20, + }).done((data) => { + recentData.recentEdit = []; + if (data.query && Array.isArray(data.query.recentchanges)) { //有成功取到数据 + data.query.recentchanges.forEach((one) => { + if (one.timestamp) { + one.timestamp = new Date(one.timestamp).getTime(); + one.orderWeight = one.timestamp; + } else { + one.orderWeight = 0; + } + recentData.recentEdit.push(one); + }); + onLoaded(); + } + }); + + api.get({ + action: 'query', + list: 'recentchanges', + rctype: 'new', + rcnamespace: 0, + rclimit: 20, + }).done((data) => { + recentData.recentNew = []; + if (data.query && Array.isArray(data.query.recentchanges)) { // 成功取到数据 + data.query.recentchanges.forEach((one) => { + if (one.timestamp) { + one.timestamp = new Date(one.timestamp).getTime(); + one.orderWeight = one.timestamp + (86400 * 1000); // 新页面保护,权重比页面更新高7天 + } else { + one.orderWeight = 0; + } + recentData.recentNew.push(one); + }); + onLoaded(); + } + }); + } + }); +} \ No newline at end of file diff --git a/modules/feedList/ext.isekai.feedList.less b/modules/feedList/ext.isekai.feedList.less new file mode 100644 index 0000000..6728fe8 --- /dev/null +++ b/modules/feedList/ext.isekai.feedList.less @@ -0,0 +1,92 @@ +@feed-list-height: 24rem; + +.isekai-feed-list-card > .card-header { + height: 2.25rem; +} + +#isekai-feed-list { + margin: 0; + height: @feed-list-height; + overflow-y: auto; + display: none; + + &.mounted { + display: block; + } + + .loading { + width: 100%; + height: 99.5%; + height: calc(100% - 2px); // fix: overflow because of border + margin-top: 1px; + display: flex; + + .spinner { + margin: auto; + padding: 2rem; + width: 100%; + } + } +} + +.isekai-list { + margin: 0 !important; + padding: 0 0 0.5rem 0 !important; + list-style: none; + background-color: transparent; + + .isekai-list-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 3rem; + padding: 0 1rem; + text-decoration: none; + cursor: pointer; + border-bottom: 1px solid rgba(0,0,0,.12); + + &:hover { + background-color: rgba(0,0,0,.08); + } + + &:last-of-type { + border-bottom: none; + } + } + + a { + color: #000; + text-decoration: none; + } + + .isekai-list-item-content { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding-top: 0.875rem; + padding-bottom: 0.875rem; + font-weight: 400; + font-size: 1rem; + line-height: 1.25rem; + } + + .isekai-list-item-title~.isekai-list-item-text { + margin-top: 0.25rem; + } + + .isekai-list-item-text { + font-size: 0.875rem; + opacity: 0.54; + -webkit-line-clamp: 1; + height: 1.25rem; + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + } +} \ No newline at end of file diff --git a/modules/feedList/ext.isekai.feedList.tpl b/modules/feedList/ext.isekai.feedList.tpl new file mode 100644 index 0000000..5c7748e --- /dev/null +++ b/modules/feedList/ext.isekai.feedList.tpl @@ -0,0 +1,24 @@ +<div class="isekai-card isekai-feed-list-card"> + <div class="card-header"> + <span class="card-header-text"><?=wfMessage('isekai-feed-list-title')->parse()?></span> + </div> + <div class="card-body-fluid"> + <div id="isekai-feed-list" :class="{ mounted: 'mounted' }"> + <div v-if="loading" class="loading"> + <div class="spinner"> + <div class="oo-ui-widget oo-ui-widget-enabled oo-ui-progressBarWidget-indeterminate oo-ui-progressBarWidget" aria-disabled="false" role="progressbar" aria-valuemin="0" aria-valuemax="100"> + <div class="oo-ui-progressBarWidget-bar"></div> + </div> + </div> + </div> + <ul v-else class="isekai-list"> + <a class="isekai-list-item" v-for="(feedItem, index) in feedList" :key="index" :href="feedItem.url"> + <div class="isekai-list-item-content"> + <div class="isekai-list-item-title">{{ feedItem.title }}</div> + <div class="isekai-list-item-text">{{ feedItem.description }}</div> + </div> + </a> + </ul> + </div> + </div> +</div> \ No newline at end of file diff --git a/modules/previewCard/ext.isekai.previewCard.js b/modules/previewCard/ext.isekai.previewCard.js index 4711582..e113c20 100644 --- a/modules/previewCard/ext.isekai.previewCard.js +++ b/modules/previewCard/ext.isekai.previewCard.js @@ -1,96 +1,96 @@ -$(function(){ - var cardList = []; - $('.isekai-preview-card').each(function(){ - //点击动画 - var animating = false; - var mouseUp = false; - var cardElem = $(this); - cardElem.on('mousedown', function(){ - cardElem.addClass('mousedown'); - mouseUp = false; - animating = true; - setTimeout(() => { - if(mouseUp){ - cardElem.removeClass('mousedown'); - } - animating = false; - }, 150); - }).on('mouseup', function(){ - if(animating){ - mouseUp = true; - } else { - cardElem.removeClass('mousedown'); - } - }); - //获取页面列表 - var pageTitle = cardElem.attr('data-title'); - if(pageTitle){ - cardList.push({ - title: pageTitle, - element: cardElem, - }); - } - }); - - //加载页面信息 - var titleList = []; - var pageInfoList = {}; - cardList.forEach((item) => { - var title = item.title; - if(titleList.indexOf(title) === -1){ - titleList.push(title); - } - }); - var api = new mw.Api(); - - function setPreviews(pageInfoList){ - cardList.forEach((item) => { - var title = item.title; - var elem = item.element; - //移除加载动画 - elem.find('.loading').remove(); - //查找数据 - if(title in pageInfoList){ - var info = pageInfoList[title]; - if(info.thumbnail){ //有缩略图 - elem.addClass('card-media'); - elem.find('.card-img').attr('src', info.thumbnail.source).show(); - } - - console.log(info); - elem.find('.card-content').text(info.extract); - } else { - elem.find('.card-content').text('页面不存在'); - } - }); - } - - api.get({ - action: 'query', - prop: ['info', 'extracts', 'pageimages', 'revisions', 'info'], - formatversion: 2, - redirects: true, - exintro: true, - exchars: 150, - explaintext: true, - piprop: 'thumbnail', - pithumbsize: 640, - pilicense: 'any', - rvprop: 'timestamp', - inprop: 'url', - titles: titleList, - smaxage: 300, - maxage: 300, - uselang: 'content', - }).done((data) => { - if(data.query && data.query.pages && data.query.pages.length > 0){ - let pages = data.query.pages; - pages.forEach((page) => { - if(!page.missing){ - pageInfoList[page.title] = page; - } - }); - setPreviews(pageInfoList); - } - }); +$(function(){ + var cardList = []; + $('.isekai-preview-card').each(function(){ + //点击动画 + var animating = false; + var mouseUp = false; + var cardElem = $(this); + cardElem.on('mousedown', function(){ + cardElem.addClass('mousedown'); + mouseUp = false; + animating = true; + setTimeout(() => { + if(mouseUp){ + cardElem.removeClass('mousedown'); + } + animating = false; + }, 150); + }).on('mouseup', function(){ + if(animating){ + mouseUp = true; + } else { + cardElem.removeClass('mousedown'); + } + }); + //获取页面列表 + var pageTitle = cardElem.attr('data-title'); + if(pageTitle){ + cardList.push({ + title: pageTitle, + element: cardElem, + }); + } + }); + + //加载页面信息 + var titleList = []; + var pageInfoList = {}; + cardList.forEach((item) => { + var title = item.title; + if(titleList.indexOf(title) === -1){ + titleList.push(title); + } + }); + var api = new mw.Api(); + + function setPreviews(pageInfoList){ + cardList.forEach((item) => { + var title = item.title; + var elem = item.element; + //移除加载动画 + elem.find('.loading').remove(); + //查找数据 + if(title in pageInfoList){ + var info = pageInfoList[title]; + if(info.thumbnail){ //有缩略图 + elem.addClass('card-media'); + elem.find('.card-img').attr('src', info.thumbnail.source).show(); + } + + console.log(info); + elem.find('.card-content').text(info.extract); + } else { + elem.find('.card-content').text('页面不存在'); + } + }); + } + + api.get({ + action: 'query', + prop: ['info', 'extracts', 'pageimages', 'revisions', 'info'], + formatversion: 2, + redirects: true, + exintro: true, + exchars: 150, + explaintext: true, + piprop: 'thumbnail', + pithumbsize: 640, + pilicense: 'any', + rvprop: 'timestamp', + inprop: 'url', + titles: titleList, + smaxage: 300, + maxage: 300, + uselang: 'content', + }).done((data) => { + if(data.query && data.query.pages && data.query.pages.length > 0){ + let pages = data.query.pages; + pages.forEach((page) => { + if(!page.missing){ + pageInfoList[page.title] = page; + } + }); + setPreviews(pageInfoList); + } + }); }); \ No newline at end of file diff --git a/modules/previewCard/ext.isekai.previewCard.less b/modules/previewCard/ext.isekai.previewCard.less index 9437ee8..9caa7c5 100644 --- a/modules/previewCard/ext.isekai.previewCard.less +++ b/modules/previewCard/ext.isekai.previewCard.less @@ -1,119 +1,119 @@ -@text-size: 1em; - -.isekai-preview-card-wrapper { - padding: .5rem; - width: 100%; - - @media (min-width: 768px) { - width: 50%; - } - - @media (min-width: 992px) { - width: 33.3333%; - } -} - -.isekai-preview-card { - word-wrap: break-word; - background-color: #fff; - background-clip: border-box; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - transform: scale(1); - transition: box-shadow 0.25s cubic-bezier(.4,0,.2,1), transform 0.15s cubic-bezier(.4,0,.2,1); - will-change: box-shadow, transform; - border-radius: 2px; - cursor: pointer; - - .card-header { - margin-bottom: 0; - display: flex; - align-items: center; - position: relative; - - .card-header-title { - padding: 1rem 1.2rem; - - .card-header-title-text { - font-weight: bold; - font-size: 1.4rem; - line-height: 2.2rem; - } - - .card-header-subtitle-text { - font-size: 0.8rem; - line-height: 1.6rem; - opacity: 0.7; - } - } - - .card-header-buttons { - margin-left: auto; - } - } - - .card-body { - flex: 1 1 auto; - - .card-content { - padding: 0rem 1rem 1.5rem; - font-size: @text-size; - line-height: 1.6em; - } - - .loading { - text-align: center; - padding: 2rem; - - .loader { - animation: isekai-spin 1s infinite linear; - } - } - } - - &.card-media { - .card-header { - .card-header-title { - position: absolute; - right: 0; - bottom: 0; - left: 0; - color: #fff; - background: rgba(0,0,0,.2); - padding: 1.4rem 1rem 1rem 1rem; - } - - .card-img { - max-height: 15rem; - width: 100%; - height: auto; - object-fit: cover; - } - } - - .card-body { - .card-content { - padding: 1rem 1rem 1.2rem; - } - } - } - - &.mousedown { - transform: scale(0.98); - } - - &:hover { - box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); - } -} - -@keyframes isekai-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } - } +@text-size: 1em; + +.isekai-preview-card-wrapper { + padding: .5rem; + width: 100%; + + @media (min-width: 768px) { + width: 50%; + } + + @media (min-width: 992px) { + width: 33.3333%; + } +} + +.isekai-preview-card { + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + transform: scale(1); + transition: box-shadow 0.25s cubic-bezier(.4,0,.2,1), transform 0.15s cubic-bezier(.4,0,.2,1); + will-change: box-shadow, transform; + border-radius: 2px; + cursor: pointer; + + .card-header { + margin-bottom: 0; + display: flex; + align-items: center; + position: relative; + + .card-header-title { + padding: 1rem 1.2rem; + + .card-header-title-text { + font-weight: bold; + font-size: 1.4rem; + line-height: 2.2rem; + } + + .card-header-subtitle-text { + font-size: 0.8rem; + line-height: 1.6rem; + opacity: 0.7; + } + } + + .card-header-buttons { + margin-left: auto; + } + } + + .card-body { + flex: 1 1 auto; + + .card-content { + padding: 0rem 1rem 1.5rem; + font-size: @text-size; + line-height: 1.6em; + } + + .loading { + text-align: center; + padding: 2rem; + + .loader { + animation: isekai-spin 1s infinite linear; + } + } + } + + &.card-media { + .card-header { + .card-header-title { + position: absolute; + right: 0; + bottom: 0; + left: 0; + color: #fff; + background: rgba(0,0,0,.2); + padding: 1.4rem 1rem 1rem 1rem; + } + + .card-img { + max-height: 15rem; + width: 100%; + height: auto; + object-fit: cover; + } + } + + .card-body { + .card-content { + padding: 1rem 1rem 1.2rem; + } + } + } + + &.mousedown { + transform: scale(0.98); + } + + &:hover { + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + } +} + +@keyframes isekai-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } + } \ No newline at end of file diff --git a/modules/previewCard/ext.isekai.previewCard.html b/modules/previewCard/ext.isekai.previewCard.tpl similarity index 76% rename from modules/previewCard/ext.isekai.previewCard.html rename to modules/previewCard/ext.isekai.previewCard.tpl index 93a6f62..6f26aaf 100644 --- a/modules/previewCard/ext.isekai.previewCard.html +++ b/modules/previewCard/ext.isekai.previewCard.tpl @@ -1,20 +1,20 @@ -<div class="isekai-preview-card-wrapper"> - <div class="isekai-preview-card card-media" data-title="<?php echo $title; ?>"> - <div class="card-header"> - <div class="card-header-title"> - <div class="card-header-title-text"><?php echo $displayTitle; ?></div> - <div class="card-header-subtitle-text"><?php echo $path; ?></div> - </div> - <img class="card-img" style="display: none;"> - </div> - <div class="card-body"> - <div class="card-content"> - <div class="loading"> - <svg version="1.1" class="loader" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="40px" height="40px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve"> - <path fill="#0088dd" d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z"></path> - </svg> - </div> - </div> - </div> - </div> +<div class="isekai-preview-card-wrapper"> + <div class="isekai-preview-card card-media" data-title="<?=$title?>"> + <div class="card-header"> + <div class="card-header-title"> + <div class="card-header-title-text"><?=$displayTitle?></div> + <div class="card-header-subtitle-text"><?=$path?></div> + </div> + <img class="card-img" style="display: none;"> + </div> + <div class="card-body"> + <div class="card-content"> + <div class="loading"> + <svg version="1.1" class="loader" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="40px" height="40px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve"> + <path fill="#0088dd" d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z"></path> + </svg> + </div> + </div> + </div> + </div> </div> \ No newline at end of file diff --git a/modules/tile/style.less b/modules/tile/style.less index 2ecda3d..8f4bd23 100644 --- a/modules/tile/style.less +++ b/modules/tile/style.less @@ -1,21 +1,21 @@ -a { - &.tile-small, - &.tile-medium, - &.tile-wide, - &.tile-large, - &.tile-app { - color: #fff; - } -} - -.tiles-group { - margin: 5px 0; -} - -.tiles-group::before { - font-size: 1.2em; -} - -.tiles-group[data-group-title] { - margin-top: 3em; +a { + &.tile-small, + &.tile-medium, + &.tile-wide, + &.tile-large, + &.tile-app { + color: #fff; + } +} + +.tiles-group { + margin: 5px 0; +} + +.tiles-group::before { + font-size: 1.2em; +} + +.tiles-group[data-group-title] { + margin-top: 3em; } \ No newline at end of file diff --git a/modules/tile/tile.css b/modules/tile/tile.css index 93d568c..c76cd4c 100644 --- a/modules/tile/tile.css +++ b/modules/tile/tile.css @@ -1,1391 +1,1391 @@ -/* Please use node.js "less" module to complie this less */ -/* 请使用node.js的“less”模块来编译本less */ -.tile-small, -.tile-medium, -.tile-wide, -.tile-large, -.tile-app { - display: block; - background-color: #1ba1e2; - color: #ffffff; - width: 150px; - height: 150px; - box-shadow: inset 0 0 1px #FFFFCC; - cursor: pointer; - position: relative; - overflow: hidden; - user-select: none; - max-width: none!important; -} -.tile-small { - width: 70px; - height: 70px; -} -.tile-medium { - width: 150px; - height: 150px; -} -.tile-wide { - width: 310px; - height: 150px; -} -.tile-large { - width: 310px; - height: 310px; -} -.tile-app { - width: 44px; - height: 44px; -} -.tile-small .icon, -.tile-medium .icon, -.tile-wide .icon, -.tile-large .icon, -.tile-app .icon { - max-width: 33%; - height: 33%; - position: absolute; - top: 50%; - left: 50%; - transform: translateY(-50%) translateX(-50%); - /*font-size: 50px;*/ - /*line-height: 50px;*/ - z-index: 2; -} -.tile-small .branding-bar, -.tile-medium .branding-bar, -.tile-wide .branding-bar, -.tile-large .branding-bar, -.tile-app .branding-bar { - height: 32px; - line-height: 32px; - position: absolute; - left: 0; - bottom: 0; - right: 0; - padding: 0 10px 5px; - font-size: 0.875rem; - font-weight: 500; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - z-index: 2; -} -.tile-small .badge-top, -.tile-medium .badge-top, -.tile-wide .badge-top, -.tile-large .badge-top, -.tile-app .badge-top, -.tile-small .badge-bottom, -.tile-medium .badge-bottom, -.tile-wide .badge-bottom, -.tile-large .badge-bottom, -.tile-app .badge-bottom { - position: absolute; - display: block; - padding: 4px 8px; - font-size: 12px; - text-align: center; - background-color: rgba(29, 29, 29, 0.1); - z-index: 2; -} -.tile-small .badge-bottom, -.tile-medium .badge-bottom, -.tile-wide .badge-bottom, -.tile-large .badge-bottom, -.tile-app .badge-bottom { - right: 10px; - bottom: 0; -} -.tile-small .badge-top, -.tile-medium .badge-top, -.tile-wide .badge-top, -.tile-large .badge-top, -.tile-app .badge-top { - top: 10px; - right: 10px; -} -.tile-small:hover, -.tile-medium:hover, -.tile-wide:hover, -.tile-large:hover, -.tile-app:hover { - outline: rgba(29, 29, 29, 0.1) solid 4px; -} -.tile-small { - /*.branding-bar { - display: none; - }*/ -} -.tile-small .icon { - max-width: 50%; - font-size: 35px; - line-height: 35px; -} -.tile-large .icon { - font-size: 102px; - line-height: 102px; -} -.tile-app .icon { - max-width: 75%; - height: 75%; -} -.tile-small.transform-right, -.tile-medium.transform-right, -.tile-wide.transform-right, -.tile-large.transform-right, -.tile-app.transform-right { - transform-origin: left 50%; - transform: perspective(500px) rotateY(0.138372rad) !important; -} -.tile-small.transform-right.tile-small, -.tile-medium.transform-right.tile-small, -.tile-wide.transform-right.tile-small, -.tile-large.transform-right.tile-small, -.tile-app.transform-right.tile-small { - transform: perspective(500px) rotateY(0.276744rad) !important; -} -.tile-small.transform-right.tile-wide, -.tile-medium.transform-right.tile-wide, -.tile-wide.transform-right.tile-wide, -.tile-large.transform-right.tile-wide, -.tile-app.transform-right.tile-wide { - transform: perspective(500px) rotateY(0.069186rad) !important; -} -.tile-small.transform-right.tile-large, -.tile-medium.transform-right.tile-large, -.tile-wide.transform-right.tile-large, -.tile-large.transform-right.tile-large, -.tile-app.transform-right.tile-large { - transform: perspective(500px) rotateY(0.046124rad) !important; -} -.tile-small.transform-left, -.tile-medium.transform-left, -.tile-wide.transform-left, -.tile-large.transform-left, -.tile-app.transform-left { - transform-origin: right 50%; - transform: perspective(500px) rotateY(-0.138372rad) !important; -} -.tile-small.transform-left.tile-small, -.tile-medium.transform-left.tile-small, -.tile-wide.transform-left.tile-small, -.tile-large.transform-left.tile-small, -.tile-app.transform-left.tile-small { - transform: perspective(500px) rotateY(-0.276744rad) !important; -} -.tile-small.transform-left.tile-wide, -.tile-medium.transform-left.tile-wide, -.tile-wide.transform-left.tile-wide, -.tile-large.transform-left.tile-wide, -.tile-app.transform-left.tile-wide { - transform: perspective(500px) rotateY(-0.069186rad) !important; -} -.tile-small.transform-left.tile-large, -.tile-medium.transform-left.tile-large, -.tile-wide.transform-left.tile-large, -.tile-large.transform-left.tile-large, -.tile-app.transform-left.tile-large { - transform: perspective(500px) rotateY(-0.046124rad) !important; -} -.tile-small.transform-top, -.tile-medium.transform-top, -.tile-wide.transform-top, -.tile-large.transform-top, -.tile-app.transform-top { - transform-origin: 50% bottom; - transform: perspective(500px) rotateX(0.138372rad) !important; -} -.tile-small.transform-top.tile-small, -.tile-medium.transform-top.tile-small, -.tile-wide.transform-top.tile-small, -.tile-large.transform-top.tile-small, -.tile-app.transform-top.tile-small { - transform: perspective(500px) rotateX(0.276744rad) !important; -} -.tile-small.transform-top.tile-wide, -.tile-medium.transform-top.tile-wide, -.tile-wide.transform-top.tile-wide, -.tile-large.transform-top.tile-wide, -.tile-app.transform-top.tile-wide { - transform: perspective(500px) rotateX(0.069186rad) !important; -} -.tile-small.transform-top.tile-large, -.tile-medium.transform-top.tile-large, -.tile-wide.transform-top.tile-large, -.tile-large.transform-top.tile-large, -.tile-app.transform-top.tile-large { - transform: perspective(500px) rotateX(0.046124rad) !important; -} -.tile-small.transform-bottom, -.tile-medium.transform-bottom, -.tile-wide.transform-bottom, -.tile-large.transform-bottom, -.tile-app.transform-bottom { - transform-origin: 50% top; - transform: perspective(500px) rotateX(-0.138372rad) !important; -} -.tile-small.transform-bottom.tile-small, -.tile-medium.transform-bottom.tile-small, -.tile-wide.transform-bottom.tile-small, -.tile-large.transform-bottom.tile-small, -.tile-app.transform-bottom.tile-small { - transform: perspective(500px) rotateX(-0.276744rad) !important; -} -.tile-small.transform-bottom.tile-wide, -.tile-medium.transform-bottom.tile-wide, -.tile-wide.transform-bottom.tile-wide, -.tile-large.transform-bottom.tile-wide, -.tile-app.transform-bottom.tile-wide { - transform: perspective(500px) rotateX(-0.069186rad) !important; -} -.tile-small.transform-bottom.tile-large, -.tile-medium.transform-bottom.tile-large, -.tile-wide.transform-bottom.tile-large, -.tile-large.transform-bottom.tile-large, -.tile-app.transform-bottom.tile-large { - transform: perspective(500px) rotateX(-0.046124rad) !important; -} -.tiles-grid { - position: relative; - display: grid; - grid-template-columns: repeat(auto-fit, 24%); - /*grid-template-rows: repeat(auto-fit, (@tileBaseSize - 1%));*/ - grid-gap: 5px; - /*.tile-small::before, - .tile-medium::before, - .tile-large::before { - content: ''; - padding-bottom: 100%; - display: block; - } - - .tile-wide::before { - content: ''; - padding-bottom: 50%; - display: block; - }*/ -} -.tiles-grid .tile-small { - height: 100%; - width: 100%; - grid-column: span 1; - grid-row: span 1; -} -.tiles-grid .tile-medium { - height: 100%; - width: 100%; - grid-column: span 2; - grid-row: span 2; -} -.tiles-grid .tile-wide { - height: 100%; - width: 100%; - grid-column: span 4; - grid-row: span 2; -} -.tiles-grid .tile-large { - height: 100%; - width: 100%; - grid-column: span 4; - grid-row: span 4; -} -.tiles-grid .tile-small.col-1 { - grid-column: 1 / span 1; -} -.tiles-grid .tile-medium.col-1 { - grid-column: 1 / span 2; -} -.tiles-grid .tile-wide.col-1 { - grid-column: 1 / span 4; -} -.tiles-grid .tile-large.col-1 { - grid-column: 1 / span 4; -} -.tiles-grid .tile-small.row-1 { - grid-row: 1 / span 1; -} -.tiles-grid .tile-medium.row-1 { - grid-row: 1 / span 2; -} -.tiles-grid .tile-wide.row-1 { - grid-row: 1 / span 4; -} -.tiles-grid .tile-large.row-1 { - grid-row: 1 / span 4; -} -.tiles-grid .tile-small.col-2 { - grid-column: 2 / span 1; -} -.tiles-grid .tile-medium.col-2 { - grid-column: 2 / span 2; -} -.tiles-grid .tile-wide.col-2 { - grid-column: 2 / span 4; -} -.tiles-grid .tile-large.col-2 { - grid-column: 2 / span 4; -} -.tiles-grid .tile-small.row-2 { - grid-row: 2 / span 1; -} -.tiles-grid .tile-medium.row-2 { - grid-row: 2 / span 2; -} -.tiles-grid .tile-wide.row-2 { - grid-row: 2 / span 4; -} -.tiles-grid .tile-large.row-2 { - grid-row: 2 / span 4; -} -.tiles-grid .tile-small.col-3 { - grid-column: 3 / span 1; -} -.tiles-grid .tile-medium.col-3 { - grid-column: 3 / span 2; -} -.tiles-grid .tile-wide.col-3 { - grid-column: 3 / span 4; -} -.tiles-grid .tile-large.col-3 { - grid-column: 3 / span 4; -} -.tiles-grid .tile-small.row-3 { - grid-row: 3 / span 1; -} -.tiles-grid .tile-medium.row-3 { - grid-row: 3 / span 2; -} -.tiles-grid .tile-wide.row-3 { - grid-row: 3 / span 4; -} -.tiles-grid .tile-large.row-3 { - grid-row: 3 / span 4; -} -.tiles-grid .tile-small.col-4 { - grid-column: 4 / span 1; -} -.tiles-grid .tile-medium.col-4 { - grid-column: 4 / span 2; -} -.tiles-grid .tile-wide.col-4 { - grid-column: 4 / span 4; -} -.tiles-grid .tile-large.col-4 { - grid-column: 4 / span 4; -} -.tiles-grid .tile-small.row-4 { - grid-row: 4 / span 1; -} -.tiles-grid .tile-medium.row-4 { - grid-row: 4 / span 2; -} -.tiles-grid .tile-wide.row-4 { - grid-row: 4 / span 4; -} -.tiles-grid .tile-large.row-4 { - grid-row: 4 / span 4; -} -.tiles-grid .tile-small.col-5 { - grid-column: 5 / span 1; -} -.tiles-grid .tile-medium.col-5 { - grid-column: 5 / span 2; -} -.tiles-grid .tile-wide.col-5 { - grid-column: 5 / span 4; -} -.tiles-grid .tile-large.col-5 { - grid-column: 5 / span 4; -} -.tiles-grid .tile-small.row-5 { - grid-row: 5 / span 1; -} -.tiles-grid .tile-medium.row-5 { - grid-row: 5 / span 2; -} -.tiles-grid .tile-wide.row-5 { - grid-row: 5 / span 4; -} -.tiles-grid .tile-large.row-5 { - grid-row: 5 / span 4; -} -.tiles-grid .tile-small.col-6 { - grid-column: 6 / span 1; -} -.tiles-grid .tile-medium.col-6 { - grid-column: 6 / span 2; -} -.tiles-grid .tile-wide.col-6 { - grid-column: 6 / span 4; -} -.tiles-grid .tile-large.col-6 { - grid-column: 6 / span 4; -} -.tiles-grid .tile-small.row-6 { - grid-row: 6 / span 1; -} -.tiles-grid .tile-medium.row-6 { - grid-row: 6 / span 2; -} -.tiles-grid .tile-wide.row-6 { - grid-row: 6 / span 4; -} -.tiles-grid .tile-large.row-6 { - grid-row: 6 / span 4; -} -.tiles-grid .tile-small.col-7 { - grid-column: 7 / span 1; -} -.tiles-grid .tile-medium.col-7 { - grid-column: 7 / span 2; -} -.tiles-grid .tile-wide.col-7 { - grid-column: 7 / span 4; -} -.tiles-grid .tile-large.col-7 { - grid-column: 7 / span 4; -} -.tiles-grid .tile-small.row-7 { - grid-row: 7 / span 1; -} -.tiles-grid .tile-medium.row-7 { - grid-row: 7 / span 2; -} -.tiles-grid .tile-wide.row-7 { - grid-row: 7 / span 4; -} -.tiles-grid .tile-large.row-7 { - grid-row: 7 / span 4; -} -.tiles-grid .tile-small.col-8 { - grid-column: 8 / span 1; -} -.tiles-grid .tile-medium.col-8 { - grid-column: 8 / span 2; -} -.tiles-grid .tile-wide.col-8 { - grid-column: 8 / span 4; -} -.tiles-grid .tile-large.col-8 { - grid-column: 8 / span 4; -} -.tiles-grid .tile-small.row-8 { - grid-row: 8 / span 1; -} -.tiles-grid .tile-medium.row-8 { - grid-row: 8 / span 2; -} -.tiles-grid .tile-wide.row-8 { - grid-row: 8 / span 4; -} -.tiles-grid .tile-large.row-8 { - grid-row: 8 / span 4; -} -.tiles-grid .tile-small.col-9 { - grid-column: 9 / span 1; -} -.tiles-grid .tile-medium.col-9 { - grid-column: 9 / span 2; -} -.tiles-grid .tile-wide.col-9 { - grid-column: 9 / span 4; -} -.tiles-grid .tile-large.col-9 { - grid-column: 9 / span 4; -} -.tiles-grid .tile-small.row-9 { - grid-row: 9 / span 1; -} -.tiles-grid .tile-medium.row-9 { - grid-row: 9 / span 2; -} -.tiles-grid .tile-wide.row-9 { - grid-row: 9 / span 4; -} -.tiles-grid .tile-large.row-9 { - grid-row: 9 / span 4; -} -.tiles-grid .tile-small.col-10 { - grid-column: 10 / span 1; -} -.tiles-grid .tile-medium.col-10 { - grid-column: 10 / span 2; -} -.tiles-grid .tile-wide.col-10 { - grid-column: 10 / span 4; -} -.tiles-grid .tile-large.col-10 { - grid-column: 10 / span 4; -} -.tiles-grid .tile-small.row-10 { - grid-row: 10 / span 1; -} -.tiles-grid .tile-medium.row-10 { - grid-row: 10 / span 2; -} -.tiles-grid .tile-wide.row-10 { - grid-row: 10 / span 4; -} -.tiles-grid .tile-large.row-10 { - grid-row: 10 / span 4; -} -.tiles-grid .tile-small.col-11 { - grid-column: 11 / span 1; -} -.tiles-grid .tile-medium.col-11 { - grid-column: 11 / span 2; -} -.tiles-grid .tile-wide.col-11 { - grid-column: 11 / span 4; -} -.tiles-grid .tile-large.col-11 { - grid-column: 11 / span 4; -} -.tiles-grid .tile-small.row-11 { - grid-row: 11 / span 1; -} -.tiles-grid .tile-medium.row-11 { - grid-row: 11 / span 2; -} -.tiles-grid .tile-wide.row-11 { - grid-row: 11 / span 4; -} -.tiles-grid .tile-large.row-11 { - grid-row: 11 / span 4; -} -.tiles-grid .tile-small.col-12 { - grid-column: 12 / span 1; -} -.tiles-grid .tile-medium.col-12 { - grid-column: 12 / span 2; -} -.tiles-grid .tile-wide.col-12 { - grid-column: 12 / span 4; -} -.tiles-grid .tile-large.col-12 { - grid-column: 12 / span 4; -} -.tiles-grid .tile-small.row-12 { - grid-row: 12 / span 1; -} -.tiles-grid .tile-medium.row-12 { - grid-row: 12 / span 2; -} -.tiles-grid .tile-wide.row-12 { - grid-row: 12 / span 4; -} -.tiles-grid .tile-large.row-12 { - grid-row: 12 / span 4; -} -.tiles-grid.size-half { - width: 50%; -} -.tiles-grid.size-1 { - width: 8.33333333%; -} -.tiles-grid.size-2 { - width: 16.66666667%; -} -.tiles-grid.size-3 { - width: 25%; -} -.tiles-grid.size-4 { - width: 33.33333333%; -} -.tiles-grid.size-5 { - width: 41.66666667%; -} -.tiles-grid.size-6 { - width: 50%; -} -.tiles-grid.size-7 { - width: 58.33333333%; -} -.tiles-grid.size-8 { - width: 66.66666667%; -} -.tiles-grid.size-9 { - width: 75%; -} -.tiles-grid.size-10 { - width: 83.33333333%; -} -.tiles-grid.size-11 { - width: 91.66666667%; -} -.tiles-grid.size-12 { - width: 100%; -} -@media screen and (min-width: 0) { - .tiles-grid .col-fs-1 { - grid-column: 1; - } - .tiles-grid .row-fs-1 { - grid-row: 1; - } - .tiles-grid .col-fs-2 { - grid-column: 2; - } - .tiles-grid .row-fs-2 { - grid-row: 2; - } - .tiles-grid .col-fs-3 { - grid-column: 3; - } - .tiles-grid .row-fs-3 { - grid-row: 3; - } - .tiles-grid .col-fs-4 { - grid-column: 4; - } - .tiles-grid .row-fs-4 { - grid-row: 4; - } - .tiles-grid .col-fs-5 { - grid-column: 5; - } - .tiles-grid .row-fs-5 { - grid-row: 5; - } - .tiles-grid .col-fs-6 { - grid-column: 6; - } - .tiles-grid .row-fs-6 { - grid-row: 6; - } - .tiles-grid .col-fs-7 { - grid-column: 7; - } - .tiles-grid .row-fs-7 { - grid-row: 7; - } - .tiles-grid .col-fs-8 { - grid-column: 8; - } - .tiles-grid .row-fs-8 { - grid-row: 8; - } - .tiles-grid .col-fs-9 { - grid-column: 9; - } - .tiles-grid .row-fs-9 { - grid-row: 9; - } - .tiles-grid .col-fs-10 { - grid-column: 10; - } - .tiles-grid .row-fs-10 { - grid-row: 10; - } - .tiles-grid .col-fs-11 { - grid-column: 11; - } - .tiles-grid .row-fs-11 { - grid-row: 11; - } - .tiles-grid .col-fs-12 { - grid-column: 12; - } - .tiles-grid .row-fs-12 { - grid-row: 12; - } - .tiles-grid.size-fs-1 { - width: 8.33333333%; - } - .tiles-grid.size-fs-2 { - width: 16.66666667%; - } - .tiles-grid.size-fs-3 { - width: 25%; - } - .tiles-grid.size-fs-4 { - width: 33.33333333%; - } - .tiles-grid.size-fs-5 { - width: 41.66666667%; - } - .tiles-grid.size-fs-6 { - width: 50%; - } - .tiles-grid.size-fs-7 { - width: 58.33333333%; - } - .tiles-grid.size-fs-8 { - width: 66.66666667%; - } - .tiles-grid.size-fs-9 { - width: 75%; - } - .tiles-grid.size-fs-10 { - width: 83.33333333%; - } - .tiles-grid.size-fs-11 { - width: 91.66666667%; - } - .tiles-grid.size-fs-12 { - width: 100%; - } -} -@media screen and (min-width: 576px) { - .tiles-grid .col-sm-1 { - grid-column: 1; - } - .tiles-grid .row-sm-1 { - grid-row: 1; - } - .tiles-grid .col-sm-2 { - grid-column: 2; - } - .tiles-grid .row-sm-2 { - grid-row: 2; - } - .tiles-grid .col-sm-3 { - grid-column: 3; - } - .tiles-grid .row-sm-3 { - grid-row: 3; - } - .tiles-grid .col-sm-4 { - grid-column: 4; - } - .tiles-grid .row-sm-4 { - grid-row: 4; - } - .tiles-grid .col-sm-5 { - grid-column: 5; - } - .tiles-grid .row-sm-5 { - grid-row: 5; - } - .tiles-grid .col-sm-6 { - grid-column: 6; - } - .tiles-grid .row-sm-6 { - grid-row: 6; - } - .tiles-grid .col-sm-7 { - grid-column: 7; - } - .tiles-grid .row-sm-7 { - grid-row: 7; - } - .tiles-grid .col-sm-8 { - grid-column: 8; - } - .tiles-grid .row-sm-8 { - grid-row: 8; - } - .tiles-grid .col-sm-9 { - grid-column: 9; - } - .tiles-grid .row-sm-9 { - grid-row: 9; - } - .tiles-grid .col-sm-10 { - grid-column: 10; - } - .tiles-grid .row-sm-10 { - grid-row: 10; - } - .tiles-grid .col-sm-11 { - grid-column: 11; - } - .tiles-grid .row-sm-11 { - grid-row: 11; - } - .tiles-grid .col-sm-12 { - grid-column: 12; - } - .tiles-grid .row-sm-12 { - grid-row: 12; - } - .tiles-grid.size-sm-1 { - width: 8.33333333%; - } - .tiles-grid.size-sm-2 { - width: 16.66666667%; - } - .tiles-grid.size-sm-3 { - width: 25%; - } - .tiles-grid.size-sm-4 { - width: 33.33333333%; - } - .tiles-grid.size-sm-5 { - width: 41.66666667%; - } - .tiles-grid.size-sm-6 { - width: 50%; - } - .tiles-grid.size-sm-7 { - width: 58.33333333%; - } - .tiles-grid.size-sm-8 { - width: 66.66666667%; - } - .tiles-grid.size-sm-9 { - width: 75%; - } - .tiles-grid.size-sm-10 { - width: 83.33333333%; - } - .tiles-grid.size-sm-11 { - width: 91.66666667%; - } - .tiles-grid.size-sm-12 { - width: 100%; - } -} -@media screen and (min-width: 768px) { - .tiles-grid .col-md-1 { - grid-column: 1; - } - .tiles-grid .row-md-1 { - grid-row: 1; - } - .tiles-grid .col-md-2 { - grid-column: 2; - } - .tiles-grid .row-md-2 { - grid-row: 2; - } - .tiles-grid .col-md-3 { - grid-column: 3; - } - .tiles-grid .row-md-3 { - grid-row: 3; - } - .tiles-grid .col-md-4 { - grid-column: 4; - } - .tiles-grid .row-md-4 { - grid-row: 4; - } - .tiles-grid .col-md-5 { - grid-column: 5; - } - .tiles-grid .row-md-5 { - grid-row: 5; - } - .tiles-grid .col-md-6 { - grid-column: 6; - } - .tiles-grid .row-md-6 { - grid-row: 6; - } - .tiles-grid .col-md-7 { - grid-column: 7; - } - .tiles-grid .row-md-7 { - grid-row: 7; - } - .tiles-grid .col-md-8 { - grid-column: 8; - } - .tiles-grid .row-md-8 { - grid-row: 8; - } - .tiles-grid .col-md-9 { - grid-column: 9; - } - .tiles-grid .row-md-9 { - grid-row: 9; - } - .tiles-grid .col-md-10 { - grid-column: 10; - } - .tiles-grid .row-md-10 { - grid-row: 10; - } - .tiles-grid .col-md-11 { - grid-column: 11; - } - .tiles-grid .row-md-11 { - grid-row: 11; - } - .tiles-grid .col-md-12 { - grid-column: 12; - } - .tiles-grid .row-md-12 { - grid-row: 12; - } - .tiles-grid.size-md-1 { - width: 8.33333333%; - } - .tiles-grid.size-md-2 { - width: 16.66666667%; - } - .tiles-grid.size-md-3 { - width: 25%; - } - .tiles-grid.size-md-4 { - width: 33.33333333%; - } - .tiles-grid.size-md-5 { - width: 41.66666667%; - } - .tiles-grid.size-md-6 { - width: 50%; - } - .tiles-grid.size-md-7 { - width: 58.33333333%; - } - .tiles-grid.size-md-8 { - width: 66.66666667%; - } - .tiles-grid.size-md-9 { - width: 75%; - } - .tiles-grid.size-md-10 { - width: 83.33333333%; - } - .tiles-grid.size-md-11 { - width: 91.66666667%; - } - .tiles-grid.size-md-12 { - width: 100%; - } -} -@media screen and (min-width: 992px) { - .tiles-grid .col-lg-1 { - grid-column: 1; - } - .tiles-grid .row-lg-1 { - grid-row: 1; - } - .tiles-grid .col-lg-2 { - grid-column: 2; - } - .tiles-grid .row-lg-2 { - grid-row: 2; - } - .tiles-grid .col-lg-3 { - grid-column: 3; - } - .tiles-grid .row-lg-3 { - grid-row: 3; - } - .tiles-grid .col-lg-4 { - grid-column: 4; - } - .tiles-grid .row-lg-4 { - grid-row: 4; - } - .tiles-grid .col-lg-5 { - grid-column: 5; - } - .tiles-grid .row-lg-5 { - grid-row: 5; - } - .tiles-grid .col-lg-6 { - grid-column: 6; - } - .tiles-grid .row-lg-6 { - grid-row: 6; - } - .tiles-grid .col-lg-7 { - grid-column: 7; - } - .tiles-grid .row-lg-7 { - grid-row: 7; - } - .tiles-grid .col-lg-8 { - grid-column: 8; - } - .tiles-grid .row-lg-8 { - grid-row: 8; - } - .tiles-grid .col-lg-9 { - grid-column: 9; - } - .tiles-grid .row-lg-9 { - grid-row: 9; - } - .tiles-grid .col-lg-10 { - grid-column: 10; - } - .tiles-grid .row-lg-10 { - grid-row: 10; - } - .tiles-grid .col-lg-11 { - grid-column: 11; - } - .tiles-grid .row-lg-11 { - grid-row: 11; - } - .tiles-grid .col-lg-12 { - grid-column: 12; - } - .tiles-grid .row-lg-12 { - grid-row: 12; - } - .tiles-grid.size-lg-1 { - width: 8.33333333%; - } - .tiles-grid.size-lg-2 { - width: 16.66666667%; - } - .tiles-grid.size-lg-3 { - width: 25%; - } - .tiles-grid.size-lg-4 { - width: 33.33333333%; - } - .tiles-grid.size-lg-5 { - width: 41.66666667%; - } - .tiles-grid.size-lg-6 { - width: 50%; - } - .tiles-grid.size-lg-7 { - width: 58.33333333%; - } - .tiles-grid.size-lg-8 { - width: 66.66666667%; - } - .tiles-grid.size-lg-9 { - width: 75%; - } - .tiles-grid.size-lg-10 { - width: 83.33333333%; - } - .tiles-grid.size-lg-11 { - width: 91.66666667%; - } - .tiles-grid.size-lg-12 { - width: 100%; - } -} -@media screen and (min-width: 1200px) { - .tiles-grid .col-xl-1 { - grid-column: 1; - } - .tiles-grid .row-xl-1 { - grid-row: 1; - } - .tiles-grid .col-xl-2 { - grid-column: 2; - } - .tiles-grid .row-xl-2 { - grid-row: 2; - } - .tiles-grid .col-xl-3 { - grid-column: 3; - } - .tiles-grid .row-xl-3 { - grid-row: 3; - } - .tiles-grid .col-xl-4 { - grid-column: 4; - } - .tiles-grid .row-xl-4 { - grid-row: 4; - } - .tiles-grid .col-xl-5 { - grid-column: 5; - } - .tiles-grid .row-xl-5 { - grid-row: 5; - } - .tiles-grid .col-xl-6 { - grid-column: 6; - } - .tiles-grid .row-xl-6 { - grid-row: 6; - } - .tiles-grid .col-xl-7 { - grid-column: 7; - } - .tiles-grid .row-xl-7 { - grid-row: 7; - } - .tiles-grid .col-xl-8 { - grid-column: 8; - } - .tiles-grid .row-xl-8 { - grid-row: 8; - } - .tiles-grid .col-xl-9 { - grid-column: 9; - } - .tiles-grid .row-xl-9 { - grid-row: 9; - } - .tiles-grid .col-xl-10 { - grid-column: 10; - } - .tiles-grid .row-xl-10 { - grid-row: 10; - } - .tiles-grid .col-xl-11 { - grid-column: 11; - } - .tiles-grid .row-xl-11 { - grid-row: 11; - } - .tiles-grid .col-xl-12 { - grid-column: 12; - } - .tiles-grid .row-xl-12 { - grid-row: 12; - } - .tiles-grid.size-xl-1 { - width: 8.33333333%; - } - .tiles-grid.size-xl-2 { - width: 16.66666667%; - } - .tiles-grid.size-xl-3 { - width: 25%; - } - .tiles-grid.size-xl-4 { - width: 33.33333333%; - } - .tiles-grid.size-xl-5 { - width: 41.66666667%; - } - .tiles-grid.size-xl-6 { - width: 50%; - } - .tiles-grid.size-xl-7 { - width: 58.33333333%; - } - .tiles-grid.size-xl-8 { - width: 66.66666667%; - } - .tiles-grid.size-xl-9 { - width: 75%; - } - .tiles-grid.size-xl-10 { - width: 83.33333333%; - } - .tiles-grid.size-xl-11 { - width: 91.66666667%; - } - .tiles-grid.size-xl-12 { - width: 100%; - } -} -@media screen and (min-width: 1452px) { - .tiles-grid .col-xxl-1 { - grid-column: 1; - } - .tiles-grid .row-xxl-1 { - grid-row: 1; - } - .tiles-grid .col-xxl-2 { - grid-column: 2; - } - .tiles-grid .row-xxl-2 { - grid-row: 2; - } - .tiles-grid .col-xxl-3 { - grid-column: 3; - } - .tiles-grid .row-xxl-3 { - grid-row: 3; - } - .tiles-grid .col-xxl-4 { - grid-column: 4; - } - .tiles-grid .row-xxl-4 { - grid-row: 4; - } - .tiles-grid .col-xxl-5 { - grid-column: 5; - } - .tiles-grid .row-xxl-5 { - grid-row: 5; - } - .tiles-grid .col-xxl-6 { - grid-column: 6; - } - .tiles-grid .row-xxl-6 { - grid-row: 6; - } - .tiles-grid .col-xxl-7 { - grid-column: 7; - } - .tiles-grid .row-xxl-7 { - grid-row: 7; - } - .tiles-grid .col-xxl-8 { - grid-column: 8; - } - .tiles-grid .row-xxl-8 { - grid-row: 8; - } - .tiles-grid .col-xxl-9 { - grid-column: 9; - } - .tiles-grid .row-xxl-9 { - grid-row: 9; - } - .tiles-grid .col-xxl-10 { - grid-column: 10; - } - .tiles-grid .row-xxl-10 { - grid-row: 10; - } - .tiles-grid .col-xxl-11 { - grid-column: 11; - } - .tiles-grid .row-xxl-11 { - grid-row: 11; - } - .tiles-grid .col-xxl-12 { - grid-column: 12; - } - .tiles-grid .row-xxl-12 { - grid-row: 12; - } - .tiles-grid.size-xxl-1 { - width: 8.33333333%; - } - .tiles-grid.size-xxl-2 { - width: 16.66666667%; - } - .tiles-grid.size-xxl-3 { - width: 25%; - } - .tiles-grid.size-xxl-4 { - width: 33.33333333%; - } - .tiles-grid.size-xxl-5 { - width: 41.66666667%; - } - .tiles-grid.size-xxl-6 { - width: 50%; - } - .tiles-grid.size-xxl-7 { - width: 58.33333333%; - } - .tiles-grid.size-xxl-8 { - width: 66.66666667%; - } - .tiles-grid.size-xxl-9 { - width: 75%; - } - .tiles-grid.size-xxl-10 { - width: 83.33333333%; - } - .tiles-grid.size-xxl-11 { - width: 91.66666667%; - } - .tiles-grid.size-xxl-12 { - width: 100%; - } -} -.tiles-group { - width: 100%; - float: left; - overflow: visible; -} -.tiles-group::before { - content: attr(data-group-title); - display: block; - position: absolute; - left: 0; - top: -36px; - height: 1.5em; - line-height: 1.5em; - z-index: 1; - color: inherit; -} -[class*=tile-].image-set { - background-size: contain; - background-position: center; -} -[class*=tile-].image-set .img { - width: 25%; - height: 50%; - display: block; - float: left; - border: 1px solid #1d1d1d; - background-size: cover; -} -[class*=tile-].image-set .img:nth-child(1) { - width: 50%; - height: 100%; -} -[class*=tile-] .slide { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - display: block; -} -[class*=tile-] [class*=slide-] { - width: 100%; - height: 100%; - position: absolute; - transition: all 0.3s ease-in-out; -} -[class*=tile-] .slide-front { - top: 0; - left: 0; -} -[class*=tile-].effect-hover-slide-up .slide-back, -[class*=tile-].effect-hover-zoom-up .slide-back { - top: 100%; - left: 0; -} -[class*=tile-].effect-hover-slide-up:hover .slide-front, -[class*=tile-].effect-hover-zoom-up:hover .slide-front { - transform: translateY(-100%); -} -[class*=tile-].effect-hover-slide-up:hover .slide-back, -[class*=tile-].effect-hover-zoom-up:hover .slide-back { - top: 0; -} -[class*=tile-].effect-hover-slide-down .slide-back, -[class*=tile-].effect-hover-zoom-down .slide-back { - top: 0; - left: 0; - transform: translateY(-100%); -} -[class*=tile-].effect-hover-slide-down:hover .slide-front, -[class*=tile-].effect-hover-zoom-down:hover .slide-front { - top: 100%; -} -[class*=tile-].effect-hover-slide-down:hover .slide-back, -[class*=tile-].effect-hover-zoom-down:hover .slide-back { - transform: translateY(0); -} -[class*=tile-].effect-hover-slide-left .slide-back, -[class*=tile-].effect-hover-zoom-left .slide-back { - top: 0; - left: 100%; -} -[class*=tile-].effect-hover-slide-left:hover .slide-front, -[class*=tile-].effect-hover-zoom-left:hover .slide-front { - transform: translateX(-100%); -} -[class*=tile-].effect-hover-slide-left:hover .slide-back, -[class*=tile-].effect-hover-zoom-left:hover .slide-back { - left: 0; -} -[class*=tile-].effect-hover-slide-right .slide-back, -[class*=tile-].effect-hover-zoom-right .slide-back { - top: 0; - left: 0; - transform: translateX(-100%); -} -[class*=tile-].effect-hover-slide-right:hover .slide-front, -[class*=tile-].effect-hover-zoom-right:hover .slide-front { - left: 100%; -} -[class*=tile-].effect-hover-slide-right:hover .slide-back, -[class*=tile-].effect-hover-zoom-right:hover .slide-back { - transform: translateX(0); -} -[class*=tile-].effect-hover-zoom-up:hover .slide-front, -[class*=tile-].effect-hover-zoom-down:hover .slide-front, -[class*=tile-].effect-hover-zoom-left:hover .slide-front, -[class*=tile-].effect-hover-zoom-right:hover .slide-front { - left: 0; - top: 0; - transform: scale(2); -} +/* Please use node.js "less" module to complie this less */ +/* 请使用node.js的“less”模块来编译本less */ +.tile-small, +.tile-medium, +.tile-wide, +.tile-large, +.tile-app { + display: block; + background-color: #1ba1e2; + color: #ffffff; + width: 150px; + height: 150px; + box-shadow: inset 0 0 1px #FFFFCC; + cursor: pointer; + position: relative; + overflow: hidden; + user-select: none; + max-width: none!important; +} +.tile-small { + width: 70px; + height: 70px; +} +.tile-medium { + width: 150px; + height: 150px; +} +.tile-wide { + width: 310px; + height: 150px; +} +.tile-large { + width: 310px; + height: 310px; +} +.tile-app { + width: 44px; + height: 44px; +} +.tile-small .icon, +.tile-medium .icon, +.tile-wide .icon, +.tile-large .icon, +.tile-app .icon { + max-width: 33%; + height: 33%; + position: absolute; + top: 50%; + left: 50%; + transform: translateY(-50%) translateX(-50%); + /*font-size: 50px;*/ + /*line-height: 50px;*/ + z-index: 2; +} +.tile-small .branding-bar, +.tile-medium .branding-bar, +.tile-wide .branding-bar, +.tile-large .branding-bar, +.tile-app .branding-bar { + height: 32px; + line-height: 32px; + position: absolute; + left: 0; + bottom: 0; + right: 0; + padding: 0 10px 5px; + font-size: 0.875rem; + font-weight: 500; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + z-index: 2; +} +.tile-small .badge-top, +.tile-medium .badge-top, +.tile-wide .badge-top, +.tile-large .badge-top, +.tile-app .badge-top, +.tile-small .badge-bottom, +.tile-medium .badge-bottom, +.tile-wide .badge-bottom, +.tile-large .badge-bottom, +.tile-app .badge-bottom { + position: absolute; + display: block; + padding: 4px 8px; + font-size: 12px; + text-align: center; + background-color: rgba(29, 29, 29, 0.1); + z-index: 2; +} +.tile-small .badge-bottom, +.tile-medium .badge-bottom, +.tile-wide .badge-bottom, +.tile-large .badge-bottom, +.tile-app .badge-bottom { + right: 10px; + bottom: 0; +} +.tile-small .badge-top, +.tile-medium .badge-top, +.tile-wide .badge-top, +.tile-large .badge-top, +.tile-app .badge-top { + top: 10px; + right: 10px; +} +.tile-small:hover, +.tile-medium:hover, +.tile-wide:hover, +.tile-large:hover, +.tile-app:hover { + outline: rgba(29, 29, 29, 0.1) solid 4px; +} +.tile-small { + /*.branding-bar { + display: none; + }*/ +} +.tile-small .icon { + max-width: 50%; + font-size: 35px; + line-height: 35px; +} +.tile-large .icon { + font-size: 102px; + line-height: 102px; +} +.tile-app .icon { + max-width: 75%; + height: 75%; +} +.tile-small.transform-right, +.tile-medium.transform-right, +.tile-wide.transform-right, +.tile-large.transform-right, +.tile-app.transform-right { + transform-origin: left 50%; + transform: perspective(500px) rotateY(0.138372rad) !important; +} +.tile-small.transform-right.tile-small, +.tile-medium.transform-right.tile-small, +.tile-wide.transform-right.tile-small, +.tile-large.transform-right.tile-small, +.tile-app.transform-right.tile-small { + transform: perspective(500px) rotateY(0.276744rad) !important; +} +.tile-small.transform-right.tile-wide, +.tile-medium.transform-right.tile-wide, +.tile-wide.transform-right.tile-wide, +.tile-large.transform-right.tile-wide, +.tile-app.transform-right.tile-wide { + transform: perspective(500px) rotateY(0.069186rad) !important; +} +.tile-small.transform-right.tile-large, +.tile-medium.transform-right.tile-large, +.tile-wide.transform-right.tile-large, +.tile-large.transform-right.tile-large, +.tile-app.transform-right.tile-large { + transform: perspective(500px) rotateY(0.046124rad) !important; +} +.tile-small.transform-left, +.tile-medium.transform-left, +.tile-wide.transform-left, +.tile-large.transform-left, +.tile-app.transform-left { + transform-origin: right 50%; + transform: perspective(500px) rotateY(-0.138372rad) !important; +} +.tile-small.transform-left.tile-small, +.tile-medium.transform-left.tile-small, +.tile-wide.transform-left.tile-small, +.tile-large.transform-left.tile-small, +.tile-app.transform-left.tile-small { + transform: perspective(500px) rotateY(-0.276744rad) !important; +} +.tile-small.transform-left.tile-wide, +.tile-medium.transform-left.tile-wide, +.tile-wide.transform-left.tile-wide, +.tile-large.transform-left.tile-wide, +.tile-app.transform-left.tile-wide { + transform: perspective(500px) rotateY(-0.069186rad) !important; +} +.tile-small.transform-left.tile-large, +.tile-medium.transform-left.tile-large, +.tile-wide.transform-left.tile-large, +.tile-large.transform-left.tile-large, +.tile-app.transform-left.tile-large { + transform: perspective(500px) rotateY(-0.046124rad) !important; +} +.tile-small.transform-top, +.tile-medium.transform-top, +.tile-wide.transform-top, +.tile-large.transform-top, +.tile-app.transform-top { + transform-origin: 50% bottom; + transform: perspective(500px) rotateX(0.138372rad) !important; +} +.tile-small.transform-top.tile-small, +.tile-medium.transform-top.tile-small, +.tile-wide.transform-top.tile-small, +.tile-large.transform-top.tile-small, +.tile-app.transform-top.tile-small { + transform: perspective(500px) rotateX(0.276744rad) !important; +} +.tile-small.transform-top.tile-wide, +.tile-medium.transform-top.tile-wide, +.tile-wide.transform-top.tile-wide, +.tile-large.transform-top.tile-wide, +.tile-app.transform-top.tile-wide { + transform: perspective(500px) rotateX(0.069186rad) !important; +} +.tile-small.transform-top.tile-large, +.tile-medium.transform-top.tile-large, +.tile-wide.transform-top.tile-large, +.tile-large.transform-top.tile-large, +.tile-app.transform-top.tile-large { + transform: perspective(500px) rotateX(0.046124rad) !important; +} +.tile-small.transform-bottom, +.tile-medium.transform-bottom, +.tile-wide.transform-bottom, +.tile-large.transform-bottom, +.tile-app.transform-bottom { + transform-origin: 50% top; + transform: perspective(500px) rotateX(-0.138372rad) !important; +} +.tile-small.transform-bottom.tile-small, +.tile-medium.transform-bottom.tile-small, +.tile-wide.transform-bottom.tile-small, +.tile-large.transform-bottom.tile-small, +.tile-app.transform-bottom.tile-small { + transform: perspective(500px) rotateX(-0.276744rad) !important; +} +.tile-small.transform-bottom.tile-wide, +.tile-medium.transform-bottom.tile-wide, +.tile-wide.transform-bottom.tile-wide, +.tile-large.transform-bottom.tile-wide, +.tile-app.transform-bottom.tile-wide { + transform: perspective(500px) rotateX(-0.069186rad) !important; +} +.tile-small.transform-bottom.tile-large, +.tile-medium.transform-bottom.tile-large, +.tile-wide.transform-bottom.tile-large, +.tile-large.transform-bottom.tile-large, +.tile-app.transform-bottom.tile-large { + transform: perspective(500px) rotateX(-0.046124rad) !important; +} +.tiles-grid { + position: relative; + display: grid; + grid-template-columns: repeat(auto-fit, 24%); + /*grid-template-rows: repeat(auto-fit, (@tileBaseSize - 1%));*/ + grid-gap: 5px; + /*.tile-small::before, + .tile-medium::before, + .tile-large::before { + content: ''; + padding-bottom: 100%; + display: block; + } + + .tile-wide::before { + content: ''; + padding-bottom: 50%; + display: block; + }*/ +} +.tiles-grid .tile-small { + height: 100%; + width: 100%; + grid-column: span 1; + grid-row: span 1; +} +.tiles-grid .tile-medium { + height: 100%; + width: 100%; + grid-column: span 2; + grid-row: span 2; +} +.tiles-grid .tile-wide { + height: 100%; + width: 100%; + grid-column: span 4; + grid-row: span 2; +} +.tiles-grid .tile-large { + height: 100%; + width: 100%; + grid-column: span 4; + grid-row: span 4; +} +.tiles-grid .tile-small.col-1 { + grid-column: 1 / span 1; +} +.tiles-grid .tile-medium.col-1 { + grid-column: 1 / span 2; +} +.tiles-grid .tile-wide.col-1 { + grid-column: 1 / span 4; +} +.tiles-grid .tile-large.col-1 { + grid-column: 1 / span 4; +} +.tiles-grid .tile-small.row-1 { + grid-row: 1 / span 1; +} +.tiles-grid .tile-medium.row-1 { + grid-row: 1 / span 2; +} +.tiles-grid .tile-wide.row-1 { + grid-row: 1 / span 4; +} +.tiles-grid .tile-large.row-1 { + grid-row: 1 / span 4; +} +.tiles-grid .tile-small.col-2 { + grid-column: 2 / span 1; +} +.tiles-grid .tile-medium.col-2 { + grid-column: 2 / span 2; +} +.tiles-grid .tile-wide.col-2 { + grid-column: 2 / span 4; +} +.tiles-grid .tile-large.col-2 { + grid-column: 2 / span 4; +} +.tiles-grid .tile-small.row-2 { + grid-row: 2 / span 1; +} +.tiles-grid .tile-medium.row-2 { + grid-row: 2 / span 2; +} +.tiles-grid .tile-wide.row-2 { + grid-row: 2 / span 4; +} +.tiles-grid .tile-large.row-2 { + grid-row: 2 / span 4; +} +.tiles-grid .tile-small.col-3 { + grid-column: 3 / span 1; +} +.tiles-grid .tile-medium.col-3 { + grid-column: 3 / span 2; +} +.tiles-grid .tile-wide.col-3 { + grid-column: 3 / span 4; +} +.tiles-grid .tile-large.col-3 { + grid-column: 3 / span 4; +} +.tiles-grid .tile-small.row-3 { + grid-row: 3 / span 1; +} +.tiles-grid .tile-medium.row-3 { + grid-row: 3 / span 2; +} +.tiles-grid .tile-wide.row-3 { + grid-row: 3 / span 4; +} +.tiles-grid .tile-large.row-3 { + grid-row: 3 / span 4; +} +.tiles-grid .tile-small.col-4 { + grid-column: 4 / span 1; +} +.tiles-grid .tile-medium.col-4 { + grid-column: 4 / span 2; +} +.tiles-grid .tile-wide.col-4 { + grid-column: 4 / span 4; +} +.tiles-grid .tile-large.col-4 { + grid-column: 4 / span 4; +} +.tiles-grid .tile-small.row-4 { + grid-row: 4 / span 1; +} +.tiles-grid .tile-medium.row-4 { + grid-row: 4 / span 2; +} +.tiles-grid .tile-wide.row-4 { + grid-row: 4 / span 4; +} +.tiles-grid .tile-large.row-4 { + grid-row: 4 / span 4; +} +.tiles-grid .tile-small.col-5 { + grid-column: 5 / span 1; +} +.tiles-grid .tile-medium.col-5 { + grid-column: 5 / span 2; +} +.tiles-grid .tile-wide.col-5 { + grid-column: 5 / span 4; +} +.tiles-grid .tile-large.col-5 { + grid-column: 5 / span 4; +} +.tiles-grid .tile-small.row-5 { + grid-row: 5 / span 1; +} +.tiles-grid .tile-medium.row-5 { + grid-row: 5 / span 2; +} +.tiles-grid .tile-wide.row-5 { + grid-row: 5 / span 4; +} +.tiles-grid .tile-large.row-5 { + grid-row: 5 / span 4; +} +.tiles-grid .tile-small.col-6 { + grid-column: 6 / span 1; +} +.tiles-grid .tile-medium.col-6 { + grid-column: 6 / span 2; +} +.tiles-grid .tile-wide.col-6 { + grid-column: 6 / span 4; +} +.tiles-grid .tile-large.col-6 { + grid-column: 6 / span 4; +} +.tiles-grid .tile-small.row-6 { + grid-row: 6 / span 1; +} +.tiles-grid .tile-medium.row-6 { + grid-row: 6 / span 2; +} +.tiles-grid .tile-wide.row-6 { + grid-row: 6 / span 4; +} +.tiles-grid .tile-large.row-6 { + grid-row: 6 / span 4; +} +.tiles-grid .tile-small.col-7 { + grid-column: 7 / span 1; +} +.tiles-grid .tile-medium.col-7 { + grid-column: 7 / span 2; +} +.tiles-grid .tile-wide.col-7 { + grid-column: 7 / span 4; +} +.tiles-grid .tile-large.col-7 { + grid-column: 7 / span 4; +} +.tiles-grid .tile-small.row-7 { + grid-row: 7 / span 1; +} +.tiles-grid .tile-medium.row-7 { + grid-row: 7 / span 2; +} +.tiles-grid .tile-wide.row-7 { + grid-row: 7 / span 4; +} +.tiles-grid .tile-large.row-7 { + grid-row: 7 / span 4; +} +.tiles-grid .tile-small.col-8 { + grid-column: 8 / span 1; +} +.tiles-grid .tile-medium.col-8 { + grid-column: 8 / span 2; +} +.tiles-grid .tile-wide.col-8 { + grid-column: 8 / span 4; +} +.tiles-grid .tile-large.col-8 { + grid-column: 8 / span 4; +} +.tiles-grid .tile-small.row-8 { + grid-row: 8 / span 1; +} +.tiles-grid .tile-medium.row-8 { + grid-row: 8 / span 2; +} +.tiles-grid .tile-wide.row-8 { + grid-row: 8 / span 4; +} +.tiles-grid .tile-large.row-8 { + grid-row: 8 / span 4; +} +.tiles-grid .tile-small.col-9 { + grid-column: 9 / span 1; +} +.tiles-grid .tile-medium.col-9 { + grid-column: 9 / span 2; +} +.tiles-grid .tile-wide.col-9 { + grid-column: 9 / span 4; +} +.tiles-grid .tile-large.col-9 { + grid-column: 9 / span 4; +} +.tiles-grid .tile-small.row-9 { + grid-row: 9 / span 1; +} +.tiles-grid .tile-medium.row-9 { + grid-row: 9 / span 2; +} +.tiles-grid .tile-wide.row-9 { + grid-row: 9 / span 4; +} +.tiles-grid .tile-large.row-9 { + grid-row: 9 / span 4; +} +.tiles-grid .tile-small.col-10 { + grid-column: 10 / span 1; +} +.tiles-grid .tile-medium.col-10 { + grid-column: 10 / span 2; +} +.tiles-grid .tile-wide.col-10 { + grid-column: 10 / span 4; +} +.tiles-grid .tile-large.col-10 { + grid-column: 10 / span 4; +} +.tiles-grid .tile-small.row-10 { + grid-row: 10 / span 1; +} +.tiles-grid .tile-medium.row-10 { + grid-row: 10 / span 2; +} +.tiles-grid .tile-wide.row-10 { + grid-row: 10 / span 4; +} +.tiles-grid .tile-large.row-10 { + grid-row: 10 / span 4; +} +.tiles-grid .tile-small.col-11 { + grid-column: 11 / span 1; +} +.tiles-grid .tile-medium.col-11 { + grid-column: 11 / span 2; +} +.tiles-grid .tile-wide.col-11 { + grid-column: 11 / span 4; +} +.tiles-grid .tile-large.col-11 { + grid-column: 11 / span 4; +} +.tiles-grid .tile-small.row-11 { + grid-row: 11 / span 1; +} +.tiles-grid .tile-medium.row-11 { + grid-row: 11 / span 2; +} +.tiles-grid .tile-wide.row-11 { + grid-row: 11 / span 4; +} +.tiles-grid .tile-large.row-11 { + grid-row: 11 / span 4; +} +.tiles-grid .tile-small.col-12 { + grid-column: 12 / span 1; +} +.tiles-grid .tile-medium.col-12 { + grid-column: 12 / span 2; +} +.tiles-grid .tile-wide.col-12 { + grid-column: 12 / span 4; +} +.tiles-grid .tile-large.col-12 { + grid-column: 12 / span 4; +} +.tiles-grid .tile-small.row-12 { + grid-row: 12 / span 1; +} +.tiles-grid .tile-medium.row-12 { + grid-row: 12 / span 2; +} +.tiles-grid .tile-wide.row-12 { + grid-row: 12 / span 4; +} +.tiles-grid .tile-large.row-12 { + grid-row: 12 / span 4; +} +.tiles-grid.size-half { + width: 50%; +} +.tiles-grid.size-1 { + width: 8.33333333%; +} +.tiles-grid.size-2 { + width: 16.66666667%; +} +.tiles-grid.size-3 { + width: 25%; +} +.tiles-grid.size-4 { + width: 33.33333333%; +} +.tiles-grid.size-5 { + width: 41.66666667%; +} +.tiles-grid.size-6 { + width: 50%; +} +.tiles-grid.size-7 { + width: 58.33333333%; +} +.tiles-grid.size-8 { + width: 66.66666667%; +} +.tiles-grid.size-9 { + width: 75%; +} +.tiles-grid.size-10 { + width: 83.33333333%; +} +.tiles-grid.size-11 { + width: 91.66666667%; +} +.tiles-grid.size-12 { + width: 100%; +} +@media screen and (min-width: 0) { + .tiles-grid .col-fs-1 { + grid-column: 1; + } + .tiles-grid .row-fs-1 { + grid-row: 1; + } + .tiles-grid .col-fs-2 { + grid-column: 2; + } + .tiles-grid .row-fs-2 { + grid-row: 2; + } + .tiles-grid .col-fs-3 { + grid-column: 3; + } + .tiles-grid .row-fs-3 { + grid-row: 3; + } + .tiles-grid .col-fs-4 { + grid-column: 4; + } + .tiles-grid .row-fs-4 { + grid-row: 4; + } + .tiles-grid .col-fs-5 { + grid-column: 5; + } + .tiles-grid .row-fs-5 { + grid-row: 5; + } + .tiles-grid .col-fs-6 { + grid-column: 6; + } + .tiles-grid .row-fs-6 { + grid-row: 6; + } + .tiles-grid .col-fs-7 { + grid-column: 7; + } + .tiles-grid .row-fs-7 { + grid-row: 7; + } + .tiles-grid .col-fs-8 { + grid-column: 8; + } + .tiles-grid .row-fs-8 { + grid-row: 8; + } + .tiles-grid .col-fs-9 { + grid-column: 9; + } + .tiles-grid .row-fs-9 { + grid-row: 9; + } + .tiles-grid .col-fs-10 { + grid-column: 10; + } + .tiles-grid .row-fs-10 { + grid-row: 10; + } + .tiles-grid .col-fs-11 { + grid-column: 11; + } + .tiles-grid .row-fs-11 { + grid-row: 11; + } + .tiles-grid .col-fs-12 { + grid-column: 12; + } + .tiles-grid .row-fs-12 { + grid-row: 12; + } + .tiles-grid.size-fs-1 { + width: 8.33333333%; + } + .tiles-grid.size-fs-2 { + width: 16.66666667%; + } + .tiles-grid.size-fs-3 { + width: 25%; + } + .tiles-grid.size-fs-4 { + width: 33.33333333%; + } + .tiles-grid.size-fs-5 { + width: 41.66666667%; + } + .tiles-grid.size-fs-6 { + width: 50%; + } + .tiles-grid.size-fs-7 { + width: 58.33333333%; + } + .tiles-grid.size-fs-8 { + width: 66.66666667%; + } + .tiles-grid.size-fs-9 { + width: 75%; + } + .tiles-grid.size-fs-10 { + width: 83.33333333%; + } + .tiles-grid.size-fs-11 { + width: 91.66666667%; + } + .tiles-grid.size-fs-12 { + width: 100%; + } +} +@media screen and (min-width: 576px) { + .tiles-grid .col-sm-1 { + grid-column: 1; + } + .tiles-grid .row-sm-1 { + grid-row: 1; + } + .tiles-grid .col-sm-2 { + grid-column: 2; + } + .tiles-grid .row-sm-2 { + grid-row: 2; + } + .tiles-grid .col-sm-3 { + grid-column: 3; + } + .tiles-grid .row-sm-3 { + grid-row: 3; + } + .tiles-grid .col-sm-4 { + grid-column: 4; + } + .tiles-grid .row-sm-4 { + grid-row: 4; + } + .tiles-grid .col-sm-5 { + grid-column: 5; + } + .tiles-grid .row-sm-5 { + grid-row: 5; + } + .tiles-grid .col-sm-6 { + grid-column: 6; + } + .tiles-grid .row-sm-6 { + grid-row: 6; + } + .tiles-grid .col-sm-7 { + grid-column: 7; + } + .tiles-grid .row-sm-7 { + grid-row: 7; + } + .tiles-grid .col-sm-8 { + grid-column: 8; + } + .tiles-grid .row-sm-8 { + grid-row: 8; + } + .tiles-grid .col-sm-9 { + grid-column: 9; + } + .tiles-grid .row-sm-9 { + grid-row: 9; + } + .tiles-grid .col-sm-10 { + grid-column: 10; + } + .tiles-grid .row-sm-10 { + grid-row: 10; + } + .tiles-grid .col-sm-11 { + grid-column: 11; + } + .tiles-grid .row-sm-11 { + grid-row: 11; + } + .tiles-grid .col-sm-12 { + grid-column: 12; + } + .tiles-grid .row-sm-12 { + grid-row: 12; + } + .tiles-grid.size-sm-1 { + width: 8.33333333%; + } + .tiles-grid.size-sm-2 { + width: 16.66666667%; + } + .tiles-grid.size-sm-3 { + width: 25%; + } + .tiles-grid.size-sm-4 { + width: 33.33333333%; + } + .tiles-grid.size-sm-5 { + width: 41.66666667%; + } + .tiles-grid.size-sm-6 { + width: 50%; + } + .tiles-grid.size-sm-7 { + width: 58.33333333%; + } + .tiles-grid.size-sm-8 { + width: 66.66666667%; + } + .tiles-grid.size-sm-9 { + width: 75%; + } + .tiles-grid.size-sm-10 { + width: 83.33333333%; + } + .tiles-grid.size-sm-11 { + width: 91.66666667%; + } + .tiles-grid.size-sm-12 { + width: 100%; + } +} +@media screen and (min-width: 768px) { + .tiles-grid .col-md-1 { + grid-column: 1; + } + .tiles-grid .row-md-1 { + grid-row: 1; + } + .tiles-grid .col-md-2 { + grid-column: 2; + } + .tiles-grid .row-md-2 { + grid-row: 2; + } + .tiles-grid .col-md-3 { + grid-column: 3; + } + .tiles-grid .row-md-3 { + grid-row: 3; + } + .tiles-grid .col-md-4 { + grid-column: 4; + } + .tiles-grid .row-md-4 { + grid-row: 4; + } + .tiles-grid .col-md-5 { + grid-column: 5; + } + .tiles-grid .row-md-5 { + grid-row: 5; + } + .tiles-grid .col-md-6 { + grid-column: 6; + } + .tiles-grid .row-md-6 { + grid-row: 6; + } + .tiles-grid .col-md-7 { + grid-column: 7; + } + .tiles-grid .row-md-7 { + grid-row: 7; + } + .tiles-grid .col-md-8 { + grid-column: 8; + } + .tiles-grid .row-md-8 { + grid-row: 8; + } + .tiles-grid .col-md-9 { + grid-column: 9; + } + .tiles-grid .row-md-9 { + grid-row: 9; + } + .tiles-grid .col-md-10 { + grid-column: 10; + } + .tiles-grid .row-md-10 { + grid-row: 10; + } + .tiles-grid .col-md-11 { + grid-column: 11; + } + .tiles-grid .row-md-11 { + grid-row: 11; + } + .tiles-grid .col-md-12 { + grid-column: 12; + } + .tiles-grid .row-md-12 { + grid-row: 12; + } + .tiles-grid.size-md-1 { + width: 8.33333333%; + } + .tiles-grid.size-md-2 { + width: 16.66666667%; + } + .tiles-grid.size-md-3 { + width: 25%; + } + .tiles-grid.size-md-4 { + width: 33.33333333%; + } + .tiles-grid.size-md-5 { + width: 41.66666667%; + } + .tiles-grid.size-md-6 { + width: 50%; + } + .tiles-grid.size-md-7 { + width: 58.33333333%; + } + .tiles-grid.size-md-8 { + width: 66.66666667%; + } + .tiles-grid.size-md-9 { + width: 75%; + } + .tiles-grid.size-md-10 { + width: 83.33333333%; + } + .tiles-grid.size-md-11 { + width: 91.66666667%; + } + .tiles-grid.size-md-12 { + width: 100%; + } +} +@media screen and (min-width: 992px) { + .tiles-grid .col-lg-1 { + grid-column: 1; + } + .tiles-grid .row-lg-1 { + grid-row: 1; + } + .tiles-grid .col-lg-2 { + grid-column: 2; + } + .tiles-grid .row-lg-2 { + grid-row: 2; + } + .tiles-grid .col-lg-3 { + grid-column: 3; + } + .tiles-grid .row-lg-3 { + grid-row: 3; + } + .tiles-grid .col-lg-4 { + grid-column: 4; + } + .tiles-grid .row-lg-4 { + grid-row: 4; + } + .tiles-grid .col-lg-5 { + grid-column: 5; + } + .tiles-grid .row-lg-5 { + grid-row: 5; + } + .tiles-grid .col-lg-6 { + grid-column: 6; + } + .tiles-grid .row-lg-6 { + grid-row: 6; + } + .tiles-grid .col-lg-7 { + grid-column: 7; + } + .tiles-grid .row-lg-7 { + grid-row: 7; + } + .tiles-grid .col-lg-8 { + grid-column: 8; + } + .tiles-grid .row-lg-8 { + grid-row: 8; + } + .tiles-grid .col-lg-9 { + grid-column: 9; + } + .tiles-grid .row-lg-9 { + grid-row: 9; + } + .tiles-grid .col-lg-10 { + grid-column: 10; + } + .tiles-grid .row-lg-10 { + grid-row: 10; + } + .tiles-grid .col-lg-11 { + grid-column: 11; + } + .tiles-grid .row-lg-11 { + grid-row: 11; + } + .tiles-grid .col-lg-12 { + grid-column: 12; + } + .tiles-grid .row-lg-12 { + grid-row: 12; + } + .tiles-grid.size-lg-1 { + width: 8.33333333%; + } + .tiles-grid.size-lg-2 { + width: 16.66666667%; + } + .tiles-grid.size-lg-3 { + width: 25%; + } + .tiles-grid.size-lg-4 { + width: 33.33333333%; + } + .tiles-grid.size-lg-5 { + width: 41.66666667%; + } + .tiles-grid.size-lg-6 { + width: 50%; + } + .tiles-grid.size-lg-7 { + width: 58.33333333%; + } + .tiles-grid.size-lg-8 { + width: 66.66666667%; + } + .tiles-grid.size-lg-9 { + width: 75%; + } + .tiles-grid.size-lg-10 { + width: 83.33333333%; + } + .tiles-grid.size-lg-11 { + width: 91.66666667%; + } + .tiles-grid.size-lg-12 { + width: 100%; + } +} +@media screen and (min-width: 1200px) { + .tiles-grid .col-xl-1 { + grid-column: 1; + } + .tiles-grid .row-xl-1 { + grid-row: 1; + } + .tiles-grid .col-xl-2 { + grid-column: 2; + } + .tiles-grid .row-xl-2 { + grid-row: 2; + } + .tiles-grid .col-xl-3 { + grid-column: 3; + } + .tiles-grid .row-xl-3 { + grid-row: 3; + } + .tiles-grid .col-xl-4 { + grid-column: 4; + } + .tiles-grid .row-xl-4 { + grid-row: 4; + } + .tiles-grid .col-xl-5 { + grid-column: 5; + } + .tiles-grid .row-xl-5 { + grid-row: 5; + } + .tiles-grid .col-xl-6 { + grid-column: 6; + } + .tiles-grid .row-xl-6 { + grid-row: 6; + } + .tiles-grid .col-xl-7 { + grid-column: 7; + } + .tiles-grid .row-xl-7 { + grid-row: 7; + } + .tiles-grid .col-xl-8 { + grid-column: 8; + } + .tiles-grid .row-xl-8 { + grid-row: 8; + } + .tiles-grid .col-xl-9 { + grid-column: 9; + } + .tiles-grid .row-xl-9 { + grid-row: 9; + } + .tiles-grid .col-xl-10 { + grid-column: 10; + } + .tiles-grid .row-xl-10 { + grid-row: 10; + } + .tiles-grid .col-xl-11 { + grid-column: 11; + } + .tiles-grid .row-xl-11 { + grid-row: 11; + } + .tiles-grid .col-xl-12 { + grid-column: 12; + } + .tiles-grid .row-xl-12 { + grid-row: 12; + } + .tiles-grid.size-xl-1 { + width: 8.33333333%; + } + .tiles-grid.size-xl-2 { + width: 16.66666667%; + } + .tiles-grid.size-xl-3 { + width: 25%; + } + .tiles-grid.size-xl-4 { + width: 33.33333333%; + } + .tiles-grid.size-xl-5 { + width: 41.66666667%; + } + .tiles-grid.size-xl-6 { + width: 50%; + } + .tiles-grid.size-xl-7 { + width: 58.33333333%; + } + .tiles-grid.size-xl-8 { + width: 66.66666667%; + } + .tiles-grid.size-xl-9 { + width: 75%; + } + .tiles-grid.size-xl-10 { + width: 83.33333333%; + } + .tiles-grid.size-xl-11 { + width: 91.66666667%; + } + .tiles-grid.size-xl-12 { + width: 100%; + } +} +@media screen and (min-width: 1452px) { + .tiles-grid .col-xxl-1 { + grid-column: 1; + } + .tiles-grid .row-xxl-1 { + grid-row: 1; + } + .tiles-grid .col-xxl-2 { + grid-column: 2; + } + .tiles-grid .row-xxl-2 { + grid-row: 2; + } + .tiles-grid .col-xxl-3 { + grid-column: 3; + } + .tiles-grid .row-xxl-3 { + grid-row: 3; + } + .tiles-grid .col-xxl-4 { + grid-column: 4; + } + .tiles-grid .row-xxl-4 { + grid-row: 4; + } + .tiles-grid .col-xxl-5 { + grid-column: 5; + } + .tiles-grid .row-xxl-5 { + grid-row: 5; + } + .tiles-grid .col-xxl-6 { + grid-column: 6; + } + .tiles-grid .row-xxl-6 { + grid-row: 6; + } + .tiles-grid .col-xxl-7 { + grid-column: 7; + } + .tiles-grid .row-xxl-7 { + grid-row: 7; + } + .tiles-grid .col-xxl-8 { + grid-column: 8; + } + .tiles-grid .row-xxl-8 { + grid-row: 8; + } + .tiles-grid .col-xxl-9 { + grid-column: 9; + } + .tiles-grid .row-xxl-9 { + grid-row: 9; + } + .tiles-grid .col-xxl-10 { + grid-column: 10; + } + .tiles-grid .row-xxl-10 { + grid-row: 10; + } + .tiles-grid .col-xxl-11 { + grid-column: 11; + } + .tiles-grid .row-xxl-11 { + grid-row: 11; + } + .tiles-grid .col-xxl-12 { + grid-column: 12; + } + .tiles-grid .row-xxl-12 { + grid-row: 12; + } + .tiles-grid.size-xxl-1 { + width: 8.33333333%; + } + .tiles-grid.size-xxl-2 { + width: 16.66666667%; + } + .tiles-grid.size-xxl-3 { + width: 25%; + } + .tiles-grid.size-xxl-4 { + width: 33.33333333%; + } + .tiles-grid.size-xxl-5 { + width: 41.66666667%; + } + .tiles-grid.size-xxl-6 { + width: 50%; + } + .tiles-grid.size-xxl-7 { + width: 58.33333333%; + } + .tiles-grid.size-xxl-8 { + width: 66.66666667%; + } + .tiles-grid.size-xxl-9 { + width: 75%; + } + .tiles-grid.size-xxl-10 { + width: 83.33333333%; + } + .tiles-grid.size-xxl-11 { + width: 91.66666667%; + } + .tiles-grid.size-xxl-12 { + width: 100%; + } +} +.tiles-group { + width: 100%; + float: left; + overflow: visible; +} +.tiles-group::before { + content: attr(data-group-title); + display: block; + position: absolute; + left: 0; + top: -36px; + height: 1.5em; + line-height: 1.5em; + z-index: 1; + color: inherit; +} +[class*=tile-].image-set { + background-size: contain; + background-position: center; +} +[class*=tile-].image-set .img { + width: 25%; + height: 50%; + display: block; + float: left; + border: 1px solid #1d1d1d; + background-size: cover; +} +[class*=tile-].image-set .img:nth-child(1) { + width: 50%; + height: 100%; +} +[class*=tile-] .slide { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + display: block; +} +[class*=tile-] [class*=slide-] { + width: 100%; + height: 100%; + position: absolute; + transition: all 0.3s ease-in-out; +} +[class*=tile-] .slide-front { + top: 0; + left: 0; +} +[class*=tile-].effect-hover-slide-up .slide-back, +[class*=tile-].effect-hover-zoom-up .slide-back { + top: 100%; + left: 0; +} +[class*=tile-].effect-hover-slide-up:hover .slide-front, +[class*=tile-].effect-hover-zoom-up:hover .slide-front { + transform: translateY(-100%); +} +[class*=tile-].effect-hover-slide-up:hover .slide-back, +[class*=tile-].effect-hover-zoom-up:hover .slide-back { + top: 0; +} +[class*=tile-].effect-hover-slide-down .slide-back, +[class*=tile-].effect-hover-zoom-down .slide-back { + top: 0; + left: 0; + transform: translateY(-100%); +} +[class*=tile-].effect-hover-slide-down:hover .slide-front, +[class*=tile-].effect-hover-zoom-down:hover .slide-front { + top: 100%; +} +[class*=tile-].effect-hover-slide-down:hover .slide-back, +[class*=tile-].effect-hover-zoom-down:hover .slide-back { + transform: translateY(0); +} +[class*=tile-].effect-hover-slide-left .slide-back, +[class*=tile-].effect-hover-zoom-left .slide-back { + top: 0; + left: 100%; +} +[class*=tile-].effect-hover-slide-left:hover .slide-front, +[class*=tile-].effect-hover-zoom-left:hover .slide-front { + transform: translateX(-100%); +} +[class*=tile-].effect-hover-slide-left:hover .slide-back, +[class*=tile-].effect-hover-zoom-left:hover .slide-back { + left: 0; +} +[class*=tile-].effect-hover-slide-right .slide-back, +[class*=tile-].effect-hover-zoom-right .slide-back { + top: 0; + left: 0; + transform: translateX(-100%); +} +[class*=tile-].effect-hover-slide-right:hover .slide-front, +[class*=tile-].effect-hover-zoom-right:hover .slide-front { + left: 100%; +} +[class*=tile-].effect-hover-slide-right:hover .slide-back, +[class*=tile-].effect-hover-zoom-right:hover .slide-back { + transform: translateX(0); +} +[class*=tile-].effect-hover-zoom-up:hover .slide-front, +[class*=tile-].effect-hover-zoom-down:hover .slide-front, +[class*=tile-].effect-hover-zoom-left:hover .slide-front, +[class*=tile-].effect-hover-zoom-right:hover .slide-front { + left: 0; + top: 0; + transform: scale(2); +} diff --git a/modules/tile/tile.js b/modules/tile/tile.js index dd0fa2b..8a52a73 100644 --- a/modules/tile/tile.js +++ b/modules/tile/tile.js @@ -1,845 +1,853 @@ -/* global Colors */ -var TileDefaultConfig = { - tileDeferred: 0, - size: "medium", - cover: "", - coverPosition: "center", - effect: "", - effectInterval: 3000, - effectDuration: 500, - target: null, - canTransform: true, - onClick: () => {}, - onTileCreate: () => {}, -}; - -var METRO_THROWS = true; -var GRID_GAP = 5; - -if(typeof isekai == 'undefined'){ - var isekai = {}; -} - -isekai.tile = {}; - -isekai.tile.setup = function (options) { - TileDefaultConfig = jQuery.extend({}, TileDefaultConfig, options); -}; - -isekai.tile.init = function () { - -}; - -(function($){ - function rand(min, max) { // min and max included - return Math.floor(Math.random() * (max - min + 1) + min) - } - - var Utils = { - isValue: function(val){ - return val !== undefined && val !== null && val !== ""; - }, - - isUrl: function (val) { - /* eslint-disable-next-line */ - return /^(\.\/|\.\.\/|ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@\-\/]))?/.test(val); - }, - - isTag: function(val){ - /* eslint-disable-next-line */ - return /^<\/?[\w\s="/.':;#-\/\?]+>/gi.test(val); - }, - - isType: function(o, t){ - if (!Utils.isValue(o)) { - return false; - } - - if (typeof o === t) { - return o; - } - - if (Utils.isTag(o) || Utils.isUrl(o)) { - return false; - } - - if (typeof window[o] === t) { - return window[o]; - } - - if (typeof o === 'string' && o.indexOf(".") === -1) { - return false; - } - - if (typeof o === 'string' && o.indexOf("/") !== -1) { - return false; - } - - if (typeof o === 'string' && o.indexOf(" ") !== -1) { - return false; - } - - if (typeof o === 'string' && o.indexOf("(") !== -1) { - return false; - } - - if (typeof o === 'string' && o.indexOf("[") !== -1) { - return false; - } - - if (typeof o === "number" && t.toLowerCase() !== "number") { - return false; - } - - var ns = o.split("."); - var i, context = window; - - for(i = 0; i < ns.length; i++) { - context = context[ns[i]]; - } - - return typeof context === t ? context : false; - }, - - isFunc: function(f){ - return Utils.isType(f, 'function'); - }, - - /** - * - * @param {TouchEvent|Event|MouseEvent} e - * @returns {{x: (*), y: (*)}} - */ - pageXY: function(e){ - return { - x: e.changedTouches ? e.changedTouches[0].pageX : e.pageX, - y: e.changedTouches ? e.changedTouches[0].pageY : e.pageY - }; - }, - - isRightMouse: function(e){ - return "which" in e ? e.which === 3 : "button" in e ? e.button === 2 : undefined; - }, - - func: function(f){ - /* jshint -W054 */ - return new Function("a", f); - }, - - exec: function(f, args, context){ - var result; - if (f === undefined || f === null) {return false;} - var func = Utils.isFunc(f); - - if (func === false) { - func = Utils.func(f); - } - - try { - result = func.apply(context, args); - } catch (err) { - result = null; - if (METRO_THROWS === true) { - throw err; - } - } - return result; - }, - }; - - var FrameAnimation = { - duration: 100, - func: "linear", - - switch: function(current, next){ - current.hide(); - next.css({top: 0, left: 0}).show(); - }, - - slideUp: function(current, next, duration, func){ - var h = current.parent().outerHeight(true); - if (duration === undefined) {duration = this.duration;} - if (func === undefined) {func = this.func;} - - current - .css("z-index", 1) - .animate({ - draw: { - top: -h, - opacity: 0 - }, - dur: duration, - ease: func - }); - - next - .css({ - top: h, - left: 0, - zIndex: 2 - }) - .animate({ - draw: { - top: 0, - opacity: 1 - }, - dur: duration, - ease: func - }); - }, - - slideDown: function(current, next, duration, func){ - var h = current.parent().outerHeight(true); - if (duration === undefined) {duration = this.duration;} - if (func === undefined) {func = this.func;} - - current - .css("z-index", 1) - .animate({ - draw: { - top: h, - opacity: 0 - }, - dur: duration, - ease: func - }); - - next - .css({ - left: 0, - top: -h, - zIndex: 2 - }) - .animate({ - draw: { - top: 0, - opacity: 1 - }, - dur: duration, - ease: func - }); - }, - - slideLeft: function(current, next, duration, func){ - var w = current.parent().outerWidth(true); - if (duration === undefined) {duration = this.duration;} - if (func === undefined) {func = this.func;} - current - .css("z-index", 1) - .animate({ - draw: { - left: -w, - opacity: 0 - }, - dur: duration, - ease: func - }); - - next - .css({ - left: w, - zIndex: 2 - }) - .animate({ - draw: { - left: 0, - opacity: 1 - }, - dur: duration, - ease: func - }); - }, - - slideRight: function(current, next, duration, func){ - var w = current.parent().outerWidth(true); - if (duration === undefined) {duration = this.duration;} - if (func === undefined) {func = this.func;} - - current - .css("z-index", 1) - .animate({ - draw: { - left: w, - opacity: 0 - }, - dur: duration, - ease: func - }); - - next - .css({ - left: -w, - zIndex: 2 - }) - .animate({ - draw: { - left: 0, - opacity: 1 - }, - dur: duration, - ease: func - }); - }, - - fade: function(current, next, duration){ - if (duration === undefined) {duration = this.duration;} - - current - .animate({ - draw: { - opacity: 0 - }, - dur: duration - }); - - next - .css({ - top: 0, - left: 0, - opacity: 0 - }) - .animate({ - draw: { - opacity: 1 - }, - dur: duration - }); - } - }; - - var Colors = { - PALETTES: { - ALL: "colorList", - METRO: "colorListMetro", - STANDARD: "colorListStandard" - }, - - colorListMetro: { - lime: '#a4c400', - green: '#60a917', - emerald: '#008a00', - blue: '#00AFF0', - teal: '#00aba9', - cyan: '#1ba1e2', - cobalt: '#0050ef', - indigo: '#6a00ff', - violet: '#aa00ff', - pink: '#dc4fad', - magenta: '#d80073', - crimson: '#a20025', - red: '#CE352C', - orange: '#fa6800', - amber: '#f0a30a', - yellow: '#fff000', - brown: '#825a2c', - olive: '#6d8764', - steel: '#647687', - mauve: '#76608a', - taupe: '#87794e' - }, - - colorListStandard: { - aliceBlue: "#f0f8ff", - antiqueWhite: "#faebd7", - aqua: "#00ffff", - aquamarine: "#7fffd4", - azure: "#f0ffff", - beige: "#f5f5dc", - bisque: "#ffe4c4", - black: "#000000", - blanchedAlmond: "#ffebcd", - blue: "#0000ff", - blueViolet: "#8a2be2", - brown: "#a52a2a", - burlyWood: "#deb887", - cadetBlue: "#5f9ea0", - chartreuse: "#7fff00", - chocolate: "#d2691e", - coral: "#ff7f50", - cornflowerBlue: "#6495ed", - cornsilk: "#fff8dc", - crimson: "#dc143c", - cyan: "#00ffff", - darkBlue: "#00008b", - darkCyan: "#008b8b", - darkGoldenRod: "#b8860b", - darkGray: "#a9a9a9", - darkGreen: "#006400", - darkKhaki: "#bdb76b", - darkMagenta: "#8b008b", - darkOliveGreen: "#556b2f", - darkOrange: "#ff8c00", - darkOrchid: "#9932cc", - darkRed: "#8b0000", - darkSalmon: "#e9967a", - darkSeaGreen: "#8fbc8f", - darkSlateBlue: "#483d8b", - darkSlateGray: "#2f4f4f", - darkTurquoise: "#00ced1", - darkViolet: "#9400d3", - deepPink: "#ff1493", - deepSkyBlue: "#00bfff", - dimGray: "#696969", - dodgerBlue: "#1e90ff", - fireBrick: "#b22222", - floralWhite: "#fffaf0", - forestGreen: "#228b22", - fuchsia: "#ff00ff", - gainsboro: "#DCDCDC", - ghostWhite: "#F8F8FF", - gold: "#ffd700", - goldenRod: "#daa520", - gray: "#808080", - green: "#008000", - greenYellow: "#adff2f", - honeyDew: "#f0fff0", - hotPink: "#ff69b4", - indianRed: "#cd5c5c", - indigo: "#4b0082", - ivory: "#fffff0", - khaki: "#f0e68c", - lavender: "#e6e6fa", - lavenderBlush: "#fff0f5", - lawnGreen: "#7cfc00", - lemonChiffon: "#fffacd", - lightBlue: "#add8e6", - lightCoral: "#f08080", - lightCyan: "#e0ffff", - lightGoldenRodYellow: "#fafad2", - lightGray: "#d3d3d3", - lightGreen: "#90ee90", - lightPink: "#ffb6c1", - lightSalmon: "#ffa07a", - lightSeaGreen: "#20b2aa", - lightSkyBlue: "#87cefa", - lightSlateGray: "#778899", - lightSteelBlue: "#b0c4de", - lightYellow: "#ffffe0", - lime: "#00ff00", - limeGreen: "#32dc32", - linen: "#faf0e6", - magenta: "#ff00ff", - maroon: "#800000", - mediumAquaMarine: "#66cdaa", - mediumBlue: "#0000cd", - mediumOrchid: "#ba55d3", - mediumPurple: "#9370db", - mediumSeaGreen: "#3cb371", - mediumSlateBlue: "#7b68ee", - mediumSpringGreen: "#00fa9a", - mediumTurquoise: "#48d1cc", - mediumVioletRed: "#c71585", - midnightBlue: "#191970", - mintCream: "#f5fffa", - mistyRose: "#ffe4e1", - moccasin: "#ffe4b5", - navajoWhite: "#ffdead", - navy: "#000080", - oldLace: "#fdd5e6", - olive: "#808000", - oliveDrab: "#6b8e23", - orange: "#ffa500", - orangeRed: "#ff4500", - orchid: "#da70d6", - paleGoldenRod: "#eee8aa", - paleGreen: "#98fb98", - paleTurquoise: "#afeeee", - paleVioletRed: "#db7093", - papayaWhip: "#ffefd5", - peachPuff: "#ffdab9", - peru: "#cd853f", - pink: "#ffc0cb", - plum: "#dda0dd", - powderBlue: "#b0e0e6", - purple: "#800080", - rebeccaPurple: "#663399", - red: "#ff0000", - rosyBrown: "#bc8f8f", - royalBlue: "#4169e1", - saddleBrown: "#8b4513", - salmon: "#fa8072", - sandyBrown: "#f4a460", - seaGreen: "#2e8b57", - seaShell: "#fff5ee", - sienna: "#a0522d", - silver: "#c0c0c0", - slyBlue: "#87ceeb", - slateBlue: "#6a5acd", - slateGray: "#708090", - snow: "#fffafa", - springGreen: "#00ff7f", - steelBlue: "#4682b4", - tan: "#d2b48c", - teal: "#008080", - thistle: "#d8bfd8", - tomato: "#ff6347", - turquoise: "#40e0d0", - violet: "#ee82ee", - wheat: "#f5deb3", - white: "#ffffff", - whiteSmoke: "#f5f5f5", - yellow: "#ffff00", - yellowGreen: "#9acd32" - }, - - colorList: {}, - - colors: function(palette){ - var c = []; - palette = palette || this.PALETTES.ALL; - $.each(this[palette], function(){ - c.push(this); - }); - return c; - }, - } - - function Tile(options, element){ - this.init = function(options, element) { - this.effectInterval = false; - this.images = []; - this.slides = []; - this.currentSlide = -1; - this.options = $.extend({}, TileDefaultConfig, options); - this.element = element; - this.hasIcon = false; - this.hasBranding = false; - - this._fixSizeCallback = this.resize.bind(this); - - this._create(); - }; - - this._create = function(){ - this._createTile(); - this._createEvents(); - - this.element.trigger("tilecreate"); - }; - - this._createTile = function(){ - function switchImage(el, img_src, i){ - $.setTimeout(function(){ - el.fadeOut(500, function(){ - el.css("background-image", "url(" + img_src + ")"); - el.fadeIn(); - }); - }, i * 300); - } - - var that = this, element = this.element, o = this.options; - var slides = element.find(".slide"); - var slides2 = element.find(".slide-front, .slide-back"); - - element.addClass("tile-" + o.size); - - if(element.find('.icon').length > 0){ - this.hasIcon = true; - } - - if(element.find('.branding-bar')){ - this.hasBranding = true; - } - - if (o.effect.indexOf("hover-") > -1) { - element.addClass("effect-" + o.effect); - $.each(slides2, function(){ - var slide = $(this); - - if (slide.data("cover") !== undefined) { - that._setCover(slide, slide.data("cover"), slide.data("cover-position")); - } - }) - } - - if (o.effect.indexOf("animate-") > -1 && slides.length > 1) { - $.each(slides, function(i){ - var slide = $(this); - - that.slides.push(this); - - if (slide.data("cover") !== undefined) { - this._setCover(slide, slide.data("cover"), slide.data("cover-position")); - } - - if (i > 0) { - if (["animate-slide-up", "animate-slide-down"].indexOf(o.effect) > -1) slide.css("top", "100%"); - if (["animate-slide-left", "animate-slide-right"].indexOf(o.effect) > -1) slide.css("left", "100%"); - if (["animate-fade"].indexOf(o.effect) > -1) slide.css("opacity", 0); - } - }); - - this.currentSlide = 0; - - this._runEffects(); - } - - if (o.cover !== "") { - this._setCover(element, o.cover); - } - - if (o.effect === "image-set") { - element.addClass("image-set"); - - $.each(element.children("img"), function(){ - that.images.push(this); - $(this).remove(); - }); - - var temp = this.images.slice(); - - for(var i = 0; i < 5; i++) { - var rnd_index = rand(0, temp.length - 1); - var div = $("<div>").addClass("img -js-img-"+i).css("background-image", "url("+temp[rnd_index].src+")"); - element.prepend(div); - temp.splice(rnd_index, 1); - } - - var a = [0, 1, 4, 3, 2]; - - $.setInterval(function(){ - var temp = that.images.slice(); - var colors = Colors.colors(Colors.PALETTES.ALL), bg; - bg = colors[rand(0, colors.length - 1)]; - - element.css("background-color", bg); - - for(var i = 0; i < a.length; i++) { - var rnd_index = rand(0, temp.length - 1); - var div = element.find(".-js-img-"+a[i]); - switchImage(div, temp[rnd_index].src, i); - temp.splice(rnd_index, 1); - } - - a = a.reverse(); - }, 5000); - } - }; - - this._runEffects = function(){ - var o = this.options; - - if (this.effectInterval === false) this.effectInterval = $.setInterval(function(){ - var current, next; - - current = $(this.slides[this.currentSlide]); - - this.currentSlide++; - if (this.currentSlide === this.slides.length) { - this.currentSlide = 0; - } - - next = this.slides[this.currentSlide]; - - if (o.effect === "animate-slide-up") FrameAnimation.slideUp($(current), $(next), o.effectDuration); - if (o.effect === "animate-slide-down") FrameAnimation.slideDown($(current), $(next), o.effectDuration); - if (o.effect === "animate-slide-left") FrameAnimation.slideLeft($(current), $(next), o.effectDuration); - if (o.effect === "animate-slide-right") FrameAnimation.slideRight($(current), $(next), o.effectDuration); - if (o.effect === "animate-fade") FrameAnimation.fade($(current), $(next), o.effectDuration); - - }, o.effectInterval); - }; - - this._stopEffects = function(){ - $.clearInterval(this.effectInterval); - this.effectInterval = false; - }; - - this.resize = function(){ - var ratio = 1; - var padding = 0; - var grid = this.element.parent('.tiles-grid'); - var gridWidth = 0; - if(grid.length > 0){ - gridWidth = grid.width(); - } - - if(this.options.size == 'wide'){ - ratio = 0.5; - } - - //修正长宽比 - var height = this.element.width() * ratio - padding; - //this.element.height(height); - - if(this.hasIcon){ - var fontSize = height * 0.33; - var iconDom = this.element.find('.icon'); - iconDom.css('font-size', fontSize + 'px'); - - if(this.hasBranding){ //计算与标签的重叠 - var iconBottom = (height + fontSize) / 2; - - var brandingTop = height - this.element.find('.branding-bar').outerHeight(); - var overlap = iconBottom - brandingTop + (height * 0.1); - if(overlap > 0){ - iconDom.css('padding-bottom', overlap + 'px'); - } - } - } - } - - this._setCover = function(to, src, pos){ - if (!Utils.isValue(pos)) { - pos = this.options.coverPosition; - } - to.css({ - backgroundImage: "url("+src+")", - backgroundSize: "cover", - backgroundRepeat: "no-repeat", - backgroundPosition: pos - }); - }; - - this._createEvents = function(){ - var element = this.element, o = this.options; - - element.on('mousedown touchstart', function(e){ - var tile = $(this); - var dim = {w: element.width(), h: element.height()}; - var X = Utils.pageXY(e).x - tile.offset().left, - Y = Utils.pageXY(e).y - tile.offset().top; - var side; - - if (Utils.isRightMouse(e) === false) { - - if (X < dim.w * 1 / 3 && (Y < dim.h * 1 / 2 || Y > dim.h * 1 / 2)) { - side = 'left'; - } else if (X > dim.w * 2 / 3 && (Y < dim.h * 1 / 2 || Y > dim.h * 1 / 2)) { - side = 'right'; - } else if (X > dim.w * 1 / 3 && X < dim.w * 2 / 3 && Y > dim.h / 2) { - side = 'bottom'; - } else { - side = "top"; - } - - if (o.canTransform === true) tile.addClass("transform-" + side); - - if (o.target !== null) { - setTimeout(function(){ - document.location.href = o.target; - }, 100); - } - - Utils.exec(o.onClick, [side], element[0]); - element.trigger("click", { - side: side - }); - } - }); - - element.on('mouseup touchend mouseleave', function(){ - $(this) - .removeClass("transform-left") - .removeClass("transform-right") - .removeClass("transform-top") - .removeClass("transform-bottom"); - }); - - $(window).on('resize', this._fixSizeCallback); - $(this._fixSizeCallback); - }; - - this.destroy = function(){ - var element = this.element; - - element.off('mousedown touchstart'); - - element.off('mouseup touchend mouseleave'); - - $(window).off('resize', this._fixSizeCallback); - - this._stopEffects(); - }; - - this.init(options, element); - }; - - function getElementOptions(element){ - var options = {}; - $.each(element[0].attributes, function (index, attribute){ - if(attribute.name.startsWith('data-')){ - options[attribute.name.substr(5)] = attribute.value; - } - }); - - return options; - } - - $.fn.extend({ - tile: function(action, ...args){ - var result; - this.each(function(){ - var element = $(this); - if(element.attr('data-role') !== 'tile'){ - throw new Error('This element isn\'t a tile element'); - } - - var tileObj = element.data('tile'); - if(action == 'init'){ - if(tileObj){ - throw new Error('Tile already inited.'); - } - - var options = args[0] || {}; - options = $.extend({}, options, getElementOptions(element)); - tileObj = new Tile(options, element); - element.data('tile', tileObj); - } else { - if(!tileObj){ - throw new Error('Tile not inited.'); - } - - if(!tileObj[action]){ - throw new Error('Method: ' + action + ' not exists.'); - } - - result = tileObj[action].apply(tileObj, ...args); - } - }); - - if(result == undefined){ - return this; - } else { - return result; - } - } - }); - - function resizeGrid(){ - $('.tiles-grid').each(function(){ - var dom = $(this); - var width = dom.width(); - var gridSize = width / 4 - GRID_GAP; - dom.css({ - gridTemplateColumns: 'repeat(4, ' + gridSize + 'px)', - gridAutoRows: gridSize + 'px', - }); - }); - } - - $('*[data-role="tile"]').tile('init'); - $(window).resize(resizeGrid); - $(resizeGrid); - - function onCollapseDivChange(mutationsList){ - mutationsList.forEach((item) => { - if(item.type == 'attributes' && item.attributeName == 'class'){ - $('*[data-role="tile"]').tile('resize'); - resizeGrid(); - } - }); - } - - if($('body').hasClass('skin-minerva')){ - $('#mw-content-text .collapsible-block').each(function(){ - var dom = $(this); - if(dom.find('*[data-role="tile"]').length > 0){ //存在tile,监听这个dom - var observer = new MutationObserver(onCollapseDivChange); - observer.observe(dom[0], { - attributes: true, - }); - } - }); - } +/* global Colors */ +var TileDefaultConfig = { + tileDeferred: 0, + size: "medium", + cover: "", + coverPosition: "center", + effect: "", + effectInterval: 3000, + effectDuration: 500, + target: null, + canTransform: true, + onClick: () => {}, + onTileCreate: () => {}, +}; + +var METRO_THROWS = true; +var GRID_GAP = 5; + +if(typeof isekai == 'undefined'){ + var isekai = {}; +} + +isekai.tile = {}; + +isekai.tile.setup = function (options) { + TileDefaultConfig = jQuery.extend({}, TileDefaultConfig, options); +}; + +isekai.tile.init = function () { + +}; + +(function($){ + function rand(min, max) { // min and max included + return Math.floor(Math.random() * (max - min + 1) + min) + } + + var Utils = { + isValue: function(val){ + return val !== undefined && val !== null && val !== ""; + }, + + isUrl: function (val) { + /* eslint-disable-next-line */ + return /^(\.\/|\.\.\/|ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@\-\/]))?/.test(val); + }, + + isTag: function(val){ + /* eslint-disable-next-line */ + return /^<\/?[\w\s="/.':;#-\/\?]+>/gi.test(val); + }, + + isType: function(o, t){ + if (!Utils.isValue(o)) { + return false; + } + + if (typeof o === t) { + return o; + } + + if (Utils.isTag(o) || Utils.isUrl(o)) { + return false; + } + + if (typeof window[o] === t) { + return window[o]; + } + + if (typeof o === 'string' && o.indexOf(".") === -1) { + return false; + } + + if (typeof o === 'string' && o.indexOf("/") !== -1) { + return false; + } + + if (typeof o === 'string' && o.indexOf(" ") !== -1) { + return false; + } + + if (typeof o === 'string' && o.indexOf("(") !== -1) { + return false; + } + + if (typeof o === 'string' && o.indexOf("[") !== -1) { + return false; + } + + if (typeof o === "number" && t.toLowerCase() !== "number") { + return false; + } + + var ns = o.split("."); + var i, context = window; + + for(i = 0; i < ns.length; i++) { + context = context[ns[i]]; + } + + return typeof context === t ? context : false; + }, + + isFunc: function(f){ + return Utils.isType(f, 'function'); + }, + + /** + * + * @param {TouchEvent|Event|MouseEvent} e + * @returns {{x: (*), y: (*)}} + */ + pageXY: function(e){ + return { + x: e.changedTouches ? e.changedTouches[0].pageX : e.pageX, + y: e.changedTouches ? e.changedTouches[0].pageY : e.pageY + }; + }, + + isRightMouse: function(e){ + return "which" in e ? e.which === 3 : "button" in e ? e.button === 2 : undefined; + }, + + func: function(f){ + /* jshint -W054 */ + return new Function("a", f); + }, + + exec: function(f, args, context){ + var result; + if (f === undefined || f === null) {return false;} + var func = Utils.isFunc(f); + + if (func === false) { + func = Utils.func(f); + } + + try { + result = func.apply(context, args); + } catch (err) { + result = null; + if (METRO_THROWS === true) { + throw err; + } + } + return result; + }, + }; + + var FrameAnimation = { + duration: 100, + func: "linear", + + switch: function(current, next){ + current.hide(); + next.css({top: 0, left: 0}).show(); + }, + + slideUp: function(current, next, duration, func){ + var h = current.parent().outerHeight(true); + if (duration === undefined) {duration = this.duration;} + if (func === undefined) {func = this.func;} + + current + .css("z-index", 1) + .animate({ + draw: { + top: -h, + opacity: 0 + }, + dur: duration, + ease: func + }); + + next + .css({ + top: h, + left: 0, + zIndex: 2 + }) + .animate({ + draw: { + top: 0, + opacity: 1 + }, + dur: duration, + ease: func + }); + }, + + slideDown: function(current, next, duration, func){ + var h = current.parent().outerHeight(true); + if (duration === undefined) {duration = this.duration;} + if (func === undefined) {func = this.func;} + + current + .css("z-index", 1) + .animate({ + draw: { + top: h, + opacity: 0 + }, + dur: duration, + ease: func + }); + + next + .css({ + left: 0, + top: -h, + zIndex: 2 + }) + .animate({ + draw: { + top: 0, + opacity: 1 + }, + dur: duration, + ease: func + }); + }, + + slideLeft: function(current, next, duration, func){ + var w = current.parent().outerWidth(true); + if (duration === undefined) {duration = this.duration;} + if (func === undefined) {func = this.func;} + current + .css("z-index", 1) + .animate({ + draw: { + left: -w, + opacity: 0 + }, + dur: duration, + ease: func + }); + + next + .css({ + left: w, + zIndex: 2 + }) + .animate({ + draw: { + left: 0, + opacity: 1 + }, + dur: duration, + ease: func + }); + }, + + slideRight: function(current, next, duration, func){ + var w = current.parent().outerWidth(true); + if (duration === undefined) {duration = this.duration;} + if (func === undefined) {func = this.func;} + + current + .css("z-index", 1) + .animate({ + draw: { + left: w, + opacity: 0 + }, + dur: duration, + ease: func + }); + + next + .css({ + left: -w, + zIndex: 2 + }) + .animate({ + draw: { + left: 0, + opacity: 1 + }, + dur: duration, + ease: func + }); + }, + + fade: function(current, next, duration){ + if (duration === undefined) {duration = this.duration;} + + current + .animate({ + draw: { + opacity: 0 + }, + dur: duration + }); + + next + .css({ + top: 0, + left: 0, + opacity: 0 + }) + .animate({ + draw: { + opacity: 1 + }, + dur: duration + }); + } + }; + + var Colors = { + PALETTES: { + ALL: "colorList", + METRO: "colorListMetro", + STANDARD: "colorListStandard" + }, + + colorListMetro: { + lime: '#a4c400', + green: '#60a917', + emerald: '#008a00', + blue: '#00AFF0', + teal: '#00aba9', + cyan: '#1ba1e2', + cobalt: '#0050ef', + indigo: '#6a00ff', + violet: '#aa00ff', + pink: '#dc4fad', + magenta: '#d80073', + crimson: '#a20025', + red: '#CE352C', + orange: '#fa6800', + amber: '#f0a30a', + yellow: '#fff000', + brown: '#825a2c', + olive: '#6d8764', + steel: '#647687', + mauve: '#76608a', + taupe: '#87794e' + }, + + colorListStandard: { + aliceBlue: "#f0f8ff", + antiqueWhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedAlmond: "#ffebcd", + blue: "#0000ff", + blueViolet: "#8a2be2", + brown: "#a52a2a", + burlyWood: "#deb887", + cadetBlue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerBlue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#00ffff", + darkBlue: "#00008b", + darkCyan: "#008b8b", + darkGoldenRod: "#b8860b", + darkGray: "#a9a9a9", + darkGreen: "#006400", + darkKhaki: "#bdb76b", + darkMagenta: "#8b008b", + darkOliveGreen: "#556b2f", + darkOrange: "#ff8c00", + darkOrchid: "#9932cc", + darkRed: "#8b0000", + darkSalmon: "#e9967a", + darkSeaGreen: "#8fbc8f", + darkSlateBlue: "#483d8b", + darkSlateGray: "#2f4f4f", + darkTurquoise: "#00ced1", + darkViolet: "#9400d3", + deepPink: "#ff1493", + deepSkyBlue: "#00bfff", + dimGray: "#696969", + dodgerBlue: "#1e90ff", + fireBrick: "#b22222", + floralWhite: "#fffaf0", + forestGreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#DCDCDC", + ghostWhite: "#F8F8FF", + gold: "#ffd700", + goldenRod: "#daa520", + gray: "#808080", + green: "#008000", + greenYellow: "#adff2f", + honeyDew: "#f0fff0", + hotPink: "#ff69b4", + indianRed: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderBlush: "#fff0f5", + lawnGreen: "#7cfc00", + lemonChiffon: "#fffacd", + lightBlue: "#add8e6", + lightCoral: "#f08080", + lightCyan: "#e0ffff", + lightGoldenRodYellow: "#fafad2", + lightGray: "#d3d3d3", + lightGreen: "#90ee90", + lightPink: "#ffb6c1", + lightSalmon: "#ffa07a", + lightSeaGreen: "#20b2aa", + lightSkyBlue: "#87cefa", + lightSlateGray: "#778899", + lightSteelBlue: "#b0c4de", + lightYellow: "#ffffe0", + lime: "#00ff00", + limeGreen: "#32dc32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumAquaMarine: "#66cdaa", + mediumBlue: "#0000cd", + mediumOrchid: "#ba55d3", + mediumPurple: "#9370db", + mediumSeaGreen: "#3cb371", + mediumSlateBlue: "#7b68ee", + mediumSpringGreen: "#00fa9a", + mediumTurquoise: "#48d1cc", + mediumVioletRed: "#c71585", + midnightBlue: "#191970", + mintCream: "#f5fffa", + mistyRose: "#ffe4e1", + moccasin: "#ffe4b5", + navajoWhite: "#ffdead", + navy: "#000080", + oldLace: "#fdd5e6", + olive: "#808000", + oliveDrab: "#6b8e23", + orange: "#ffa500", + orangeRed: "#ff4500", + orchid: "#da70d6", + paleGoldenRod: "#eee8aa", + paleGreen: "#98fb98", + paleTurquoise: "#afeeee", + paleVioletRed: "#db7093", + papayaWhip: "#ffefd5", + peachPuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderBlue: "#b0e0e6", + purple: "#800080", + rebeccaPurple: "#663399", + red: "#ff0000", + rosyBrown: "#bc8f8f", + royalBlue: "#4169e1", + saddleBrown: "#8b4513", + salmon: "#fa8072", + sandyBrown: "#f4a460", + seaGreen: "#2e8b57", + seaShell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + slyBlue: "#87ceeb", + slateBlue: "#6a5acd", + slateGray: "#708090", + snow: "#fffafa", + springGreen: "#00ff7f", + steelBlue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whiteSmoke: "#f5f5f5", + yellow: "#ffff00", + yellowGreen: "#9acd32" + }, + + colorList: {}, + + colors: function(palette){ + var c = []; + palette = palette || this.PALETTES.ALL; + $.each(this[palette], function(){ + c.push(this); + }); + return c; + }, + } + + function Tile(options, element){ + this.init = function(options, element) { + this.effectInterval = false; + this.images = []; + this.slides = []; + this.currentSlide = -1; + this.options = $.extend({}, TileDefaultConfig, options); + this.element = element; + this.hasIcon = false; + this.hasBranding = false; + + this._fixSizeCallback = this.resize.bind(this); + + this._create(); + }; + + this._create = function(){ + this._createTile(); + this._createEvents(); + + this.element.trigger("tilecreate"); + }; + + this._createTile = function(){ + function switchImage(el, img_src, i){ + setTimeout(function(){ + el.fadeOut(500, function(){ + el.css("background-image", "url(" + img_src + ")"); + el.fadeIn(); + }); + }, i * 300); + } + + var that = this, element = this.element, o = this.options; + var slides = element.find(".slide"); + var slides2 = element.find(".slide-front, .slide-back"); + + element.addClass("tile-" + o.size); + + if(element.find('.icon').length > 0){ + this.hasIcon = true; + } + + if(element.find('.branding-bar')){ + this.hasBranding = true; + } + + if (o.effect.indexOf("hover-") > -1) { + element.addClass("effect-" + o.effect); + $.each(slides2, function(){ + var slide = $(this); + + if (slide.data("cover") !== undefined) { + that._setCover(slide, slide.data("cover"), slide.data("cover-position")); + } + }) + } + + if (o.effect.indexOf("animate-") > -1 && slides.length > 1) { + $.each(slides, function(i){ + var slide = $(this); + + that.slides.push(this); + + if (slide.data("cover") !== undefined) { + this._setCover(slide, slide.data("cover"), slide.data("cover-position")); + } + + if (i > 0) { + if (["animate-slide-up", "animate-slide-down"].indexOf(o.effect) > -1) slide.css("top", "100%"); + if (["animate-slide-left", "animate-slide-right"].indexOf(o.effect) > -1) slide.css("left", "100%"); + if (["animate-fade"].indexOf(o.effect) > -1) slide.css("opacity", 0); + } + }); + + this.currentSlide = 0; + + this._runEffects(); + } + + if (o.cover !== "") { + this._setCover(element, o.cover); + } + + if (o.effect === "image-set") { + element.addClass("image-set"); + + $.each(element.children("img"), function(){ + var imgElem = document.createElement('img'); + imgElem.src = this.src; + imgElem.srcset = this.srcset; + imgElem.alt = this.alt; + that.images.push(imgElem); + $(this).remove(); + }); + + var temp = this.images.slice(); + + for(var i = 0; i < 5; i++) { + var rnd_index = rand(0, temp.length - 1); + var div = $("<div>").addClass("img -js-img-"+i).css("background-image", "url("+temp[rnd_index].src+")"); + element.prepend(div); + if (temp.length > 1) { + temp.splice(rnd_index, 1); + } + } + + var a = [0, 1, 4, 3, 2]; + + setInterval(function(){ + var temp = that.images.slice(); + var colors = Colors.colors(Colors.PALETTES.ALL), bg; + bg = colors[rand(0, colors.length - 1)]; + + element.css("background-color", bg); + + for(var i = 0; i < a.length; i++) { + var rnd_index = rand(0, temp.length - 1); + var div = element.find(".-js-img-"+a[i]); + switchImage(div, temp[rnd_index].src, i); + if (temp.length > 1) { + temp.splice(rnd_index, 1); + } + } + + a = a.reverse(); + }, 5000); + } + }; + + this._runEffects = function(){ + var o = this.options; + + if (this.effectInterval === false) this.effectInterval = setInterval(function(){ + var current, next; + + current = $(this.slides[this.currentSlide]); + + this.currentSlide++; + if (this.currentSlide === this.slides.length) { + this.currentSlide = 0; + } + + next = this.slides[this.currentSlide]; + + if (o.effect === "animate-slide-up") FrameAnimation.slideUp($(current), $(next), o.effectDuration); + if (o.effect === "animate-slide-down") FrameAnimation.slideDown($(current), $(next), o.effectDuration); + if (o.effect === "animate-slide-left") FrameAnimation.slideLeft($(current), $(next), o.effectDuration); + if (o.effect === "animate-slide-right") FrameAnimation.slideRight($(current), $(next), o.effectDuration); + if (o.effect === "animate-fade") FrameAnimation.fade($(current), $(next), o.effectDuration); + + }, o.effectInterval); + }; + + this._stopEffects = function(){ + clearInterval(this.effectInterval); + this.effectInterval = false; + }; + + this.resize = function(){ + var ratio = 1; + var padding = 0; + var grid = this.element.parent('.tiles-grid'); + var gridWidth = 0; + if(grid.length > 0){ + gridWidth = grid.width(); + } + + if(this.options.size == 'wide'){ + ratio = 0.5; + } + + //修正长宽比 + var height = this.element.width() * ratio - padding; + //this.element.height(height); + + if(this.hasIcon){ + var fontSize = height * 0.33; + var iconDom = this.element.find('.icon'); + iconDom.css('font-size', fontSize + 'px'); + + if(this.hasBranding){ //计算与标签的重叠 + var iconBottom = (height + fontSize) / 2; + + var brandingTop = height - this.element.find('.branding-bar').outerHeight(); + var overlap = iconBottom - brandingTop + (height * 0.1); + if(overlap > 0){ + iconDom.css('padding-bottom', overlap + 'px'); + } + } + } + } + + this._setCover = function(to, src, pos){ + if (!Utils.isValue(pos)) { + pos = this.options.coverPosition; + } + to.css({ + backgroundImage: "url("+src+")", + backgroundSize: "cover", + backgroundRepeat: "no-repeat", + backgroundPosition: pos + }); + }; + + this._createEvents = function(){ + var element = this.element, o = this.options; + + element.on('mousedown touchstart', function(e){ + var tile = $(this); + var dim = {w: element.width(), h: element.height()}; + var X = Utils.pageXY(e).x - tile.offset().left, + Y = Utils.pageXY(e).y - tile.offset().top; + var side; + + if (Utils.isRightMouse(e) === false) { + + if (X < dim.w * 1 / 3 && (Y < dim.h * 1 / 2 || Y > dim.h * 1 / 2)) { + side = 'left'; + } else if (X > dim.w * 2 / 3 && (Y < dim.h * 1 / 2 || Y > dim.h * 1 / 2)) { + side = 'right'; + } else if (X > dim.w * 1 / 3 && X < dim.w * 2 / 3 && Y > dim.h / 2) { + side = 'bottom'; + } else { + side = "top"; + } + + if (o.canTransform === true) tile.addClass("transform-" + side); + + if (o.target !== null) { + setTimeout(function(){ + document.location.href = o.target; + }, 100); + } + + Utils.exec(o.onClick, [side], element[0]); + element.trigger("click", { + side: side + }); + } + }); + + element.on('mouseup touchend mouseleave', function(){ + $(this) + .removeClass("transform-left") + .removeClass("transform-right") + .removeClass("transform-top") + .removeClass("transform-bottom"); + }); + + $(window).on('resize', this._fixSizeCallback); + $(this._fixSizeCallback); + }; + + this.destroy = function(){ + var element = this.element; + + element.off('mousedown touchstart'); + + element.off('mouseup touchend mouseleave'); + + $(window).off('resize', this._fixSizeCallback); + + this._stopEffects(); + }; + + this.init(options, element); + }; + + function getElementOptions(element){ + var options = {}; + $.each(element[0].attributes, function (index, attribute){ + if(attribute.name.startsWith('data-')){ + options[attribute.name.substr(5)] = attribute.value; + } + }); + + return options; + } + + $.fn.extend({ + tile: function(action, ...args){ + var result; + this.each(function(){ + var element = $(this); + if(element.attr('data-role') !== 'tile'){ + throw new Error('This element isn\'t a tile element'); + } + + var tileObj = element.data('tile'); + if(action == 'init'){ + if(tileObj){ + throw new Error('Tile already inited.'); + } + + var options = args[0] || {}; + options = $.extend({}, options, getElementOptions(element)); + tileObj = new Tile(options, element); + element.data('tile', tileObj); + } else { + if(!tileObj){ + throw new Error('Tile not inited.'); + } + + if(!tileObj[action]){ + throw new Error('Method: ' + action + ' not exists.'); + } + + result = tileObj[action].apply(tileObj, ...args); + } + }); + + if(result == undefined){ + return this; + } else { + return result; + } + } + }); + + function resizeGrid(){ + $('.tiles-grid').each(function(){ + var dom = $(this); + var width = dom.width(); + var gridSize = width / 4 - GRID_GAP; + dom.css({ + gridTemplateColumns: 'repeat(4, ' + gridSize + 'px)', + gridAutoRows: gridSize + 'px', + }); + }); + } + + $('*[data-role="tile"]').tile('init'); + $(window).resize(resizeGrid); + $(resizeGrid); + + function onCollapseDivChange(mutationsList){ + mutationsList.forEach((item) => { + if(item.type == 'attributes' && item.attributeName == 'class'){ + $('*[data-role="tile"]').tile('resize'); + resizeGrid(); + } + }); + } + + if($('body').hasClass('skin-minerva')){ + $('#mw-content-text .collapsible-block').each(function(){ + var dom = $(this); + if(dom.find('*[data-role="tile"]').length > 0){ //存在tile,监听这个dom + var observer = new MutationObserver(onCollapseDivChange); + observer.observe(dom[0], { + attributes: true, + }); + } + }); + } })(jQuery); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0d93a53..5cc3bca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,3124 +1,3124 @@ -{ - "name": "isekai-widgets", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.14.5.tgz", - "integrity": "sha1-I7CNdA6D9JxeWZRfvxtD6Au/Tts=", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.5.tgz?cache=0&sync_timestamp=1623280306479&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.5.tgz", - "integrity": "sha1-jvTBjljoAcXJXTwcDyh0omgPreo=", - "dev": true - }, - "@babel/core": { - "version": "7.14.6", - "resolved": "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.6.tgz?cache=0&sync_timestamp=1623707878699&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.14.6.tgz", - "integrity": "sha1-4IFOwalQAy/xbBOich3jmoQW/Ks=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.14.5.tgz", - "integrity": "sha1-hI17nwMcrKnQzQrwGwY/Im9S14U=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.14.5.tgz", - "integrity": "sha1-e/R47Dtxcm1WqMpXdbBG/CmHnmE=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", - "integrity": "sha1-uTm0P4w3dlRDoZrnStixWXjgoZE=", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.14.5.tgz?cache=0&sync_timestamp=1623280417606&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.14.5.tgz", - "integrity": "sha1-epnF0JZ5Eely/iw0EffVtJhJjs8=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.6", - "resolved": "https://registry.nlark.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.14.6.tgz", - "integrity": "sha1-8RRGm2wG+LXFnGxOdGIfUIU2JUI=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.14.5.tgz", - "integrity": "sha1-x9WsXpz2IcJgV3Ivt6ikxYiTWMQ=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.nlark.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha1-BSXt7FCUZTooJojTTYRuTHXpwLY=", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.14.5.tgz", - "integrity": "sha1-iqcucIIFx7tkPkXHO0OGzfKh9kU=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.14.5.tgz?cache=0&sync_timestamp=1623280385237&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.14.5.tgz", - "integrity": "sha1-ieLEdJcvFdjiM7Uu6MSA4s/NUMQ=", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha1-Jfv6V5sJN+7h87gF7OTOOYxDGBU=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha1-4N0nwzp45XfXyIhJFqPn7x98f40=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha1-1ccOStE7QCyVFWx6U1aPUE4vt7g=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.14.5.tgz", - "integrity": "sha1-bRpE32o4yVeqfDEtoHZCnxG0IvM=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.14.5.tgz?cache=0&sync_timestamp=1623280405923&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.14.5.tgz", - "integrity": "sha1-feQvENeJtCPrkC69JAMcp3yx4Q4=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha1-8nOVqGGeBmWz8DZM3bQcJdcbSZw=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz?cache=0&sync_timestamp=1623280296194&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.14.5.tgz", - "integrity": "sha1-WsgizpfuxGdBq3ClF5ceRDpwxak=", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.14.5.tgz?cache=0&sync_timestamp=1623280405954&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.14.5.tgz", - "integrity": "sha1-UUOckTYSlY9UqYek/8nuWHogRdY=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-wrap-function": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.14.5.tgz?cache=0&sync_timestamp=1623280401049&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.14.5.tgz", - "integrity": "sha1-DswLA8Qc1We0Ak6gFhNMKEFKu5Q=", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.14.5.tgz", - "integrity": "sha1-ZuqFz1O6C05Yi6d/yBP1OryqQcQ=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.14.5.tgz", - "integrity": "sha1-lvSGrAUMqfRLAJ++W305TKs6DuQ=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha1-IrI6VO9RwrdgXYUZMMGXbdC8aTo=", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.5.tgz?cache=0&sync_timestamp=1623280305128&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.5.tgz", - "integrity": "sha1-0PDid8US4Mk4J3+qhaOWjJpEwOg=", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz?cache=0&sync_timestamp=1623280304150&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.14.5.tgz", - "integrity": "sha1-bnKh//GNXfy4eOHmLxoCHEty1aM=", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.14.5.tgz?cache=0&sync_timestamp=1623280400923&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.14.5.tgz", - "integrity": "sha1-WRnRFb8P4yi4pdY7y2EPUWAfK/8=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helpers": { - "version": "7.14.6", - "resolved": "https://registry.nlark.com/@babel/helpers/download/@babel/helpers-7.14.6.tgz?cache=0&sync_timestamp=1623708032832&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.14.6.tgz", - "integrity": "sha1-W1gwa5XxtH4qAZlDT6hlj6bCFjU=", - "dev": true, - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.5.tgz", - "integrity": "sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.6.tgz?cache=0&sync_timestamp=1623708033155&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.6.tgz", - "integrity": "sha1-2FzGjKPKyE6uOEwG8DKSH1In9LI=", - "dev": true - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz?cache=0&sync_timestamp=1623280386537&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining%2Fdownload%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", - "integrity": "sha1-S0ZzAuFUjtOxvkO+rizJz0Xgu34=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280410907&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.14.5.tgz", - "integrity": "sha1-QCSZDj3XQYH09CbqZXdp/0mi3zk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.14.5.tgz?cache=0&sync_timestamp=1623280411002&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.14.5.tgz", - "integrity": "sha1-QNHuFAxbHjGjUPT17tlFCWVZtC4=", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280411252&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-class-static-block%2Fdownload%2F%40babel%2Fplugin-proposal-class-static-block-7.14.5.tgz", - "integrity": "sha1-FY6eENRJw4Se8+zelKA9nxhBtoE=", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.14.5.tgz", - "integrity": "sha1-DGYX30YcDB+P/ztHzVl3I2AQHSw=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.14.5.tgz", - "integrity": "sha1-260kQxDObM0IMHIWfYzqg6Uvr3Y=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.14.5.tgz?cache=0&sync_timestamp=1623280420044&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.14.5.tgz", - "integrity": "sha1-ON5g2zYug6PYyUSshY3fnwwiOes=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.14.5.tgz?cache=0&sync_timestamp=1623280419692&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.14.5.tgz", - "integrity": "sha1-bmIpwqmbAqspFfglceDMZGpAxzg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz?cache=0&sync_timestamp=1623280418763&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.14.5.tgz", - "integrity": "sha1-7jhYnOAOLMWbKZ7D6kBvzToP2vY=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.14.5.tgz?cache=0&sync_timestamp=1623280419388&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.14.5.tgz", - "integrity": "sha1-g2Mb8z2aUd8YTCECoGmsDFjAXxg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.14.5.tgz", - "integrity": "sha1-5YHVzN+hh+pu1z9WxqIcFYC5D78=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.5" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.14.5.tgz?cache=0&sync_timestamp=1623280419133&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.14.5.tgz", - "integrity": "sha1-k53W7d7/Omf997PwRLU0cmJZjDw=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.14.5.tgz?cache=0&sync_timestamp=1623280397698&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.14.5.tgz", - "integrity": "sha1-+oNlHmCjYOPxN5fu8AuNUZaVtgM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.14.5.tgz?cache=0&sync_timestamp=1623280416204&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.14.5.tgz", - "integrity": "sha1-N0RklZlrKUXzD1vltg1eKqT1eS0=", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.14.5.tgz?cache=0&sync_timestamp=1623280416058&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-proposal-private-property-in-object-7.14.5.tgz", - "integrity": "sha1-n2Wk0Ek6lAtMAfiqnT8YlKWH9jY=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280385924&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.14.5.tgz", - "integrity": "sha1-D5XuDnV6XWR/N42qDsp+k/qou+g=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280420297&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-class-static-block%2Fdownload%2F%40babel%2Fplugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha1-GV34mxRrS3izv4l/16JXyEZZ1AY=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz?cache=0&sync_timestamp=1599827954750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.5.tgz?cache=0&sync_timestamp=1623280423879&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.14.5.tgz?cache=0&sync_timestamp=1623280427172&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280426581&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.14.5.tgz", - "integrity": "sha1-9xh9lYinaN0IC/TJ/+EX6mL3hio=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.14.5.tgz?cache=0&sync_timestamp=1623280415969&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.14.5.tgz", - "integrity": "sha1-cseJCE2PIJSsuUVjOUPvhEPTnmc=", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280426909&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.14.5.tgz", - "integrity": "sha1-5IZB2ZnUvBV6Z+8zautUvET9OtQ=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.14.5.tgz?cache=0&sync_timestamp=1623280394580&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.14.5.tgz", - "integrity": "sha1-jMY+YeUPQuB45vCb53WnXyPvmTk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.14.5.tgz?cache=0&sync_timestamp=1623280406029&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.14.5.tgz", - "integrity": "sha1-DpjoIJezhVCwO0g/m1GnjeCsss8=", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.14.5.tgz?cache=0&sync_timestamp=1623280393882&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.14.5.tgz", - "integrity": "sha1-G514mHQg0RIj1BGVRhzEO5dLIE8=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.14.5.tgz?cache=0&sync_timestamp=1623280428280&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.14.5.tgz", - "integrity": "sha1-0yrRn/Gm2h6GHcYnINgNl3bjvzU=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280386290&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.14.5.tgz", - "integrity": "sha1-L2v3bka9+AQ7Tn4WzyRTJim6DHo=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.14.5.tgz", - "integrity": "sha1-NlpIRIgb3xUB46nwJw5/D5EXeVQ=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.14.5.tgz?cache=0&sync_timestamp=1623280390976&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.14.5.tgz", - "integrity": "sha1-UVS43Wo9/m2Qkj1hckvT3uuQtJM=", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.14.5.tgz?cache=0&sync_timestamp=1623280394473&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.14.5.tgz", - "integrity": "sha1-2uOEYT3o93wZaohpy/YCpE9/wOs=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.14.5.tgz?cache=0&sync_timestamp=1623280395990&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.14.5.tgz", - "integrity": "sha1-6Bxl7LkAdG1/MYAva+0fUtkV1vI=", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.14.5.tgz?cache=0&sync_timestamp=1623280393774&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.14.5.tgz", - "integrity": "sha1-QdBsf/XU0J489Fh70+zzkwxzD3g=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.14.5.tgz", - "integrity": "sha1-s5zVISor8jWmF9Mg7CtIvMCRuKc=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.14.5.tgz?cache=0&sync_timestamp=1623280416173&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.14.5.tgz", - "integrity": "sha1-T9nOfjQRy4uDhISAtwQdgwBIWPc=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.14.5.tgz?cache=0&sync_timestamp=1623280421563&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.14.5.tgz", - "integrity": "sha1-eq7g6pgoPelNqYso+MNXAUKdrZc=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.14.5.tgz?cache=0&sync_timestamp=1623280420500&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.14.5.tgz", - "integrity": "sha1-x1NC74sw3N5CldNAGq4k5lY47Sk=", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.14.5.tgz?cache=0&sync_timestamp=1623280420892&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.14.5.tgz", - "integrity": "sha1-+2Yt/uaXzOJ0p82lJRkKeQlqpuA=", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280390978&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.14.5.tgz", - "integrity": "sha1-1Tfo7gg+5vaqT07vnSCB1VV0bkw=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.14.5.tgz", - "integrity": "sha1-Mb2ui5JdyEB26/zSqZQBQ67X2/g=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.14.5.tgz?cache=0&sync_timestamp=1623280405923&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.14.5.tgz", - "integrity": "sha1-0LX66snphZehYanPeMUn7ZNM3EU=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.14.5.tgz", - "integrity": "sha1-SWYuhqHz3cysY2On37H/ChWK/rM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.14.5.tgz", - "integrity": "sha1-DduqH4PbNgbxzfSEb6HftHNFizQ=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.14.5.tgz?cache=0&sync_timestamp=1623280296038&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.14.5.tgz", - "integrity": "sha1-lnb9VwftKPUicnxbPAqoVERAsE8=", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.14.5.tgz", - "integrity": "sha1-xEWJtmHP2++NQwDcx0ad/6kvgwQ=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.14.5.tgz", - "integrity": "sha1-l/E4VfFAkzjYyty6ymcK154JGlg=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.14.6", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.14.6.tgz", - "integrity": "sha1-a9QOV/596UqpBIUZY7VhZlL3MUQ=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.14.5.tgz", - "integrity": "sha1-W2F1Qmdei3dhKUOB88KMYz9Arrk=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.14.5.tgz", - "integrity": "sha1-pfK8Izk32EU4hdxza92Nn/q/PZM=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.14.5.tgz", - "integrity": "sha1-Oa8nOemJor0pG/a1PxaYFCPUV9Q=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.14.5.tgz", - "integrity": "sha1-nUvSpoHjxdes9PV/qeURddkdDGs=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280395968&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.14.5.tgz", - "integrity": "sha1-TNCbbIQl3YElXHzrP7GDbnQUOC4=", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/preset-env": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/preset-env/download/@babel/preset-env-7.14.5.tgz?cache=0&sync_timestamp=1623280426019&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.14.5.tgz", - "integrity": "sha1-wMhOdjZh/Q50KSw9URyzOwxmiZc=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.5", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-class-static-block": "^7.14.5", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-json-strings": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.14.5", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.14.5", - "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.14.5", - "@babel/plugin-transform-async-to-generator": "^7.14.5", - "@babel/plugin-transform-block-scoped-functions": "^7.14.5", - "@babel/plugin-transform-block-scoping": "^7.14.5", - "@babel/plugin-transform-classes": "^7.14.5", - "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.5", - "@babel/plugin-transform-dotall-regex": "^7.14.5", - "@babel/plugin-transform-duplicate-keys": "^7.14.5", - "@babel/plugin-transform-exponentiation-operator": "^7.14.5", - "@babel/plugin-transform-for-of": "^7.14.5", - "@babel/plugin-transform-function-name": "^7.14.5", - "@babel/plugin-transform-literals": "^7.14.5", - "@babel/plugin-transform-member-expression-literals": "^7.14.5", - "@babel/plugin-transform-modules-amd": "^7.14.5", - "@babel/plugin-transform-modules-commonjs": "^7.14.5", - "@babel/plugin-transform-modules-systemjs": "^7.14.5", - "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", - "@babel/plugin-transform-new-target": "^7.14.5", - "@babel/plugin-transform-object-super": "^7.14.5", - "@babel/plugin-transform-parameters": "^7.14.5", - "@babel/plugin-transform-property-literals": "^7.14.5", - "@babel/plugin-transform-regenerator": "^7.14.5", - "@babel/plugin-transform-reserved-words": "^7.14.5", - "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.5", - "@babel/plugin-transform-sticky-regex": "^7.14.5", - "@babel/plugin-transform-template-literals": "^7.14.5", - "@babel/plugin-transform-typeof-symbol": "^7.14.5", - "@babel/plugin-transform-unicode-escapes": "^7.14.5", - "@babel/plugin-transform-unicode-regex": "^7.14.5", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.5", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.2", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.14.0", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.nlark.com/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz", - "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.14.6", - "resolved": "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.6.tgz?cache=0&sync_timestamp=1623708023742&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.14.6.tgz", - "integrity": "sha1-U1IDvAiS78fexgvcJ7Ls9uQJBi0=", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1623280386138&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz", - "integrity": "sha1-qbydizM1T/blWpxg0RCSAKaJdPQ=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.14.5.tgz?cache=0&sync_timestamp=1623280395969&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.14.5.tgz", - "integrity": "sha1-wRGw9Yr6tP6j0zhaQG9pJ0jFmHA=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", - "integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "to-fast-properties": "^2.0.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.3", - "resolved": "https://registry.nlark.com/@discoveryjs/json-ext/download/@discoveryjs/json-ext-0.5.3.tgz?cache=0&sync_timestamp=1620941046017&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40discoveryjs%2Fjson-ext%2Fdownload%2F%40discoveryjs%2Fjson-ext-0.5.3.tgz", - "integrity": "sha1-kEIPn5xtOYfxdqGafY52QnGi9V0=", - "dev": true - }, - "@types/eslint": { - "version": "7.2.13", - "resolved": "https://registry.nlark.com/@types/eslint/download/@types/eslint-7.2.13.tgz?cache=0&sync_timestamp=1622583210245&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Feslint%2Fdownload%2F%40types%2Feslint-7.2.13.tgz", - "integrity": "sha1-4MpyGbpd7UAgYq1vkm1JHrsp3VM=", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.0", - "resolved": "https://registry.nlark.com/@types/eslint-scope/download/@types/eslint-scope-3.7.0.tgz?cache=0&sync_timestamp=1621240962626&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Feslint-scope%2Fdownload%2F%40types%2Feslint-scope-3.7.0.tgz", - "integrity": "sha1-R5KBbjERnr1QaQKkgsrsSVH6vYY=", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.47", - "resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.47.tgz?cache=0&sync_timestamp=1622611944045&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.47.tgz", - "integrity": "sha1-16Udsg8GUO/sJM0EmU9SPZMXLtQ=", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.7.tgz", - "integrity": "sha1-mKmTUWyFnrDVxMjwmDF6nqaNua0=", - "dev": true - }, - "@types/node": { - "version": "15.12.2", - "resolved": "https://registry.nlark.com/@types/node/download/@types/node-15.12.2.tgz", - "integrity": "sha1-HytCxL5xVv9Kb5FLL7A9BfqE440=", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/@types/parse-json/download/@types/parse-json-4.0.0.tgz", - "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.11.0.tgz", - "integrity": "sha1-papnnv3J5RcHpCBxOdpXkgVVlh8=", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.11.0.tgz?cache=0&sync_timestamp=1610041307537&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.11.0.tgz", - "integrity": "sha1-NNYgUvRTzUMQHXLqtJZqAiWHlHw=", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.11.0.tgz?cache=0&sync_timestamp=1610041309019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.11.0.tgz", - "integrity": "sha1-quqPs7kj9KqptRL/VBsBP/to0tQ=", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.11.0.tgz", - "integrity": "sha1-0CbCXRdeOIp9valpTpHnQ8vptkI=", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-numbers/download/@webassemblyjs/helper-numbers-1.11.0.tgz", - "integrity": "sha1-erBBctVOMSzG6kKG19n6J8iM1Pk=", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.11.0.tgz?cache=0&sync_timestamp=1610041308619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.11.0.tgz", - "integrity": "sha1-hf3NpBKZAv6G+Bq/fnI2lT7FpOE=", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.0", - "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.11.0.tgz", - "integrity": "sha1-nOLMiTACYlCcgBtK8RPRyiXBp1s=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.11.0.tgz?cache=0&sync_timestamp=1610045498486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.11.0.tgz", - "integrity": "sha1-RpddWD+YKPXQlKwhDiGUQcTm9c8=", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.11.0.tgz?cache=0&sync_timestamp=1610041308922&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.11.0.tgz", - "integrity": "sha1-9zU94d84qiAcup+4i0P0H3X/QDs=", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.11.0.tgz?cache=0&sync_timestamp=1610041309288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.11.0.tgz", - "integrity": "sha1-huSPlZz0ng5QkfBppwm4YvWiyt8=", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.11.0.tgz?cache=0&sync_timestamp=1610041307235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.11.0.tgz", - "integrity": "sha1-7kpcn2dwRqIQVCrmOJcJTCAny3g=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/helper-wasm-section": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-opt": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "@webassemblyjs/wast-printer": "1.11.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.11.0.tgz?cache=0&sync_timestamp=1610041306557&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.11.0.tgz", - "integrity": "sha1-PNs15wCC1Co1FmmI3aZPJM65er4=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.11.0.tgz?cache=0&sync_timestamp=1610041306793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.11.0.tgz", - "integrity": "sha1-FjiuGIE39LsDH1aKQTzSTTL5KXg=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.11.0.tgz?cache=0&sync_timestamp=1610041306194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.11.0.tgz", - "integrity": "sha1-PmgLiDDVsT0eyGzELzjz1KdwB1Q=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.0", - "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.11.0.tgz", - "integrity": "sha1-aA0falNl1tQBl0qOlJ4FR04fq34=", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/@webpack-cli/configtest/download/@webpack-cli/configtest-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webpack-cli%2Fconfigtest%2Fdownload%2F%40webpack-cli%2Fconfigtest-1.0.4.tgz", - "integrity": "sha1-8DzmMRwIg6g9BFaeLAPGI4MW0qo=", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.3.0", - "resolved": "https://registry.nlark.com/@webpack-cli/info/download/@webpack-cli/info-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webpack-cli%2Finfo%2Fdownload%2F%40webpack-cli%2Finfo-1.3.0.tgz", - "integrity": "sha1-nXijEQGpYJl6Ss1B/9m5MAYn/is=", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.5.1", - "resolved": "https://registry.nlark.com/@webpack-cli/serve/download/@webpack-cli/serve-1.5.1.tgz", - "integrity": "sha1-tf3i8PecHhIDB8QVpMHV6xWm8ng=", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.nlark.com/@xtuc/long/download/@xtuc/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", - "dev": true - }, - "acorn": { - "version": "8.4.0", - "resolved": "https://registry.nlark.com/acorn/download/acorn-8.4.0.tgz", - "integrity": "sha1-r1MmbmmNfP+kFnFLUDBmqCIhvmA=", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz", - "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "autoprefixer": { - "version": "10.2.6", - "resolved": "https://registry.nlark.com/autoprefixer/download/autoprefixer-10.2.6.tgz", - "integrity": "sha1-qt2ew04cmNQD4BlQA4BJ8OslKUk=", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-lite": "^1.0.30001230", - "colorette": "^1.2.2", - "fraction.js": "^4.1.1", - "normalize-range": "^0.1.2", - "postcss-value-parser": "^4.1.0" - } - }, - "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz", - "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622023904181&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha1-6RJHheb9lPlLYYp5VOVpMFO/Uyc=", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.2.3", - "resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.2.3.tgz?cache=0&sync_timestamp=1623879605583&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.2.3.tgz", - "integrity": "sha1-cq3WjPCKi/E5um5t/AsdUECY5Xs=", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.14.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.nlark.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.2.tgz?cache=0&sync_timestamp=1622023907940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha1-sxDI1kKsraNIwfo7Pmzg6FG+4Hc=", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", - "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789101558&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", - "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz", - "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001237", - "resolved": "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001237.tgz?cache=0&sync_timestamp=1623477032412&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001237.tgz", - "integrity": "sha1-S3eDZhUVuOcVH8Y3bP2X8OQnueU=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz", - "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz?cache=0&sync_timestamp=1617905925551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/clone-deep/download/clone-deep-4.0.1.tgz", - "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.nlark.com/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259647923&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz", - "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/commondir/download/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1618847182423&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", - "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "core-js-compat": { - "version": "3.14.0", - "resolved": "https://registry.nlark.com/core-js-compat/download/core-js-compat-3.14.0.tgz", - "integrity": "sha1-tXTavykYRoHVsWNXvTPRBN89KaU=", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", - "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", - "dev": true - } - } - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-7.0.0.tgz", - "integrity": "sha1-75tE13OVnK5j3ezRIt4jhTtg+NM=", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-loader": { - "version": "5.2.6", - "resolved": "https://registry.nlark.com/css-loader/download/css-loader-5.2.6.tgz", - "integrity": "sha1-w8gqt3/qHzYOWH2HGmgR9EUMyNE=", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.15", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.5" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", - "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/cssesc/download/cssesc-3.0.0.tgz", - "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz", - "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "desandro-matches-selector": { - "version": "2.0.2", - "resolved": "https://registry.npm.taobao.org/desandro-matches-selector/download/desandro-matches-selector-2.0.2.tgz", - "integrity": "sha1-cXvu1NwT59jzdi9wem1YpndCGOE=" - }, - "electron-to-chromium": { - "version": "1.3.752", - "resolved": "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.752.tgz?cache=0&sync_timestamp=1623290597781&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.752.tgz", - "integrity": "sha1-ByhYfxublw7J/62TJJZCmu91DQk=", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/emojis-list/download/emojis-list-3.0.0.tgz", - "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", - "dev": true - }, - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-5.8.2.tgz", - "integrity": "sha1-Fd3HeTRcu3PpfGEc0AwBwee/TYs=", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npm.taobao.org/envinfo/download/envinfo-7.8.1.tgz", - "integrity": "sha1-Bjd+Pl9NN5/qesWS1a2JJ+DE1HU=", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-module-lexer": { - "version": "0.4.1", - "resolved": "https://registry.nlark.com/es-module-lexer/download/es-module-lexer-0.4.1.tgz", - "integrity": "sha1-3ajGoU2PNAok40Mx4Pqwy1BDjg4=", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.nlark.com/escalade/download/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.nlark.com/estraverse/download/estraverse-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", - "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.nlark.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "dev": true - }, - "ev-emitter": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/ev-emitter/download/ev-emitter-1.1.1.tgz", - "integrity": "sha1-jxiwzlx2pdGAF/ccCnlcZbkTjyo=" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.nlark.com/fastest-levenshtein/download/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha1-mZD306iMxan/0fF0V0UlFwDUl+I=", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.1.tgz?cache=0&sync_timestamp=1618847023946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz", - "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1618847130383&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fizzy-ui-utils": { - "version": "2.0.7", - "resolved": "https://registry.npm.taobao.org/fizzy-ui-utils/download/fizzy-ui-utils-2.0.7.tgz", - "integrity": "sha1-ffRdzE6zdKCLZdObuaS+7fczBQU=", - "requires": { - "desandro-matches-selector": "^2.0.0" - } - }, - "fraction.js": { - "version": "4.1.1", - "resolved": "https://registry.nlark.com/fraction.js/download/fraction.js-4.1.1.tgz", - "integrity": "sha1-rE5SBHPa5nAS1hiquR7aCby0AP8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.nlark.com/fsevents/download/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.nlark.com/gensync/download/gensync-1.0.0-beta.2.tgz", - "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-size": { - "version": "2.0.3", - "resolved": "https://registry.npm.taobao.org/get-size/download/get-size-2.0.3.tgz", - "integrity": "sha1-VKHQJWsg6nrGRlFnViAnaZQa0u8=" - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.nlark.com/glob-to-regexp/download/glob-to-regexp-0.4.1.tgz", - "integrity": "sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz", - "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", - "dev": true - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.nlark.com/graceful-fs/download/graceful-fs-4.2.6.tgz", - "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.nlark.com/has/download/has-1.0.3.tgz?cache=0&sync_timestamp=1618847173393&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas%2Fdownload%2Fhas-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz", - "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/human-signals/download/human-signals-2.1.0.tgz", - "integrity": "sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA=", - "dev": true - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.nlark.com/icss-utils/download/icss-utils-5.1.0.tgz", - "integrity": "sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.nlark.com/import-fresh/download/import-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-3.0.2.tgz", - "integrity": "sha1-qM/QQx0d5KIZlwPQA+PmI2T6bbY=", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-2.2.0.tgz", - "integrity": "sha1-GnigtZZcQKVBbQB61vUK0nxBffk=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/is-binary-path/download/is-binary-path-2.1.0.tgz", - "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.4.0.tgz", - "integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.nlark.com/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/isobject/download/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.nlark.com/jest-worker/download/jest-worker-27.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjest-worker%2Fdownload%2Fjest-worker-27.0.2.tgz", - "integrity": "sha1-Tr61bO9Is+dRRVL4DQ2AwBKfCwU=", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-8.1.1.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.2.0.tgz", - "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", - "dev": true - }, - "klona": { - "version": "2.0.4", - "resolved": "https://registry.npm.taobao.org/klona/download/klona-2.0.4.tgz", - "integrity": "sha1-e7Hjr/sMuGJFR+9+j2cI6i4538A=", - "dev": true - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.nlark.com/loader-runner/download/loader-runner-4.2.0.tgz", - "integrity": "sha1-1wIjgNZtFMX7HUlriYZOvP1Hg4Q=", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", - "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", - "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "masonry-layout": { - "version": "4.2.2", - "resolved": "https://registry.npm.taobao.org/masonry-layout/download/masonry-layout-4.2.2.tgz", - "integrity": "sha1-1XtErxPmAb/NxCPx3YNItVJN40g=", - "requires": { - "get-size": "^2.0.2", - "outlayer": "^2.1.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", - "dev": true - }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.nlark.com/mime-db/download/mime-db-1.48.0.tgz?cache=0&sync_timestamp=1622433556078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-db%2Fdownload%2Fmime-db-1.48.0.tgz", - "integrity": "sha1-41sxBF3X6to6qtU37YijOvvvLR0=", - "dev": true - }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.nlark.com/mime-types/download/mime-types-2.1.31.tgz?cache=0&sync_timestamp=1622569304088&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.31.tgz", - "integrity": "sha1-oA12t0MXxh+cLbIhi46fjpxcnms=", - "dev": true, - "requires": { - "mime-db": "1.48.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1617823583529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "1.6.0", - "resolved": "https://registry.nlark.com/mini-css-extract-plugin/download/mini-css-extract-plugin-1.6.0.tgz", - "integrity": "sha1-tNslJa8mJIme1kojsAFuADZBGJM=", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", - "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", - "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433856030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true - }, - "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.nlark.com/nanoid/download/nanoid-3.1.23.tgz?cache=0&sync_timestamp=1620673983269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.23.tgz", - "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", - "dev": true - }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.nlark.com/node-releases/download/node-releases-1.1.73.tgz", - "integrity": "sha1-3U6B3dUnf/hGuAtSu0DEnt96eyA=", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.nlark.com/normalize-range/download/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.nlark.com/object-keys/download/object-keys-1.1.1.tgz?cache=0&sync_timestamp=1618847173787&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz", - "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "outlayer": { - "version": "2.1.1", - "resolved": "https://registry.npm.taobao.org/outlayer/download/outlayer-2.1.1.tgz", - "integrity": "sha1-KYY7beEOpdrf/8rfoNcokHOH6aI=", - "requires": { - "ev-emitter": "^1.0.0", - "fizzy-ui-utils": "^2.0.0", - "get-size": "^2.0.2" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.nlark.com/parent-module/download/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz", - "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971613935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", - "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "postcss": { - "version": "8.3.5", - "resolved": "https://registry.nlark.com/postcss/download/postcss-8.3.5.tgz", - "integrity": "sha1-mCIWsRNBK8IKhiiekeuZSVKltwk=", - "dev": true, - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map-js": "^0.6.2" - } - }, - "postcss-loader": { - "version": "6.1.0", - "resolved": "https://registry.nlark.com/postcss-loader/download/postcss-loader-6.1.0.tgz?cache=0&sync_timestamp=1623349063856&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-loader%2Fdownload%2Fpostcss-loader-6.1.0.tgz", - "integrity": "sha1-E8gAoAs8fUNKExmnPYXi3wcUzd4=", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", - "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha1-zaHwR8CugMl9vijD52pDuIAldB0=", - "dev": true - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz?cache=0&sync_timestamp=1602587682123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-4.0.0.tgz", - "integrity": "sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz", - "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", - "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", - "dev": true - }, - "prettier": { - "version": "2.3.1", - "resolved": "https://registry.nlark.com/prettier/download/prettier-2.3.1.tgz?cache=0&sync_timestamp=1622888668729&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-2.3.1.tgz", - "integrity": "sha1-dpA8P4xESbyaxZes76JNxa1MvqY=", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.nlark.com/randombytes/download/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.nlark.com/readdirp/download/readdirp-3.6.0.tgz", - "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.7.0.tgz", - "integrity": "sha1-MmUP1SwhqyUqpdZbGTEEQcfgOso=", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.nlark.com/regenerate/download/regenerate-1.4.2.tgz", - "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz", - "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz", - "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz", - "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.nlark.com/regjsgen/download/regjsgen-0.5.2.tgz", - "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", - "dev": true - }, - "regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.9.tgz?cache=0&sync_timestamp=1616544927031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.9.tgz", - "integrity": "sha1-tInu98mizkNydicBFCnPgzpxg+Y=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1618846903792&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz", - "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/resolve-cwd/download/resolve-cwd-3.0.0.tgz", - "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.nlark.com/resolve-from/download/resolve-from-5.0.0.tgz", - "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.nlark.com/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "sass": { - "version": "1.35.1", - "resolved": "https://registry.nlark.com/sass/download/sass-1.35.1.tgz?cache=0&sync_timestamp=1623791393536&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass%2Fdownload%2Fsass-1.35.1.tgz", - "integrity": "sha1-kOz3dN/mjwe2GTB347QvsVS54c0=", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0" - } - }, - "sass-loader": { - "version": "12.1.0", - "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-12.1.0.tgz", - "integrity": "sha1-tzMkYiIxAJ2m+6Yat2ATJWOA0gE=", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", - "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", - "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", - "dev": true - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-5.0.1.tgz?cache=0&sync_timestamp=1618847133756&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-5.0.1.tgz", - "integrity": "sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.nlark.com/shallow-clone/download/shallow-clone-3.0.1.tgz", - "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.nlark.com/signal-exit/download/signal-exit-3.0.3.tgz", - "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", - "dev": true - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npm.taobao.org/source-map-js/download/source-map-js-0.6.2.tgz", - "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz", - "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046554687&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", - "dev": true - }, - "style-loader": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/style-loader/download/style-loader-2.0.0.tgz?cache=0&sync_timestamp=1618847017397&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstyle-loader%2Fdownload%2Fstyle-loader-2.0.0.tgz", - "integrity": "sha1-lmlgL9RpB0DqrsE3eZoDrdu8OTw=", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", - "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/tapable/download/tapable-2.2.0.tgz", - "integrity": "sha1-XDc9KB2cZyhIIT0OA30cQWWrQms=", - "dev": true - }, - "terser": { - "version": "5.7.0", - "resolved": "https://registry.nlark.com/terser/download/terser-5.7.0.tgz", - "integrity": "sha1-p2Hu7CBryHtgWrEwKYdurZOK5pM=", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.nlark.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", - "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.1.3", - "resolved": "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-5.1.3.tgz?cache=0&sync_timestamp=1622475814720&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-5.1.3.tgz", - "integrity": "sha1-MAM+lVyii1VmTx5LMKE0fmGqI68=", - "dev": true, - "requires": { - "jest-worker": "^27.0.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.7.0" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", - "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.nlark.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.nlark.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.nlark.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237641463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.nlark.com/util-deprecate/download/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz", - "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", - "dev": true - }, - "watchpack": { - "version": "2.2.0", - "resolved": "https://registry.nlark.com/watchpack/download/watchpack-2.2.0.tgz", - "integrity": "sha1-R9ePVBX+VQ7NdA+Z/iiCMjpYsc4=", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webpack": { - "version": "5.39.0", - "resolved": "https://registry.nlark.com/webpack/download/webpack-5.39.0.tgz", - "integrity": "sha1-N9aJnx9Awx1ZAavA85vIzHIkE4w=", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.47", - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/wasm-edit": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.2.1", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.4.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", - "watchpack": "^2.2.0", - "webpack-sources": "^2.3.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", - "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - }, - "webpack-sources": { - "version": "2.3.0", - "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-2.3.0.tgz", - "integrity": "sha1-ntLeabJRQ6TBiEdYatnsyxknjPo=", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "webpack-cli": { - "version": "4.7.2", - "resolved": "https://registry.nlark.com/webpack-cli/download/webpack-cli-4.7.2.tgz", - "integrity": "sha1-pxjbYA3m05BqQ1fgWa5YSon0waU=", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.4", - "@webpack-cli/info": "^1.3.0", - "@webpack-cli/serve": "^1.5.1", - "colorette": "^1.2.1", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.nlark.com/commander/download/commander-7.2.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-7.2.0.tgz", - "integrity": "sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc=", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.nlark.com/execa/download/execa-5.1.1.tgz", - "integrity": "sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-6.0.1.tgz", - "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.0.tgz", - "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.nlark.com/webpack-merge/download/webpack-merge-5.8.0.tgz", - "integrity": "sha1-Kznb8ir4d3atdEw5AiNzHTCmj2E=", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz", - "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true - } - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.nlark.com/which/download/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/wildcard/download/wildcard-2.0.0.tgz", - "integrity": "sha1-p30g5SAMb6qsl55LOq3Hs91/j+w=", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.nlark.com/yaml/download/yaml-1.10.2.tgz", - "integrity": "sha1-IwHF/78StGfejaIzOkWeKeeSDks=", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.nlark.com/yocto-queue/download/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", - "dev": true - } - } -} +{ + "name": "isekai-widgets", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/code-frame/download/@babel/code-frame-7.14.5.tgz", + "integrity": "sha1-I7CNdA6D9JxeWZRfvxtD6Au/Tts=", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/compat-data": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.5.tgz?cache=0&sync_timestamp=1623280306479&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.5.tgz", + "integrity": "sha1-jvTBjljoAcXJXTwcDyh0omgPreo=", + "dev": true + }, + "@babel/core": { + "version": "7.14.6", + "resolved": "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.6.tgz?cache=0&sync_timestamp=1623707878699&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.14.6.tgz", + "integrity": "sha1-4IFOwalQAy/xbBOich3jmoQW/Ks=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helpers": "^7.14.6", + "@babel/parser": "^7.14.6", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.14.5.tgz", + "integrity": "sha1-hI17nwMcrKnQzQrwGwY/Im9S14U=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha1-e/R47Dtxcm1WqMpXdbBG/CmHnmE=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha1-uTm0P4w3dlRDoZrnStixWXjgoZE=", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.14.5.tgz?cache=0&sync_timestamp=1623280417606&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.14.5.tgz", + "integrity": "sha1-epnF0JZ5Eely/iw0EffVtJhJjs8=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.14.6", + "resolved": "https://registry.nlark.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.14.6.tgz", + "integrity": "sha1-8RRGm2wG+LXFnGxOdGIfUIU2JUI=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha1-x9WsXpz2IcJgV3Ivt6ikxYiTWMQ=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.3", + "resolved": "https://registry.nlark.com/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha1-BSXt7FCUZTooJojTTYRuTHXpwLY=", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha1-iqcucIIFx7tkPkXHO0OGzfKh9kU=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.14.5.tgz?cache=0&sync_timestamp=1623280385237&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.14.5.tgz", + "integrity": "sha1-ieLEdJcvFdjiM7Uu6MSA4s/NUMQ=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha1-Jfv6V5sJN+7h87gF7OTOOYxDGBU=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha1-4N0nwzp45XfXyIhJFqPn7x98f40=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.14.5.tgz", + "integrity": "sha1-1ccOStE7QCyVFWx6U1aPUE4vt7g=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.14.5.tgz", + "integrity": "sha1-bRpE32o4yVeqfDEtoHZCnxG0IvM=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.14.5.tgz?cache=0&sync_timestamp=1623280405923&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.14.5.tgz", + "integrity": "sha1-feQvENeJtCPrkC69JAMcp3yx4Q4=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha1-8nOVqGGeBmWz8DZM3bQcJdcbSZw=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz?cache=0&sync_timestamp=1623280296194&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.14.5.tgz", + "integrity": "sha1-WsgizpfuxGdBq3ClF5ceRDpwxak=", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.14.5.tgz?cache=0&sync_timestamp=1623280405954&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha1-UUOckTYSlY9UqYek/8nuWHogRdY=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.14.5.tgz?cache=0&sync_timestamp=1623280401049&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.14.5.tgz", + "integrity": "sha1-DswLA8Qc1We0Ak6gFhNMKEFKu5Q=", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-simple-access/download/@babel/helper-simple-access-7.14.5.tgz", + "integrity": "sha1-ZuqFz1O6C05Yi6d/yBP1OryqQcQ=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha1-lvSGrAUMqfRLAJ++W305TKs6DuQ=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha1-IrI6VO9RwrdgXYUZMMGXbdC8aTo=", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.5.tgz?cache=0&sync_timestamp=1623280305128&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.5.tgz", + "integrity": "sha1-0PDid8US4Mk4J3+qhaOWjJpEwOg=", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-validator-option/download/@babel/helper-validator-option-7.14.5.tgz?cache=0&sync_timestamp=1623280304150&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.14.5.tgz", + "integrity": "sha1-bnKh//GNXfy4eOHmLxoCHEty1aM=", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.14.5.tgz?cache=0&sync_timestamp=1623280400923&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.14.5.tgz", + "integrity": "sha1-WRnRFb8P4yi4pdY7y2EPUWAfK/8=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helpers": { + "version": "7.14.6", + "resolved": "https://registry.nlark.com/@babel/helpers/download/@babel/helpers-7.14.6.tgz?cache=0&sync_timestamp=1623708032832&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.14.6.tgz", + "integrity": "sha1-W1gwa5XxtH4qAZlDT6hlj6bCFjU=", + "dev": true, + "requires": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.5.tgz", + "integrity": "sha1-aGGlLwOWZAUAH2qlNKAaJNmejNk=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.14.6", + "resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.6.tgz?cache=0&sync_timestamp=1623708033155&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.6.tgz", + "integrity": "sha1-2FzGjKPKyE6uOEwG8DKSH1In9LI=", + "dev": true + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz?cache=0&sync_timestamp=1623280386537&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining%2Fdownload%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha1-S0ZzAuFUjtOxvkO+rizJz0Xgu34=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280410907&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.14.5.tgz", + "integrity": "sha1-QCSZDj3XQYH09CbqZXdp/0mi3zk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.14.5.tgz?cache=0&sync_timestamp=1623280411002&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha1-QNHuFAxbHjGjUPT17tlFCWVZtC4=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280411252&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-class-static-block%2Fdownload%2F%40babel%2Fplugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha1-FY6eENRJw4Se8+zelKA9nxhBtoE=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha1-DGYX30YcDB+P/ztHzVl3I2AQHSw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha1-260kQxDObM0IMHIWfYzqg6Uvr3Y=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.14.5.tgz?cache=0&sync_timestamp=1623280420044&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha1-ON5g2zYug6PYyUSshY3fnwwiOes=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.14.5.tgz?cache=0&sync_timestamp=1623280419692&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-logical-assignment-operators%2Fdownload%2F%40babel%2Fplugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha1-bmIpwqmbAqspFfglceDMZGpAxzg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz?cache=0&sync_timestamp=1623280418763&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha1-7jhYnOAOLMWbKZ7D6kBvzToP2vY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.14.5.tgz?cache=0&sync_timestamp=1623280419388&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-numeric-separator%2Fdownload%2F%40babel%2Fplugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha1-g2Mb8z2aUd8YTCECoGmsDFjAXxg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.14.5.tgz", + "integrity": "sha1-5YHVzN+hh+pu1z9WxqIcFYC5D78=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.14.5.tgz?cache=0&sync_timestamp=1623280419133&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha1-k53W7d7/Omf997PwRLU0cmJZjDw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.14.5.tgz?cache=0&sync_timestamp=1623280397698&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha1-+oNlHmCjYOPxN5fu8AuNUZaVtgM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.14.5.tgz?cache=0&sync_timestamp=1623280416204&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha1-N0RklZlrKUXzD1vltg1eKqT1eS0=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.14.5.tgz?cache=0&sync_timestamp=1623280416058&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha1-n2Wk0Ek6lAtMAfiqnT8YlKWH9jY=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280385924&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-unicode-property-regex%2Fdownload%2F%40babel%2Fplugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha1-D5XuDnV6XWR/N42qDsp+k/qou+g=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.14.5.tgz?cache=0&sync_timestamp=1623280420297&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-class-static-block%2Fdownload%2F%40babel%2Fplugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha1-GV34mxRrS3izv4l/16JXyEZZ1AY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz?cache=0&sync_timestamp=1599827954750&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-dynamic-import%2Fdownload%2F%40babel%2Fplugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.5.tgz?cache=0&sync_timestamp=1623280423879&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.14.5.tgz?cache=0&sync_timestamp=1623280427172&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-syntax-top-level-await%2Fdownload%2F%40babel%2Fplugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280426581&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha1-9xh9lYinaN0IC/TJ/+EX6mL3hio=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.14.5.tgz?cache=0&sync_timestamp=1623280415969&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha1-cseJCE2PIJSsuUVjOUPvhEPTnmc=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.14.5.tgz?cache=0&sync_timestamp=1623280426909&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha1-5IZB2ZnUvBV6Z+8zautUvET9OtQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.14.5.tgz?cache=0&sync_timestamp=1623280394580&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.14.5.tgz", + "integrity": "sha1-jMY+YeUPQuB45vCb53WnXyPvmTk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.14.5.tgz?cache=0&sync_timestamp=1623280406029&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.14.5.tgz", + "integrity": "sha1-DpjoIJezhVCwO0g/m1GnjeCsss8=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.14.5.tgz?cache=0&sync_timestamp=1623280393882&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha1-G514mHQg0RIj1BGVRhzEO5dLIE8=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.14.5.tgz?cache=0&sync_timestamp=1623280428280&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.14.5.tgz", + "integrity": "sha1-0yrRn/Gm2h6GHcYnINgNl3bjvzU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280386290&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha1-L2v3bka9+AQ7Tn4WzyRTJim6DHo=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha1-NlpIRIgb3xUB46nwJw5/D5EXeVQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.14.5.tgz?cache=0&sync_timestamp=1623280390976&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha1-UVS43Wo9/m2Qkj1hckvT3uuQtJM=", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.14.5.tgz?cache=0&sync_timestamp=1623280394473&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.14.5.tgz", + "integrity": "sha1-2uOEYT3o93wZaohpy/YCpE9/wOs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.14.5.tgz?cache=0&sync_timestamp=1623280395990&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.14.5.tgz", + "integrity": "sha1-6Bxl7LkAdG1/MYAva+0fUtkV1vI=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.14.5.tgz?cache=0&sync_timestamp=1623280393774&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-literals%2Fdownload%2F%40babel%2Fplugin-transform-literals-7.14.5.tgz", + "integrity": "sha1-QdBsf/XU0J489Fh70+zzkwxzD3g=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha1-s5zVISor8jWmF9Mg7CtIvMCRuKc=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.14.5.tgz?cache=0&sync_timestamp=1623280416173&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha1-T9nOfjQRy4uDhISAtwQdgwBIWPc=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.14.5.tgz?cache=0&sync_timestamp=1623280421563&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.14.5.tgz", + "integrity": "sha1-eq7g6pgoPelNqYso+MNXAUKdrZc=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.14.5.tgz?cache=0&sync_timestamp=1623280420500&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha1-x1NC74sw3N5CldNAGq4k5lY47Sk=", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.14.5.tgz?cache=0&sync_timestamp=1623280420892&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha1-+2Yt/uaXzOJ0p82lJRkKeQlqpuA=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280390978&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.14.5.tgz", + "integrity": "sha1-1Tfo7gg+5vaqT07vnSCB1VV0bkw=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha1-Mb2ui5JdyEB26/zSqZQBQ67X2/g=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.14.5.tgz?cache=0&sync_timestamp=1623280405923&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.14.5.tgz", + "integrity": "sha1-0LX66snphZehYanPeMUn7ZNM3EU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha1-SWYuhqHz3cysY2On37H/ChWK/rM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha1-DduqH4PbNgbxzfSEb6HftHNFizQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.14.5.tgz?cache=0&sync_timestamp=1623280296038&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha1-lnb9VwftKPUicnxbPAqoVERAsE8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha1-xEWJtmHP2++NQwDcx0ad/6kvgwQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha1-l/E4VfFAkzjYyty6ymcK154JGlg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.14.6", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.14.6.tgz", + "integrity": "sha1-a9QOV/596UqpBIUZY7VhZlL3MUQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha1-W2F1Qmdei3dhKUOB88KMYz9Arrk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha1-pfK8Izk32EU4hdxza92Nn/q/PZM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha1-Oa8nOemJor0pG/a1PxaYFCPUV9Q=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha1-nUvSpoHjxdes9PV/qeURddkdDGs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.14.5.tgz?cache=0&sync_timestamp=1623280395968&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha1-TNCbbIQl3YElXHzrP7GDbnQUOC4=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/preset-env/download/@babel/preset-env-7.14.5.tgz?cache=0&sync_timestamp=1623280426019&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.14.5.tgz", + "integrity": "sha1-wMhOdjZh/Q50KSw9URyzOwxmiZc=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.5", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.5", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.5", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.5", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.14.0", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.nlark.com/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz", + "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.14.6", + "resolved": "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.6.tgz?cache=0&sync_timestamp=1623708023742&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.14.6.tgz", + "integrity": "sha1-U1IDvAiS78fexgvcJ7Ls9uQJBi0=", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/template/download/@babel/template-7.14.5.tgz?cache=0&sync_timestamp=1623280386138&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.14.5.tgz", + "integrity": "sha1-qbydizM1T/blWpxg0RCSAKaJdPQ=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.14.5.tgz?cache=0&sync_timestamp=1623280395969&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.14.5.tgz", + "integrity": "sha1-wRGw9Yr6tP6j0zhaQG9pJ0jFmHA=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.5.tgz", + "integrity": "sha1-O7mXuoKaIQTO2yBonEpbgSHTg/8=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.3", + "resolved": "https://registry.nlark.com/@discoveryjs/json-ext/download/@discoveryjs/json-ext-0.5.3.tgz?cache=0&sync_timestamp=1620941046017&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40discoveryjs%2Fjson-ext%2Fdownload%2F%40discoveryjs%2Fjson-ext-0.5.3.tgz", + "integrity": "sha1-kEIPn5xtOYfxdqGafY52QnGi9V0=", + "dev": true + }, + "@types/eslint": { + "version": "7.2.13", + "resolved": "https://registry.nlark.com/@types/eslint/download/@types/eslint-7.2.13.tgz?cache=0&sync_timestamp=1622583210245&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Feslint%2Fdownload%2F%40types%2Feslint-7.2.13.tgz", + "integrity": "sha1-4MpyGbpd7UAgYq1vkm1JHrsp3VM=", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.0", + "resolved": "https://registry.nlark.com/@types/eslint-scope/download/@types/eslint-scope-3.7.0.tgz?cache=0&sync_timestamp=1621240962626&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Feslint-scope%2Fdownload%2F%40types%2Feslint-scope-3.7.0.tgz", + "integrity": "sha1-R5KBbjERnr1QaQKkgsrsSVH6vYY=", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.47", + "resolved": "https://registry.nlark.com/@types/estree/download/@types/estree-0.0.47.tgz?cache=0&sync_timestamp=1622611944045&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Festree%2Fdownload%2F%40types%2Festree-0.0.47.tgz", + "integrity": "sha1-16Udsg8GUO/sJM0EmU9SPZMXLtQ=", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.nlark.com/@types/json-schema/download/@types/json-schema-7.0.7.tgz", + "integrity": "sha1-mKmTUWyFnrDVxMjwmDF6nqaNua0=", + "dev": true + }, + "@types/node": { + "version": "15.12.2", + "resolved": "https://registry.nlark.com/@types/node/download/@types/node-15.12.2.tgz", + "integrity": "sha1-HytCxL5xVv9Kb5FLL7A9BfqE440=", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.nlark.com/@types/parse-json/download/@types/parse-json-4.0.0.tgz", + "integrity": "sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA=", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.11.0", + "resolved": "https://registry.nlark.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.11.0.tgz", + "integrity": "sha1-papnnv3J5RcHpCBxOdpXkgVVlh8=", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.11.0.tgz?cache=0&sync_timestamp=1610041307537&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.11.0.tgz", + "integrity": "sha1-NNYgUvRTzUMQHXLqtJZqAiWHlHw=", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.11.0.tgz?cache=0&sync_timestamp=1610041309019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.11.0.tgz", + "integrity": "sha1-quqPs7kj9KqptRL/VBsBP/to0tQ=", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.0", + "resolved": "https://registry.nlark.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.11.0.tgz", + "integrity": "sha1-0CbCXRdeOIp9valpTpHnQ8vptkI=", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-numbers/download/@webassemblyjs/helper-numbers-1.11.0.tgz", + "integrity": "sha1-erBBctVOMSzG6kKG19n6J8iM1Pk=", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.11.0.tgz?cache=0&sync_timestamp=1610041308619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.11.0.tgz", + "integrity": "sha1-hf3NpBKZAv6G+Bq/fnI2lT7FpOE=", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.0", + "resolved": "https://registry.nlark.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.11.0.tgz", + "integrity": "sha1-nOLMiTACYlCcgBtK8RPRyiXBp1s=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.11.0.tgz?cache=0&sync_timestamp=1610045498486&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.11.0.tgz", + "integrity": "sha1-RpddWD+YKPXQlKwhDiGUQcTm9c8=", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.11.0.tgz?cache=0&sync_timestamp=1610041308922&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.11.0.tgz", + "integrity": "sha1-9zU94d84qiAcup+4i0P0H3X/QDs=", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.11.0.tgz?cache=0&sync_timestamp=1610041309288&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.11.0.tgz", + "integrity": "sha1-huSPlZz0ng5QkfBppwm4YvWiyt8=", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.11.0.tgz?cache=0&sync_timestamp=1610041307235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.11.0.tgz", + "integrity": "sha1-7kpcn2dwRqIQVCrmOJcJTCAny3g=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/helper-wasm-section": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-opt": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "@webassemblyjs/wast-printer": "1.11.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.11.0.tgz?cache=0&sync_timestamp=1610041306557&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.11.0.tgz", + "integrity": "sha1-PNs15wCC1Co1FmmI3aZPJM65er4=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.11.0.tgz?cache=0&sync_timestamp=1610041306793&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.11.0.tgz", + "integrity": "sha1-FjiuGIE39LsDH1aKQTzSTTL5KXg=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.11.0.tgz?cache=0&sync_timestamp=1610041306194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.11.0.tgz", + "integrity": "sha1-PmgLiDDVsT0eyGzELzjz1KdwB1Q=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.11.0.tgz", + "integrity": "sha1-aA0falNl1tQBl0qOlJ4FR04fq34=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.0.4", + "resolved": "https://registry.nlark.com/@webpack-cli/configtest/download/@webpack-cli/configtest-1.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webpack-cli%2Fconfigtest%2Fdownload%2F%40webpack-cli%2Fconfigtest-1.0.4.tgz", + "integrity": "sha1-8DzmMRwIg6g9BFaeLAPGI4MW0qo=", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.3.0", + "resolved": "https://registry.nlark.com/@webpack-cli/info/download/@webpack-cli/info-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webpack-cli%2Finfo%2Fdownload%2F%40webpack-cli%2Finfo-1.3.0.tgz", + "integrity": "sha1-nXijEQGpYJl6Ss1B/9m5MAYn/is=", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.5.1", + "resolved": "https://registry.nlark.com/@webpack-cli/serve/download/@webpack-cli/serve-1.5.1.tgz", + "integrity": "sha1-tf3i8PecHhIDB8QVpMHV6xWm8ng=", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.nlark.com/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.nlark.com/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", + "dev": true + }, + "acorn": { + "version": "8.4.0", + "resolved": "https://registry.nlark.com/acorn/download/acorn-8.4.0.tgz", + "integrity": "sha1-r1MmbmmNfP+kFnFLUDBmqCIhvmA=", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz", + "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "autoprefixer": { + "version": "10.2.6", + "resolved": "https://registry.nlark.com/autoprefixer/download/autoprefixer-10.2.6.tgz", + "integrity": "sha1-qt2ew04cmNQD4BlQA4BJ8OslKUk=", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-lite": "^1.0.30001230", + "colorette": "^1.2.2", + "fraction.js": "^4.1.1", + "normalize-range": "^0.1.2", + "postcss-value-parser": "^4.1.0" + } + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz", + "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.2", + "resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.2.tgz?cache=0&sync_timestamp=1622023904181&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs2%2Fdownload%2Fbabel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha1-6RJHheb9lPlLYYp5VOVpMFO/Uyc=", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.2", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.3", + "resolved": "https://registry.nlark.com/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.2.3.tgz?cache=0&sync_timestamp=1623879605583&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-corejs3%2Fdownload%2Fbabel-plugin-polyfill-corejs3-0.2.3.tgz", + "integrity": "sha1-cq3WjPCKi/E5um5t/AsdUECY5Xs=", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.14.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.2", + "resolved": "https://registry.nlark.com/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.2.tgz?cache=0&sync_timestamp=1622023907940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbabel-plugin-polyfill-regenerator%2Fdownload%2Fbabel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha1-sxDI1kKsraNIwfo7Pmzg6FG+4Hc=", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299293319&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz", + "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789101558&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz", + "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.nlark.com/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz", + "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001237", + "resolved": "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001237.tgz?cache=0&sync_timestamp=1623477032412&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001237.tgz", + "integrity": "sha1-S3eDZhUVuOcVH8Y3bP2X8OQnueU=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.nlark.com/chokidar/download/chokidar-3.5.2.tgz", + "integrity": "sha1-26OXb8rbAW9m/TZQIdkWANAcHnU=", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz?cache=0&sync_timestamp=1617905925551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.3.tgz", + "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.nlark.com/clone-deep/download/clone-deep-4.0.1.tgz", + "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.nlark.com/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259647923&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz", + "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.nlark.com/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.nlark.com/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1618847182423&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz", + "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-js-compat": { + "version": "3.14.0", + "resolved": "https://registry.nlark.com/core-js-compat/download/core-js-compat-3.14.0.tgz", + "integrity": "sha1-tXTavykYRoHVsWNXvTPRBN89KaU=", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz", + "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=", + "dev": true + } + } + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-7.0.0.tgz", + "integrity": "sha1-75tE13OVnK5j3ezRIt4jhTtg+NM=", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-loader": { + "version": "5.2.6", + "resolved": "https://registry.nlark.com/css-loader/download/css-loader-5.2.6.tgz", + "integrity": "sha1-w8gqt3/qHzYOWH2HGmgR9EUMyNE=", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.5" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", + "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.nlark.com/cssesc/download/cssesc-3.0.0.tgz", + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz", + "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.nlark.com/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "desandro-matches-selector": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/desandro-matches-selector/download/desandro-matches-selector-2.0.2.tgz", + "integrity": "sha1-cXvu1NwT59jzdi9wem1YpndCGOE=" + }, + "electron-to-chromium": { + "version": "1.3.752", + "resolved": "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.752.tgz?cache=0&sync_timestamp=1623290597781&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.752.tgz", + "integrity": "sha1-ByhYfxublw7J/62TJJZCmu91DQk=", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.nlark.com/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, + "enhanced-resolve": { + "version": "5.8.2", + "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-5.8.2.tgz", + "integrity": "sha1-Fd3HeTRcu3PpfGEc0AwBwee/TYs=", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npm.taobao.org/envinfo/download/envinfo-7.8.1.tgz", + "integrity": "sha1-Bjd+Pl9NN5/qesWS1a2JJ+DE1HU=", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.4.1", + "resolved": "https://registry.nlark.com/es-module-lexer/download/es-module-lexer-0.4.1.tgz", + "integrity": "sha1-3ajGoU2PNAok40Mx4Pqwy1BDjg4=", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.nlark.com/escalade/download/escalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.nlark.com/estraverse/download/estraverse-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", + "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.nlark.com/estraverse/download/estraverse-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true + }, + "ev-emitter": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ev-emitter/download/ev-emitter-1.1.1.tgz", + "integrity": "sha1-jxiwzlx2pdGAF/ccCnlcZbkTjyo=" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz", + "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.nlark.com/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.nlark.com/fastest-levenshtein/download/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha1-mZD306iMxan/0fF0V0UlFwDUl+I=", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.nlark.com/find-cache-dir/download/find-cache-dir-3.3.1.tgz?cache=0&sync_timestamp=1618847023946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-cache-dir%2Fdownload%2Ffind-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.nlark.com/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1618847130383&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fizzy-ui-utils": { + "version": "2.0.7", + "resolved": "https://registry.npm.taobao.org/fizzy-ui-utils/download/fizzy-ui-utils-2.0.7.tgz", + "integrity": "sha1-ffRdzE6zdKCLZdObuaS+7fczBQU=", + "requires": { + "desandro-matches-selector": "^2.0.0" + } + }, + "fraction.js": { + "version": "4.1.1", + "resolved": "https://registry.nlark.com/fraction.js/download/fraction.js-4.1.1.tgz", + "integrity": "sha1-rE5SBHPa5nAS1hiquR7aCby0AP8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.nlark.com/fsevents/download/fsevents-2.3.2.tgz", + "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.nlark.com/gensync/download/gensync-1.0.0-beta.2.tgz", + "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz", + "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-size": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/get-size/download/get-size-2.0.3.tgz", + "integrity": "sha1-VKHQJWsg6nrGRlFnViAnaZQa0u8=" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz", + "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.nlark.com/glob-to-regexp/download/glob-to-regexp-0.4.1.tgz", + "integrity": "sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.nlark.com/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.nlark.com/graceful-fs/download/graceful-fs-4.2.6.tgz", + "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.nlark.com/has/download/has-1.0.3.tgz?cache=0&sync_timestamp=1618847173393&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas%2Fdownload%2Fhas-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz", + "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.nlark.com/human-signals/download/human-signals-2.1.0.tgz", + "integrity": "sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA=", + "dev": true + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.nlark.com/icss-utils/download/icss-utils-5.1.0.tgz", + "integrity": "sha1-xr5oWKvQE9do6YNmrkfiXViHsa4=", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.nlark.com/import-fresh/download/import-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-3.0.2.tgz", + "integrity": "sha1-qM/QQx0d5KIZlwPQA+PmI2T6bbY=", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-2.2.0.tgz", + "integrity": "sha1-GnigtZZcQKVBbQB61vUK0nxBffk=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.nlark.com/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.4.0.tgz", + "integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.nlark.com/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.nlark.com/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "jest-worker": { + "version": "27.0.2", + "resolved": "https://registry.nlark.com/jest-worker/download/jest-worker-27.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjest-worker%2Fdownload%2Fjest-worker-27.0.2.tgz", + "integrity": "sha1-Tr61bO9Is+dRRVL4DQ2AwBKfCwU=", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.nlark.com/supports-color/download/supports-color-8.1.1.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-8.1.1.tgz", + "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.2.0.tgz", + "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/klona/download/klona-2.0.4.tgz", + "integrity": "sha1-e7Hjr/sMuGJFR+9+j2cI6i4538A=", + "dev": true + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.nlark.com/loader-runner/download/loader-runner-4.2.0.tgz", + "integrity": "sha1-1wIjgNZtFMX7HUlriYZOvP1Hg4Q=", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "masonry-layout": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/masonry-layout/download/masonry-layout-4.2.2.tgz", + "integrity": "sha1-1XtErxPmAb/NxCPx3YNItVJN40g=", + "requires": { + "get-size": "^2.0.2", + "outlayer": "^2.1.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.nlark.com/mime-db/download/mime-db-1.48.0.tgz?cache=0&sync_timestamp=1622433556078&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-db%2Fdownload%2Fmime-db-1.48.0.tgz", + "integrity": "sha1-41sxBF3X6to6qtU37YijOvvvLR0=", + "dev": true + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.nlark.com/mime-types/download/mime-types-2.1.31.tgz?cache=0&sync_timestamp=1622569304088&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.31.tgz", + "integrity": "sha1-oA12t0MXxh+cLbIhi46fjpxcnms=", + "dev": true, + "requires": { + "mime-db": "1.48.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1617823583529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "1.6.0", + "resolved": "https://registry.nlark.com/mini-css-extract-plugin/download/mini-css-extract-plugin-1.6.0.tgz", + "integrity": "sha1-tNslJa8mJIme1kojsAFuADZBGJM=", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433856030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.nlark.com/nanoid/download/nanoid-3.1.23.tgz?cache=0&sync_timestamp=1620673983269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.23.tgz", + "integrity": "sha1-90QIbOfCvEfuCoRyV01ceOQYOoE=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "dev": true + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.nlark.com/node-releases/download/node-releases-1.1.73.tgz", + "integrity": "sha1-3U6B3dUnf/hGuAtSu0DEnt96eyA=", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.nlark.com/normalize-range/download/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.nlark.com/object-keys/download/object-keys-1.1.1.tgz?cache=0&sync_timestamp=1618847173787&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-keys%2Fdownload%2Fobject-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz", + "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "outlayer": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/outlayer/download/outlayer-2.1.1.tgz", + "integrity": "sha1-KYY7beEOpdrf/8rfoNcokHOH6aI=", + "requires": { + "ev-emitter": "^1.0.0", + "fizzy-ui-utils": "^2.0.0", + "get-size": "^2.0.2" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.nlark.com/p-limit/download/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.nlark.com/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.nlark.com/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.nlark.com/parent-module/download/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz", + "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.nlark.com/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971613935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz", + "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz?cache=0&sync_timestamp=1621648246651&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpicomatch%2Fdownload%2Fpicomatch-2.3.0.tgz", + "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "postcss": { + "version": "8.3.5", + "resolved": "https://registry.nlark.com/postcss/download/postcss-8.3.5.tgz", + "integrity": "sha1-mCIWsRNBK8IKhiiekeuZSVKltwk=", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + } + }, + "postcss-loader": { + "version": "6.1.0", + "resolved": "https://registry.nlark.com/postcss-loader/download/postcss-loader-6.1.0.tgz?cache=0&sync_timestamp=1623349063856&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-loader%2Fdownload%2Fpostcss-loader-6.1.0.tgz", + "integrity": "sha1-E8gAoAs8fUNKExmnPYXi3wcUzd4=", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz", + "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha1-zaHwR8CugMl9vijD52pDuIAldB0=", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-4.0.0.tgz?cache=0&sync_timestamp=1602587682123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha1-67tU+uFZjuz99pGgKz/zs5ClpRw=", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha1-nvMVFFbTu/oSDKRImN/Kby+gHwY=", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-4.0.0.tgz", + "integrity": "sha1-18Xn5ow7s8myfL9Iyguz/7RgLJw=", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz", + "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true + }, + "prettier": { + "version": "2.3.1", + "resolved": "https://registry.nlark.com/prettier/download/prettier-2.3.1.tgz?cache=0&sync_timestamp=1622888668729&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-2.3.1.tgz", + "integrity": "sha1-dpA8P4xESbyaxZes76JNxa1MvqY=", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.nlark.com/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.nlark.com/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.nlark.com/readdirp/download/readdirp-3.6.0.tgz", + "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/rechoir/download/rechoir-0.7.0.tgz", + "integrity": "sha1-MmUP1SwhqyUqpdZbGTEEQcfgOso=", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.nlark.com/regenerate/download/regenerate-1.4.2.tgz", + "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz", + "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz", + "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.nlark.com/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", + "dev": true + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.9.tgz?cache=0&sync_timestamp=1616544927031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.9.tgz", + "integrity": "sha1-tInu98mizkNydicBFCnPgzpxg+Y=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1618846903792&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz", + "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.nlark.com/resolve-cwd/download/resolve-cwd-3.0.0.tgz", + "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.nlark.com/resolve-from/download/resolve-from-5.0.0.tgz", + "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.nlark.com/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "sass": { + "version": "1.35.1", + "resolved": "https://registry.nlark.com/sass/download/sass-1.35.1.tgz?cache=0&sync_timestamp=1623791393536&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass%2Fdownload%2Fsass-1.35.1.tgz", + "integrity": "sha1-kOz3dN/mjwe2GTB347QvsVS54c0=", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "12.1.0", + "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-12.1.0.tgz", + "integrity": "sha1-tzMkYiIxAJ2m+6Yat2ATJWOA0gE=", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz", + "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.nlark.com/serialize-javascript/download/serialize-javascript-5.0.1.tgz?cache=0&sync_timestamp=1618847133756&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-5.0.1.tgz", + "integrity": "sha1-eIbshIBJpGJGepfT2Rjrsqr5NPQ=", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.nlark.com/shallow-clone/download/shallow-clone-3.0.1.tgz", + "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.nlark.com/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "dev": true + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/source-map-js/download/source-map-js-0.6.2.tgz", + "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4=", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz?cache=0&sync_timestamp=1620046554687&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-final-newline%2Fdownload%2Fstrip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true + }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/style-loader/download/style-loader-2.0.0.tgz?cache=0&sync_timestamp=1618847017397&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstyle-loader%2Fdownload%2Fstyle-loader-2.0.0.tgz", + "integrity": "sha1-lmlgL9RpB0DqrsE3eZoDrdu8OTw=", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.nlark.com/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.nlark.com/tapable/download/tapable-2.2.0.tgz", + "integrity": "sha1-XDc9KB2cZyhIIT0OA30cQWWrQms=", + "dev": true + }, + "terser": { + "version": "5.7.0", + "resolved": "https://registry.nlark.com/terser/download/terser-5.7.0.tgz", + "integrity": "sha1-p2Hu7CBryHtgWrEwKYdurZOK5pM=", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.nlark.com/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz", + "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.1.3", + "resolved": "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-5.1.3.tgz?cache=0&sync_timestamp=1622475814720&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-5.1.3.tgz", + "integrity": "sha1-MAM+lVyii1VmTx5LMKE0fmGqI68=", + "dev": true, + "requires": { + "jest-worker": "^27.0.2", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.7.0" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.nlark.com/p-limit/download/p-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.nlark.com/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.nlark.com/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.nlark.com/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237641463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.nlark.com/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz", + "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=", + "dev": true + }, + "watchpack": { + "version": "2.2.0", + "resolved": "https://registry.nlark.com/watchpack/download/watchpack-2.2.0.tgz", + "integrity": "sha1-R9ePVBX+VQ7NdA+Z/iiCMjpYsc4=", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.39.0", + "resolved": "https://registry.nlark.com/webpack/download/webpack-5.39.0.tgz", + "integrity": "sha1-N9aJnx9Awx1ZAavA85vIzHIkE4w=", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.47", + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/wasm-edit": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "acorn": "^8.2.1", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.0", + "es-module-lexer": "^0.4.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.1", + "watchpack": "^2.2.0", + "webpack-sources": "^2.3.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-3.0.0.tgz", + "integrity": "sha1-Z1AvaqK2ai1AMrQnmilEl4oJE+8=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "webpack-sources": { + "version": "2.3.0", + "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-2.3.0.tgz", + "integrity": "sha1-ntLeabJRQ6TBiEdYatnsyxknjPo=", + "dev": true, + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + } + } + }, + "webpack-cli": { + "version": "4.7.2", + "resolved": "https://registry.nlark.com/webpack-cli/download/webpack-cli-4.7.2.tgz", + "integrity": "sha1-pxjbYA3m05BqQ1fgWa5YSon0waU=", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.4", + "@webpack-cli/info": "^1.3.0", + "@webpack-cli/serve": "^1.5.1", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.nlark.com/commander/download/commander-7.2.0.tgz?cache=0&sync_timestamp=1622954303803&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcommander%2Fdownload%2Fcommander-7.2.0.tgz", + "integrity": "sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc=", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.nlark.com/execa/download/execa-5.1.1.tgz", + "integrity": "sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-6.0.1.tgz", + "integrity": "sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.nlark.com/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.nlark.com/webpack-merge/download/webpack-merge-5.8.0.tgz", + "integrity": "sha1-Kznb8ir4d3atdEw5AiNzHTCmj2E=", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.nlark.com/webpack-sources/download/webpack-sources-1.4.3.tgz", + "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.nlark.com/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/wildcard/download/wildcard-2.0.0.tgz", + "integrity": "sha1-p30g5SAMb6qsl55LOq3Hs91/j+w=", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.nlark.com/yaml/download/yaml-1.10.2.tgz", + "integrity": "sha1-IwHF/78StGfejaIzOkWeKeeSDks=", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.nlark.com/yocto-queue/download/yocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "dev": true + } + } +} diff --git a/src/createPage/ext.isekai.createPage.js b/src/createPage/ext.isekai.createPage.js index 92724ab..88646e8 100644 --- a/src/createPage/ext.isekai.createPage.js +++ b/src/createPage/ext.isekai.createPage.js @@ -1,108 +1,108 @@ -const registerModule = require('../moduleRegister'); - -class CreatePageWidget { - constructor(dom) { - this.baseDom = dom; - this.pageUrl = null; - this.api = new mw.Api(); - - this.hasError = false; - - this.initDom(); - } - - initDom() { - this.pageNameInput = new OO.ui.TextInputWidget({ - placeholder: mw.message('isekai-createpage-page-title').parse(), - }); - this.pageNameInput.on('enter', this.createPage.bind(this)); - this.pageNameInput.on('change', this.onPageNameChange.bind(this)); - - this.createButton = new OO.ui.ButtonWidget({ - label: mw.message('isekai-createpage-create-page-button').parse(), - flags: [ - 'primary', - 'progressive' - ] - }); - this.createButton.on('click', this.createPage.bind(this)); - - this.formGroup = new OO.ui.ActionFieldLayout(this.pageNameInput, this.createButton, { - align: 'top' - }); - this.baseDom.find('.card-body .card-content').append(this.formGroup.$element); - } - - createPage() { - let title = this.pageNameInput.getValue(); - if (this.hasError) { - this.clearError(); //清除errors - } - if (title.trim().length > 0) { - this.createButton.setDisabled(true); - this.pageExists(title).then((exists) => { - if (exists) { - this.createButton.setDisabled(false); - this.setError(mw.message('isekai-createpage-page-exists').parse()); //提示页面已经存在 - } else { - let targetUrl = mw.util.getUrl(title, { veaction: 'edit' }); - this.formGroup.setSuccess([ - mw.message('isekai-createpage-redirecting').parse() - ]); //提示正在跳转 - location.href = targetUrl; - } - }); - } else { - this.setError(mw.message('isekai-createpage-title-empty').parse()); - } - } - - onPageNameChange() { - if (this.hasError) { - this.clearError(); - } - - let value = this.pageNameInput.getValue(); - if (value.indexOf(':') !== -1 || value.indexOf('`') !== -1) { - let range = this.pageNameInput.getRange(); - value = value.replace(/:/g, ':').replace(/`/g, '·'); - this.pageNameInput.setValue(value); - this.pageNameInput.selectRange(range.from, range.to); - } - } - - setError(msg) { - this.formGroup.setErrors([msg]); //提示页面已经存在 - this.hasError = true; - } - - clearError() { - this.formGroup.setErrors([]); - this.hasError = false; - } - - pageExists(title) { - return new Promise((resolve, reject) => { - this.api.get({ - action: 'query', - titles: title, - }).done((data) => { - if (data.query && data.query.pages) { - if (data.query.pages["-1"]) { - resolve(false); - } else { - resolve(true); - } - } else { - resolve(false); - } - }).fail(reject); - }); - } - - setTitle(title) { - this.title.text(title); - } -} - +const registerModule = require('../moduleRegister'); + +class CreatePageWidget { + constructor(dom) { + this.baseDom = dom; + this.pageUrl = null; + this.api = new mw.Api(); + + this.hasError = false; + + this.initDom(); + } + + initDom() { + this.pageNameInput = new OO.ui.TextInputWidget({ + placeholder: mw.message('isekai-createpage-page-title').parse(), + }); + this.pageNameInput.on('enter', this.createPage.bind(this)); + this.pageNameInput.on('change', this.onPageNameChange.bind(this)); + + this.createButton = new OO.ui.ButtonWidget({ + label: mw.message('isekai-createpage-create-page-button').parse(), + flags: [ + 'primary', + 'progressive' + ] + }); + this.createButton.on('click', this.createPage.bind(this)); + + this.formGroup = new OO.ui.ActionFieldLayout(this.pageNameInput, this.createButton, { + align: 'top' + }); + this.baseDom.find('.card-body .card-content').append(this.formGroup.$element); + } + + createPage() { + let title = this.pageNameInput.getValue(); + if (this.hasError) { + this.clearError(); //清除errors + } + if (title.trim().length > 0) { + this.createButton.setDisabled(true); + this.pageExists(title).then((exists) => { + if (exists) { + this.createButton.setDisabled(false); + this.setError(mw.message('isekai-createpage-page-exists').parse()); //提示页面已经存在 + } else { + let targetUrl = mw.util.getUrl(title, { veaction: 'edit' }); + this.formGroup.setSuccess([ + mw.message('isekai-createpage-redirecting').parse() + ]); //提示正在跳转 + location.href = targetUrl; + } + }); + } else { + this.setError(mw.message('isekai-createpage-title-empty').parse()); + } + } + + onPageNameChange() { + if (this.hasError) { + this.clearError(); + } + + let value = this.pageNameInput.getValue(); + if (value.indexOf(':') !== -1 || value.indexOf('`') !== -1) { + let range = this.pageNameInput.getRange(); + value = value.replace(/:/g, ':').replace(/`/g, '·'); + this.pageNameInput.setValue(value); + this.pageNameInput.selectRange(range.from, range.to); + } + } + + setError(msg) { + this.formGroup.setErrors([msg]); //提示页面已经存在 + this.hasError = true; + } + + clearError() { + this.formGroup.setErrors([]); + this.hasError = false; + } + + pageExists(title) { + return new Promise((resolve, reject) => { + this.api.get({ + action: 'query', + titles: title, + }).done((data) => { + if (data.query && data.query.pages) { + if (data.query.pages["-1"]) { + resolve(false); + } else { + resolve(true); + } + } else { + resolve(false); + } + }).fail(reject); + }); + } + + setTitle(title) { + this.title.text(title); + } +} + registerModule('ui.CreatePageWidget', CreatePageWidget); \ No newline at end of file diff --git a/src/discover/ext.isekai.discover.js b/src/discover/ext.isekai.discover.js index 91bc1c5..59c305e 100644 --- a/src/discover/ext.isekai.discover.js +++ b/src/discover/ext.isekai.discover.js @@ -1,145 +1,145 @@ -const registerModule = require('../moduleRegister'); - -class DiscoverWidget { - constructor(dom){ - this.baseDom = dom; - this.pageUrl = null; - this.api = new mw.Api(); - - this.initDom(); - this.refreshPage(); - } - - initDom(){ - this.reloadButton = new OO.ui.ButtonWidget({ - icon: 'reload', - label: mw.message('isekai-discover-change-btn').parse(), - }); - this.reloadButton.on('click', this.refreshPage.bind(this)); - - this.readMoreButton = new OO.ui.ButtonWidget({ - icon: 'ellipsis', - label: mw.message('isekai-discover-readmore-btn').parse(), - flags: [ - 'primary', - 'progressive' - ] - }); - this.readMoreButton.on('click', this.showMore.bind(this)); - - this.loadingBar = new OO.ui.ProgressBarWidget({ - progress: false, - }); - this.baseDom.find('.card-body .loading .spinner').append(this.loadingBar.$element); - - this.buttonGroup = new OO.ui.ButtonGroupWidget({ - items: [this.reloadButton, this.readMoreButton] - }); - this.baseDom.find('.card-header .card-header-buttons').append(this.buttonGroup.$element); - this.loading = this.baseDom.find('.card-body .loading'); - this.title = this.baseDom.find('.card-body .card-title'); - this.contentContainer = this.baseDom.find('.card-body .card-content'); - } - - showMore(){ - if(this.pageUrl){ //页面存在就跳转 - window.open(this.pageUrl); - } - } - - refreshPage(){ - this.pageUrl = null; - this.clearContent(); - this.showLoading(); - this.getRandomPage().then((title) => { - this.loadPage(title); - }); - } - - setTitle(title){ - this.title.text(title); - } - - showLoading(){ - this.loading.show(); - this.contentContainer.hide(); - } - - hideLoading(){ - this.loading.hide(); - this.contentContainer.show(); - } - - clearContent(){ - this.contentContainer.children().remove(); - } - - setContent(dom){ - this.hideLoading(); - this.clearContent(); - this.contentContainer.append(dom); - } - - showError(msg){ - let errorMsg = new OO.ui.MessageWidget( { - type: 'error', - label: msg, - }); - - this.setContent(errorMsg.$element); - } - - getRandomPage(){ - return new Promise((resolve, reject) => { - this.api.get({ - action: 'query', - list: 'random', - rnlimit: 1, - rnnamespace: 0, - }).done((data) => { - if(data.query && data.query.random && data.query.random.length > 0){ - let title = data.query.random[0].title; - this.setTitle(title); - resolve(title); - } else if(data.error){ - this.showError(data.error.info); - } else { - this.showError(mw.message('isekai-discover-error-cannotload').parse()); - } - }); - }); - } - - parseHTMLString(txt) { - try { - let parser = new DOMParser(); - let xmlDoc = parser.parseFromString(txt, "text/html"); - return xmlDoc; - } catch(e) { - console.error(e.message); - } - return null; - } - - loadPage(title){ - let url = mw.util.getUrl(title); - this.pageUrl = url; - if(url.indexOf('?') >= 0){ - url += '&'; - } else { - url += '?' - } - url += 'action=render'; - $.get(url, (str) => { - let dom = $(this.parseHTMLString(str)); - let content = dom.find('.mw-parser-output'); - if(content.length > 0){ - //删除目录 - content.find('.toc').remove(); - this.setContent(content); - } - }, 'html'); - } -} - +const registerModule = require('../moduleRegister'); + +class DiscoverWidget { + constructor(dom){ + this.baseDom = dom; + this.pageUrl = null; + this.api = new mw.Api(); + + this.initDom(); + this.refreshPage(); + } + + initDom(){ + this.reloadButton = new OO.ui.ButtonWidget({ + icon: 'reload', + label: mw.message('isekai-discover-change-btn').parse(), + }); + this.reloadButton.on('click', this.refreshPage.bind(this)); + + this.readMoreButton = new OO.ui.ButtonWidget({ + icon: 'ellipsis', + label: mw.message('isekai-discover-readmore-btn').parse(), + flags: [ + 'primary', + 'progressive' + ] + }); + this.readMoreButton.on('click', this.showMore.bind(this)); + + this.loadingBar = new OO.ui.ProgressBarWidget({ + progress: false, + }); + this.baseDom.find('.card-body .loading .spinner').append(this.loadingBar.$element); + + this.buttonGroup = new OO.ui.ButtonGroupWidget({ + items: [this.reloadButton, this.readMoreButton] + }); + this.baseDom.find('.card-header .card-header-buttons').append(this.buttonGroup.$element); + this.loading = this.baseDom.find('.card-body .loading'); + this.title = this.baseDom.find('.card-body .card-title'); + this.contentContainer = this.baseDom.find('.card-body .card-content'); + } + + showMore(){ + if(this.pageUrl){ //页面存在就跳转 + window.open(this.pageUrl); + } + } + + refreshPage(){ + this.pageUrl = null; + this.clearContent(); + this.showLoading(); + this.getRandomPage().then((title) => { + this.loadPage(title); + }); + } + + setTitle(title){ + this.title.text(title); + } + + showLoading(){ + this.loading.show(); + this.contentContainer.hide(); + } + + hideLoading(){ + this.loading.hide(); + this.contentContainer.show(); + } + + clearContent(){ + this.contentContainer.children().remove(); + } + + setContent(dom){ + this.hideLoading(); + this.clearContent(); + this.contentContainer.append(dom); + } + + showError(msg){ + let errorMsg = new OO.ui.MessageWidget( { + type: 'error', + label: msg, + }); + + this.setContent(errorMsg.$element); + } + + getRandomPage(){ + return new Promise((resolve, reject) => { + this.api.get({ + action: 'query', + list: 'random', + rnlimit: 1, + rnnamespace: 0, + }).done((data) => { + if(data.query && data.query.random && data.query.random.length > 0){ + let title = data.query.random[0].title; + this.setTitle(title); + resolve(title); + } else if(data.error){ + this.showError(data.error.info); + } else { + this.showError(mw.message('isekai-discover-error-cannotload').parse()); + } + }); + }); + } + + parseHTMLString(txt) { + try { + let parser = new DOMParser(); + let xmlDoc = parser.parseFromString(txt, "text/html"); + return xmlDoc; + } catch(e) { + console.error(e.message); + } + return null; + } + + loadPage(title){ + let url = mw.util.getUrl(title); + this.pageUrl = url; + if(url.indexOf('?') >= 0){ + url += '&'; + } else { + url += '?' + } + url += 'action=render'; + $.get(url, (str) => { + let dom = $(this.parseHTMLString(str)); + let content = dom.find('.mw-parser-output'); + if(content.length > 0){ + //删除目录 + content.find('.toc').remove(); + this.setContent(content); + } + }, 'html'); + } +} + registerModule('ui.DiscoverWidget', DiscoverWidget); \ No newline at end of file diff --git a/src/moduleRegister.js b/src/moduleRegister.js index b831879..6d80974 100644 --- a/src/moduleRegister.js +++ b/src/moduleRegister.js @@ -1,19 +1,19 @@ -function register(namespace, func) { - let nsList = namespace.split('.'); - - if(!('isekai' in window)){ - window.isekai = {}; - } - - let obj = window.isekai; - for(var i = 0; i < nsList.length - 1; i ++){ - let ns = nsList[i]; - if(!(ns in obj)){ - obj[ns] = {}; - } - obj = obj[ns]; - } - obj[nsList[i]] = func; -} - +function register(namespace, func) { + let nsList = namespace.split('.'); + + if(!('isekai' in window)){ + window.isekai = {}; + } + + let obj = window.isekai; + for(var i = 0; i < nsList.length - 1; i ++){ + let ns = nsList[i]; + if(!(ns in obj)){ + obj[ns] = {}; + } + obj = obj[ns]; + } + obj[nsList[i]] = func; +} + module.exports = register; \ No newline at end of file diff --git a/src/previewCard/ext.isekai.previewCard.js b/src/previewCard/ext.isekai.previewCard.js index b6c9f2a..cd4b94a 100644 --- a/src/previewCard/ext.isekai.previewCard.js +++ b/src/previewCard/ext.isekai.previewCard.js @@ -1,27 +1,27 @@ -const registerModule = require('../moduleRegister'); - -class PreviewCardWidget { - constructor(dom) { - this.baseDom = dom; - this.pageName = null; - this.api = new mw.Api(); - - this.loaded = false; - - this.initDom(); - } - - initDom() { - this.pageName = this.baseDom.attr('data-title'); - - this.title = this.baseDom.find('card-title'); - } - - load() { - if(this.loaded) return; - - - } -} - +const registerModule = require('../moduleRegister'); + +class PreviewCardWidget { + constructor(dom) { + this.baseDom = dom; + this.pageName = null; + this.api = new mw.Api(); + + this.loaded = false; + + this.initDom(); + } + + initDom() { + this.pageName = this.baseDom.attr('data-title'); + + this.title = this.baseDom.find('card-title'); + } + + load() { + if(this.loaded) return; + + + } +} + registerModule('ui.PreviewCardWidget', PreviewCardWidget); \ No newline at end of file diff --git a/src/tile/include/default-icons.less b/src/tile/include/default-icons.less index 38ae71d..464a21b 100644 --- a/src/tile/include/default-icons.less +++ b/src/tile/include/default-icons.less @@ -1,63 +1,63 @@ -@playIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/play.svg'); -@loopIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/loop.svg'); -@stopIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/stop.svg'); -@pauseIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/pause.svg'); -@muteIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-mute.svg'); -@volumeLowIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-low.svg'); -@volumeMediumIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-medium.svg'); -@volumeHighIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-high.svg'); -@enlargeIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/enlarge.svg'); -@shrinkIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/shrink.svg'); -@playlistIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/list.svg'); -@nextIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/next.svg'); -@prevIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/prev.svg'); -@firstIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/first.svg'); -@lastIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/last.svg'); -@forwardIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/forward.svg'); -@backwardIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/backward.svg'); -@shareIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/share.svg'); -@equalizerIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/equalizer.svg'); -@ejectIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/eject.svg'); -@shuffleIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/shuffle.svg'); -@randomIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/dice.svg'); - -@playIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/play.svg'); -@loopIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/loop.svg'); -@stopIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/stop.svg'); -@pauseIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/pause.svg'); -@muteIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-mute.svg'); -@volumeLowIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-low.svg'); -@volumeMediumIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-medium.svg'); -@volumeHighIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-high.svg'); -@enlargeIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/enlarge.svg'); -@shrinkIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/shrink.svg'); -@playlistIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/list.svg'); -@nextIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/next.svg'); -@prevIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/prev.svg'); -@firstIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/first.svg'); -@lastIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/last.svg'); -@forwardIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/forward.svg'); -@backwardIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/backward.svg'); -@shareIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/share.svg'); -@equalizerIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/equalizer.svg'); -@ejectIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/eject.svg'); -@shuffleIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/shuffle.svg'); -@randomIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/dice.svg'); - -@checkIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/checkmark.svg'); -@crossIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/cross.svg'); -@searchIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/search.svg'); -@eyeIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/eye.svg'); -@plusIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/plus.svg'); -@minusIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/minus.svg'); -@helpIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/help.svg'); -@leftArrowIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/arrow-left.svg'); -@rightArrowIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/arrow-right.svg'); -@calendarIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/calendar.svg'); -@clockIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/clock.svg'); -@menuIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/menu.svg'); -@uploadIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/upload.svg'); -@pencilIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/pencil.svg'); -@chevronLeftIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/chevron-left.svg'); -@chevronRightIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/chevron-right.svg'); - +@playIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/play.svg'); +@loopIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/loop.svg'); +@stopIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/stop.svg'); +@pauseIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/pause.svg'); +@muteIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-mute.svg'); +@volumeLowIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-low.svg'); +@volumeMediumIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-medium.svg'); +@volumeHighIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/volume-high.svg'); +@enlargeIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/enlarge.svg'); +@shrinkIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/shrink.svg'); +@playlistIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/list.svg'); +@nextIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/next.svg'); +@prevIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/prev.svg'); +@firstIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/first.svg'); +@lastIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/last.svg'); +@forwardIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/forward.svg'); +@backwardIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/backward.svg'); +@shareIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/share.svg'); +@equalizerIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/equalizer.svg'); +@ejectIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/eject.svg'); +@shuffleIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/shuffle.svg'); +@randomIconLight: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/light/dice.svg'); + +@playIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/play.svg'); +@loopIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/loop.svg'); +@stopIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/stop.svg'); +@pauseIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/pause.svg'); +@muteIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-mute.svg'); +@volumeLowIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-low.svg'); +@volumeMediumIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-medium.svg'); +@volumeHighIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/volume-high.svg'); +@enlargeIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/enlarge.svg'); +@shrinkIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/shrink.svg'); +@playlistIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/list.svg'); +@nextIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/next.svg'); +@prevIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/prev.svg'); +@firstIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/first.svg'); +@lastIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/last.svg'); +@forwardIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/forward.svg'); +@backwardIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/backward.svg'); +@shareIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/share.svg'); +@equalizerIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/equalizer.svg'); +@ejectIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/eject.svg'); +@shuffleIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/shuffle.svg'); +@randomIconDark: data-uri('image/svg+xml;charset=UTF-8', 'source/images/media/dark/dice.svg'); + +@checkIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/checkmark.svg'); +@crossIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/cross.svg'); +@searchIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/search.svg'); +@eyeIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/eye.svg'); +@plusIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/plus.svg'); +@minusIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/minus.svg'); +@helpIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/help.svg'); +@leftArrowIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/arrow-left.svg'); +@rightArrowIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/arrow-right.svg'); +@calendarIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/calendar.svg'); +@clockIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/clock.svg'); +@menuIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/menu.svg'); +@uploadIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/upload.svg'); +@pencilIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/pencil.svg'); +@chevronLeftIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/chevron-left.svg'); +@chevronRightIcon: data-uri('image/svg+xml;charset=UTF-8', 'source/images/apps/chevron-right.svg'); + diff --git a/src/tile/include/mixins.less b/src/tile/include/mixins.less index 24f59c5..bf6ea35 100644 --- a/src/tile/include/mixins.less +++ b/src/tile/include/mixins.less @@ -1,538 +1,538 @@ -@import (once) "vars"; - -.show-element() { - //display: initial; - opacity: 1; - .scale(1); -} - -.hide-element() { - .scale(0); - opacity: 0; - //display: none; -} - -.debug() { - outline: 1px dotted red!important; - min-width: 1px; - min-height: 1px; -} - -.clear() { - &::after { - display: block; - clear: both; - content: ""; - } -} - -.set-relative() { - display: block; - position: relative; -} - -.set-absolute() { - position: absolute; -} - -.set-flex() { - display: flex; -} - -.reset-list() { - list-style: none inside; - margin: 0; - padding: 0; - position: relative; -} - -.px2rem(@attr: width; @size: 16) { - .get-values(length(@size)); - .get-values(@s, @i: 1) when (@i =< length(@size)) { - @current_value: extract(@size, @i); - - & when not(@current_value = 0) { - @{attr}+_: unit( @current_value / 16, rem ); - } - - & when (@current_value = 0) { - @{attr}+_: 0; - } - - .get-values(@s, @i + 1); - } -} - -.rem2px(@attr: width; @size: 16) { - .get-values(length(@size)); - .get-values(@s, @i: 1) when (@i =< length(@size)) { - @current_value: extract(@size, @i); - - & when not(@current_value = 0) { - @{attr}+_: unit( 16 * @current_value, px ); - } - - & when (@current_value = 0) { - @{attr}+_: 0; - } - - .get-values(@s, @i + 1); - } -} - -.pt2px(@attr: width; @size: 16) { - .get-values(length(@size)); - .get-values(@s, @i: 1) when (@i =< length(@size)) { - @current_value: extract(@size, @i); - - & when not(@current_value = 0) { - @{attr}+_: unit( round(@current_value * 1.333333) , px ); - } - - & when (@current_value = 0) { - @{attr}+_: 0; - } - - .get-values(@s, @i + 1); - } -} - -.px2pt(@attr: width; @size: 16) { - .get-values(length(@size)); - .get-values(@s, @i: 1) when (@i =< length(@size)) { - @current_value: extract(@size, @i); - - & when not(@current_value = 0) { - @{attr}+_: unit( round(.75 * @current_value), pt ); - } - - & when (@current_value = 0) { - @{attr}+_: 0; - } - - .get-values(@s, @i + 1); - } -} - -.pt2rem(@attr: width; @size: 16){ - .get-values(length(@size)); - .get-values(@s, @i: 1) when (@i =< length(@size)) { - @current_value: extract(@size, @i); - - & when not(@current_value = 0) { - @{attr}+_: unit( round(@current_value * 1.333333 / 16), rem ); - } - - & when (@current_value = 0) { - @{attr}+_: 0; - } - - .get-values(@s, @i + 1); - } -} - -.rem2pt(@attr: width; @size: 16){ - .get-values(length(@size)); - .get-values(@s, @i: 1) when (@i =< length(@size)) { - @current_value: extract(@size, @i); - - & when not(@current_value = 0) { - @{attr}+_: unit( round(.75 * 16 * @current_value), pt ); - } - - & when (@current_value = 0) { - @{attr}+_: 0; - } - - .get-values(@s, @i + 1); - } -} - -.square(@size: 0, @unit) { - width: unit(@size, @unit); - height: unit(@size, @unit); -} - -.circle(@size: 0, @unit) { - width: unit(@size, @unit); - height: unit(@size, @unit); - border-radius: 50%; -} - -.halo() { - &::after { - display: block; - content: ""; - position: absolute; - .circle(3.125, rem); - background-color: rgba(187, 187, 187, 0.5); - opacity: .3; - top: 50%; - left: 50%; - .px2rem(margin-top, -25px); - .px2rem(margin-left, -25px); - } -} - -.animate(@params){ - animation: @params; -} - -.transition-scheme(@t) { - transition: @t; -} - -.collapse() { - overflow: hidden; - max-height: 0; - transition: @transition-collapse; - position: relative; -} - -.expand() { - max-height: 1000px !important; - transition: @transition-collapse !important; - transition-duration: 1s !important; - overflow: visible!important; -} - -.perspective(@perspective) { - transform+_: perspective(@perspective); -} -.rotate(@degrees) { - transform+_: rotate(@degrees); -} -.rotateX(@degrees) { - transform+_: rotateX(@degrees); -} -.rotateY(@degrees) { - transform+_: rotateY(@degrees); -} -.rotateZ(@degrees) { - transform+_: rotateZ(@degrees); -} -.scale(@ratio) { - transform+_: scale(@ratio); -} -.scaleX(@ratio) { - transform+_: scaleX(@ratio); -} -.scaleY(@ratio) { - transform+_: scaleY(@ratio); -} -.translate(@x: 0, @y: 0) { - transform+_: translate(@x, @y); -} -.skew(@x: 0, @y: 0) { - transform+_: skew(@x, @y); -} -.skewX(@x: 0) { - transform+_: skewX(@x); -} -.skewY(@y: 0) { - transform+_: skewY(@y); -} -.translate3d(@x: 0, @y: 0, @z: 0) { - transform+_: translate3d(@x, @y, @z); -} - -.transformOrigin(@origin) { - transform-origin: @origin; -} - -.transition(@time: 1s, @func: ease, @target: all){ - transition: @target @time @func; -} - -.translateX(@x: 0) { - transform+_: translateX(@x); -} -.translateY(@y: 0) { - transform+_: translateY(@y); -} - -.shadow(@x, @y, @blur, @stretch, @color, @alpha: .4){ - box-shadow+: @x @y @blur @stretch rgba(red(@color), green(@color), blue(@color), @alpha); -} - -.default-shadow() { - //.shadow(2px, 2px, 5px, 0, @black); - box-shadow: 2px 2px 2px 0 rgba(red(@ribbonDropdownShadow), green(@ribbonDropdownShadow), blue(@ribbonDropdownShadow), .7), - -.5px 0 1px 0 rgba(red(@ribbonDropdownShadow), green(@ribbonDropdownShadow), blue(@ribbonDropdownShadow), .7); -} - -.win-shadow(){ - box-shadow+: 0 0 5px 0 rgba(0, 0, 0, 0.3); -} - -.shadow(@size) when (@size = 0) { - box-shadow: none; -} - -.shadow(@size) when (@size = 1) { - box-shadow+: 0 2px 10px 0 rgba(0, 0, 0, 0.16), 0 2px 5px 0 rgba(0, 0, 0, 0.26); -} - -.shadow(@size) when (@size = 2) { - box-shadow+: 0 6px 20px 0 rgba(0, 0, 0, 0.19), 0 8px 17px 0 rgba(0, 0, 0, 0.2); -} - -.shadow(@size) when (@size = 3) { - box-shadow+: 0 17px 50px 0 rgba(0, 0, 0, 0.19), 0 12px 15px 0 rgba(0, 0, 0, 0.24); -} - -.shadow(@size) when (@size = 4) { - box-shadow+: 0 25px 55px 0 rgba(0, 0, 0, 0.21), 0 16px 28px 0 rgba(0, 0, 0, 0.22); -} - -.shadow(@size) when (@size = 5) { - box-shadow+: 0 40px 77px 0 rgba(0, 0, 0, 0.22), 0 27px 24px 0 rgba(0, 0, 0, 0.2); -} - -.shadow-right() { - box-shadow+: 5px 0 7px -6px rgba(0,0,0,0.75); -} - -.shadow-left() { - box-shadow+: -5px 0 7px -6px rgba(0,0,0,0.75); -} - -.text-ellipsis() { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.focus-show(@color){ - box-shadow+: 0 0 0 3px rgba(red(@color), green(@color), blue(@color), 0.45); -} - -.neb(@size: 1rem, @shift: .625rem) { - &::before { - display: block; - position: absolute; - content: ""; - width: @size; - height: @size; - background-color: inherit; - border: 1px solid transparent; - border-right-color: inherit; - border-bottom-color: inherit; - } - - &.neb-s { - &::before { - top: 100%; - left: 50%; - .translateX(-50%); - .translateY(-50%); - .rotate(45deg); - } - } - - &.neb-sw { - &::before { - top: 100%; - left: @shift; - .translateY(-50%); - .rotate(45deg); - } - } - - &.neb-se { - &::before { - top: 100%; - right: @shift; - .translateY(-50%); - .rotate(45deg); - } - } - - &.neb-n { - &::before { - top: 0; - left: 50%; - .translateX(-50%); - .translateY(-50%); - .rotate(-135deg); - } - } - - &.neb-nw { - &::before { - top: 0; - left: @shift; - .translateY(-50%); - .rotate(-135deg); - } - } - - &.neb-ne { - &::before { - top: 0; - right: @shift; - .translateY(-50%); - .rotate(-135deg); - } - } - - &.neb-en { - &::before { - top: @shift; - right: 0; - .translateX(50%); - .rotate(-45deg); - } - } - - &.neb-e { - &::before { - top: 50%; - right: 0; - .translateX(50%); - .translateY(-50%); - .rotate(-45deg); - } - } - - &.neb-es { - &::before { - bottom: @shift; - right: 0; - .translateX(50%); - .rotate(-45deg); - } - } - - &.neb-wn { - &::before { - top: @shift; - left: 0; - .translateX(-50%); - .rotate(135deg); - } - } - - &.neb-w { - &::before { - top: 50%; - left: 0; - .translateX(-50%); - .translateY(-50%); - .rotate(135deg); - } - } - - &.neb-ws { - &::before { - bottom: @shift; - left: 0; - .translateX(-50%); - .rotate(135deg); - } - } -} - -.neb2(@size: 1rem; @shift: .625rem; @color: @white){ - &::before { - display: block; - content: ""; - width: 0; - height: 0; - border-style: solid; - position: absolute; - } - - &.neb-s { - &::before { - border-width: @size @size 0 @size; - border-color: @color transparent transparent transparent; - top: 100%; - left: 50%; - .translateX(-50%); - .translateY(-50%); - } - } - - &.neb-n { - &::before { - border-width: 0 @size @size @size; - border-color: transparent transparent @color transparent; - top: 0; - left: 50%; - .translateX(-50%); - .translateY(-50%); - } - } - - &.neb-e { - &::before { - border-width: @size 0 @size @size; - border-color: transparent transparent transparent @color; - top: 50%; - right: 0; - .translateX(50%); - .translateY(-50%); - } - } - - &.neb-w { - &::before { - border-width: @size @size @size 0; - border-color: transparent @color transparent transparent; - top: 50%; - left: 0; - .translateX(-50%); - .translateY(-50%); - } - } -} - -.toggle() { - position: relative; - cursor: pointer; - padding-right: 1.5rem!important; - user-select: none; - - &::before { - display: block; - position: absolute; - vertical-align: middle; - color: transparent; - font-size: 0; - content: ""; - .px2rem(height, 5px); - .px2rem(width, 5px); - background-color: @transparent ; - border-left: 1px solid; - border-bottom: 1px solid; - border-color: @dark; - top: 50%; - left: 100%; - margin-left: -1rem; - margin-top: -.1625rem; - z-index: 2; - transform: rotate(-45deg); - transition: @transition-short; - transform-origin: center center 1px; - } -} - -.hideElement(@el){ - @{el} { - width: 1px; - height: 1px; - position: absolute; - top: 0; - left: 0; - opacity: 0; - } -} - -.hideScrollBars() { - &::-webkit-scrollbar { - display: none!important; - } - -ms-overflow-style: -ms-autohiding-scrollbar; - overflow: -moz-scrollbars-none; +@import (once) "vars"; + +.show-element() { + //display: initial; + opacity: 1; + .scale(1); +} + +.hide-element() { + .scale(0); + opacity: 0; + //display: none; +} + +.debug() { + outline: 1px dotted red!important; + min-width: 1px; + min-height: 1px; +} + +.clear() { + &::after { + display: block; + clear: both; + content: ""; + } +} + +.set-relative() { + display: block; + position: relative; +} + +.set-absolute() { + position: absolute; +} + +.set-flex() { + display: flex; +} + +.reset-list() { + list-style: none inside; + margin: 0; + padding: 0; + position: relative; +} + +.px2rem(@attr: width; @size: 16) { + .get-values(length(@size)); + .get-values(@s, @i: 1) when (@i =< length(@size)) { + @current_value: extract(@size, @i); + + & when not(@current_value = 0) { + @{attr}+_: unit( @current_value / 16, rem ); + } + + & when (@current_value = 0) { + @{attr}+_: 0; + } + + .get-values(@s, @i + 1); + } +} + +.rem2px(@attr: width; @size: 16) { + .get-values(length(@size)); + .get-values(@s, @i: 1) when (@i =< length(@size)) { + @current_value: extract(@size, @i); + + & when not(@current_value = 0) { + @{attr}+_: unit( 16 * @current_value, px ); + } + + & when (@current_value = 0) { + @{attr}+_: 0; + } + + .get-values(@s, @i + 1); + } +} + +.pt2px(@attr: width; @size: 16) { + .get-values(length(@size)); + .get-values(@s, @i: 1) when (@i =< length(@size)) { + @current_value: extract(@size, @i); + + & when not(@current_value = 0) { + @{attr}+_: unit( round(@current_value * 1.333333) , px ); + } + + & when (@current_value = 0) { + @{attr}+_: 0; + } + + .get-values(@s, @i + 1); + } +} + +.px2pt(@attr: width; @size: 16) { + .get-values(length(@size)); + .get-values(@s, @i: 1) when (@i =< length(@size)) { + @current_value: extract(@size, @i); + + & when not(@current_value = 0) { + @{attr}+_: unit( round(.75 * @current_value), pt ); + } + + & when (@current_value = 0) { + @{attr}+_: 0; + } + + .get-values(@s, @i + 1); + } +} + +.pt2rem(@attr: width; @size: 16){ + .get-values(length(@size)); + .get-values(@s, @i: 1) when (@i =< length(@size)) { + @current_value: extract(@size, @i); + + & when not(@current_value = 0) { + @{attr}+_: unit( round(@current_value * 1.333333 / 16), rem ); + } + + & when (@current_value = 0) { + @{attr}+_: 0; + } + + .get-values(@s, @i + 1); + } +} + +.rem2pt(@attr: width; @size: 16){ + .get-values(length(@size)); + .get-values(@s, @i: 1) when (@i =< length(@size)) { + @current_value: extract(@size, @i); + + & when not(@current_value = 0) { + @{attr}+_: unit( round(.75 * 16 * @current_value), pt ); + } + + & when (@current_value = 0) { + @{attr}+_: 0; + } + + .get-values(@s, @i + 1); + } +} + +.square(@size: 0, @unit) { + width: unit(@size, @unit); + height: unit(@size, @unit); +} + +.circle(@size: 0, @unit) { + width: unit(@size, @unit); + height: unit(@size, @unit); + border-radius: 50%; +} + +.halo() { + &::after { + display: block; + content: ""; + position: absolute; + .circle(3.125, rem); + background-color: rgba(187, 187, 187, 0.5); + opacity: .3; + top: 50%; + left: 50%; + .px2rem(margin-top, -25px); + .px2rem(margin-left, -25px); + } +} + +.animate(@params){ + animation: @params; +} + +.transition-scheme(@t) { + transition: @t; +} + +.collapse() { + overflow: hidden; + max-height: 0; + transition: @transition-collapse; + position: relative; +} + +.expand() { + max-height: 1000px !important; + transition: @transition-collapse !important; + transition-duration: 1s !important; + overflow: visible!important; +} + +.perspective(@perspective) { + transform+_: perspective(@perspective); +} +.rotate(@degrees) { + transform+_: rotate(@degrees); +} +.rotateX(@degrees) { + transform+_: rotateX(@degrees); +} +.rotateY(@degrees) { + transform+_: rotateY(@degrees); +} +.rotateZ(@degrees) { + transform+_: rotateZ(@degrees); +} +.scale(@ratio) { + transform+_: scale(@ratio); +} +.scaleX(@ratio) { + transform+_: scaleX(@ratio); +} +.scaleY(@ratio) { + transform+_: scaleY(@ratio); +} +.translate(@x: 0, @y: 0) { + transform+_: translate(@x, @y); +} +.skew(@x: 0, @y: 0) { + transform+_: skew(@x, @y); +} +.skewX(@x: 0) { + transform+_: skewX(@x); +} +.skewY(@y: 0) { + transform+_: skewY(@y); +} +.translate3d(@x: 0, @y: 0, @z: 0) { + transform+_: translate3d(@x, @y, @z); +} + +.transformOrigin(@origin) { + transform-origin: @origin; +} + +.transition(@time: 1s, @func: ease, @target: all){ + transition: @target @time @func; +} + +.translateX(@x: 0) { + transform+_: translateX(@x); +} +.translateY(@y: 0) { + transform+_: translateY(@y); +} + +.shadow(@x, @y, @blur, @stretch, @color, @alpha: .4){ + box-shadow+: @x @y @blur @stretch rgba(red(@color), green(@color), blue(@color), @alpha); +} + +.default-shadow() { + //.shadow(2px, 2px, 5px, 0, @black); + box-shadow: 2px 2px 2px 0 rgba(red(@ribbonDropdownShadow), green(@ribbonDropdownShadow), blue(@ribbonDropdownShadow), .7), + -.5px 0 1px 0 rgba(red(@ribbonDropdownShadow), green(@ribbonDropdownShadow), blue(@ribbonDropdownShadow), .7); +} + +.win-shadow(){ + box-shadow+: 0 0 5px 0 rgba(0, 0, 0, 0.3); +} + +.shadow(@size) when (@size = 0) { + box-shadow: none; +} + +.shadow(@size) when (@size = 1) { + box-shadow+: 0 2px 10px 0 rgba(0, 0, 0, 0.16), 0 2px 5px 0 rgba(0, 0, 0, 0.26); +} + +.shadow(@size) when (@size = 2) { + box-shadow+: 0 6px 20px 0 rgba(0, 0, 0, 0.19), 0 8px 17px 0 rgba(0, 0, 0, 0.2); +} + +.shadow(@size) when (@size = 3) { + box-shadow+: 0 17px 50px 0 rgba(0, 0, 0, 0.19), 0 12px 15px 0 rgba(0, 0, 0, 0.24); +} + +.shadow(@size) when (@size = 4) { + box-shadow+: 0 25px 55px 0 rgba(0, 0, 0, 0.21), 0 16px 28px 0 rgba(0, 0, 0, 0.22); +} + +.shadow(@size) when (@size = 5) { + box-shadow+: 0 40px 77px 0 rgba(0, 0, 0, 0.22), 0 27px 24px 0 rgba(0, 0, 0, 0.2); +} + +.shadow-right() { + box-shadow+: 5px 0 7px -6px rgba(0,0,0,0.75); +} + +.shadow-left() { + box-shadow+: -5px 0 7px -6px rgba(0,0,0,0.75); +} + +.text-ellipsis() { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.focus-show(@color){ + box-shadow+: 0 0 0 3px rgba(red(@color), green(@color), blue(@color), 0.45); +} + +.neb(@size: 1rem, @shift: .625rem) { + &::before { + display: block; + position: absolute; + content: ""; + width: @size; + height: @size; + background-color: inherit; + border: 1px solid transparent; + border-right-color: inherit; + border-bottom-color: inherit; + } + + &.neb-s { + &::before { + top: 100%; + left: 50%; + .translateX(-50%); + .translateY(-50%); + .rotate(45deg); + } + } + + &.neb-sw { + &::before { + top: 100%; + left: @shift; + .translateY(-50%); + .rotate(45deg); + } + } + + &.neb-se { + &::before { + top: 100%; + right: @shift; + .translateY(-50%); + .rotate(45deg); + } + } + + &.neb-n { + &::before { + top: 0; + left: 50%; + .translateX(-50%); + .translateY(-50%); + .rotate(-135deg); + } + } + + &.neb-nw { + &::before { + top: 0; + left: @shift; + .translateY(-50%); + .rotate(-135deg); + } + } + + &.neb-ne { + &::before { + top: 0; + right: @shift; + .translateY(-50%); + .rotate(-135deg); + } + } + + &.neb-en { + &::before { + top: @shift; + right: 0; + .translateX(50%); + .rotate(-45deg); + } + } + + &.neb-e { + &::before { + top: 50%; + right: 0; + .translateX(50%); + .translateY(-50%); + .rotate(-45deg); + } + } + + &.neb-es { + &::before { + bottom: @shift; + right: 0; + .translateX(50%); + .rotate(-45deg); + } + } + + &.neb-wn { + &::before { + top: @shift; + left: 0; + .translateX(-50%); + .rotate(135deg); + } + } + + &.neb-w { + &::before { + top: 50%; + left: 0; + .translateX(-50%); + .translateY(-50%); + .rotate(135deg); + } + } + + &.neb-ws { + &::before { + bottom: @shift; + left: 0; + .translateX(-50%); + .rotate(135deg); + } + } +} + +.neb2(@size: 1rem; @shift: .625rem; @color: @white){ + &::before { + display: block; + content: ""; + width: 0; + height: 0; + border-style: solid; + position: absolute; + } + + &.neb-s { + &::before { + border-width: @size @size 0 @size; + border-color: @color transparent transparent transparent; + top: 100%; + left: 50%; + .translateX(-50%); + .translateY(-50%); + } + } + + &.neb-n { + &::before { + border-width: 0 @size @size @size; + border-color: transparent transparent @color transparent; + top: 0; + left: 50%; + .translateX(-50%); + .translateY(-50%); + } + } + + &.neb-e { + &::before { + border-width: @size 0 @size @size; + border-color: transparent transparent transparent @color; + top: 50%; + right: 0; + .translateX(50%); + .translateY(-50%); + } + } + + &.neb-w { + &::before { + border-width: @size @size @size 0; + border-color: transparent @color transparent transparent; + top: 50%; + left: 0; + .translateX(-50%); + .translateY(-50%); + } + } +} + +.toggle() { + position: relative; + cursor: pointer; + padding-right: 1.5rem!important; + user-select: none; + + &::before { + display: block; + position: absolute; + vertical-align: middle; + color: transparent; + font-size: 0; + content: ""; + .px2rem(height, 5px); + .px2rem(width, 5px); + background-color: @transparent ; + border-left: 1px solid; + border-bottom: 1px solid; + border-color: @dark; + top: 50%; + left: 100%; + margin-left: -1rem; + margin-top: -.1625rem; + z-index: 2; + transform: rotate(-45deg); + transition: @transition-short; + transform-origin: center center 1px; + } +} + +.hideElement(@el){ + @{el} { + width: 1px; + height: 1px; + position: absolute; + top: 0; + left: 0; + opacity: 0; + } +} + +.hideScrollBars() { + &::-webkit-scrollbar { + display: none!important; + } + -ms-overflow-style: -ms-autohiding-scrollbar; + overflow: -moz-scrollbars-none; } \ No newline at end of file diff --git a/src/tile/include/vars.less b/src/tile/include/vars.less index 284eb58..2045c2d 100644 --- a/src/tile/include/vars.less +++ b/src/tile/include/vars.less @@ -1,314 +1,314 @@ -@unitSize: 4px; - -// Fonts -@fontName: -apple-system, system-ui, BlinkMacSystemFont, - "Segoe UI", "Roboto", "Ubuntu", - "Helvetica Neue", sans-serif; - -@fontSize: @unitSize * 4; - - -// Colors -@lightenValue: 15%; -@darkenValue: 15%; - -@transparent: transparent; - -@brandColor1: #2ac4f4; -@brandColor2: #004d6f; - -@black: #000000; -@white: #ffffff; -@dark: #1d1d1d; -@light: #f8f8f8; -@gray: #bebebe; -@grayBlue: #607d8b; -@grayWhite: #f5f5f5; -@grayMouse: #455a64; - -@lime: #a4c400; -@green: #60a917; -@emerald: #008a00; -@blue: #00AFF0; -@teal: #00aba9; -@cyan: #1ba1e2; -@cobalt: #0050ef; -@indigo: #6a00ff; -@violet: #aa00ff; -@pink: #dc4fad; -@magenta: #d80073; -@crimson: #a20025; -@red: #CE352C; -@orange: #fa6800; -@amber: #f0a30a; -@yellow: #fff000; -@brown: #825a2c; -@olive: #6d8764; -@steel: #647687; -@mauve: #76608a; -@taupe: #87794e; - -@lightLime: lighten(@lime, @lightenValue); -@lightGreen: lighten(@green, @lightenValue); -@lightEmerald: lighten(@emerald, @lightenValue); -@lightBlue: lighten(@blue, @lightenValue); -@lightTeal: lighten(@teal, @lightenValue); -@lightCyan: lighten(@cyan, @lightenValue); -@lightCobalt: lighten(@cobalt, @lightenValue); -@lightIndigo: lighten(@indigo, @lightenValue); -@lightViolet: lighten(@violet, @lightenValue); -@lightPink: lighten(@pink, @lightenValue); -@lightMagenta: lighten(@magenta, @lightenValue); -@lightCrimson: lighten(@crimson, @lightenValue); -@lightRed: lighten(@red, @lightenValue); -@lightOrange: lighten(@orange, @lightenValue); -@lightAmber: lighten(@amber, @lightenValue); -@lightYellow: lighten(@yellow, @lightenValue); -@lightBrown: lighten(@brown, @lightenValue); -@lightOlive: lighten(@olive, @lightenValue); -@lightSteel: lighten(@steel, @lightenValue); -@lightMauve: lighten(@mauve, @lightenValue); -@lightTaupe: lighten(@taupe, @lightenValue); -@lightGray: lighten(@gray, @lightenValue); -@lightGrayBlue: lighten(@grayBlue, @lightenValue); - - -@darkLime: darken(@lime, @darkenValue); -@darkGreen: darken(@green, @darkenValue); -@darkEmerald: darken(@emerald, @darkenValue); -@darkBlue: darken(@blue, @darkenValue); -@darkTeal: darken(@teal, @darkenValue); -@darkCyan: darken(@cyan, @darkenValue); -@darkCobalt: darken(@cobalt, @darkenValue); -@darkIndigo: darken(@indigo, @darkenValue); -@darkViolet: darken(@violet, @darkenValue); -@darkPink: darken(@pink, @darkenValue); -@darkMagenta: darken(@magenta, @darkenValue); -@darkCrimson: darken(@crimson, @darkenValue); -@darkRed: darken(@red, @darkenValue); -@darkOrange: darken(@orange, @darkenValue); -@darkAmber: darken(@amber, @darkenValue); -@darkYellow: darken(@yellow, @darkenValue); -@darkBrown: darken(@brown, @darkenValue); -@darkOlive: darken(@olive, @darkenValue); -@darkSteel: darken(@steel, @darkenValue); -@darkMauve: darken(@mauve, @darkenValue); -@darkTaupe: darken(@taupe, @darkenValue); -@darkGray: darken(@gray, @darkenValue); -@darkGrayBlue: darken(@grayBlue, @darkenValue); - -@colorList: black, white, dark, light, grayBlue, grayWhite, grayMouse, brandColor1, brandColor2, - lime, green, emerald, blue, teal, cyan, cobalt, indigo, violet, pink, magenta, crimson, red, orange, amber, yellow, brown, olive, steel, mauve, taupe, gray, - lightLime, lightGreen, lightEmerald, lightBlue, lightTeal, lightCyan, lightCobalt, lightIndigo, lightViolet, lightPink, lightMagenta, lightCrimson, lightRed, lightOrange, lightAmber, lightYellow, lightBrown, lightOlive, lightSteel, lightMauve, lightTaupe, lightGray, lightGrayBlue, - darkLime, darkGreen, darkEmerald, darkBlue, darkTeal, darkCyan, darkCobalt, darkIndigo, darkViolet, darkPink, darkMagenta, darkCrimson, darkRed, darkOrange, darkAmber, darkYellow, darkBrown, darkOlive, darkSteel, darkMauve, darkTaupe, darkGray, darkGrayBlue; - -@colorListLength: length(@colorList); - -// Body -@bodyColor: lighten(@black, 13%); - -// Hover -@hoverBackground: rgba(red(@dark), green(@dark), blue(@dark), .1); -@hoverBackground2: rgba(red(@dark), green(@dark), blue(@dark), .5); -@hoverBackgroundLight3: rgba(red(@white), green(@white), blue(@white), .3); -@hoverBackgroundLight2: rgba(red(@white), green(@white), blue(@white), .2); -@hoverBackgroundLight1: rgba(red(@white), green(@white), blue(@white), .1); -@hoverBackgroundLight: rgba(red(@white), green(@white), blue(@white), .01); - -// Appbar -@appBarBackground: @brandColor2; -@appBarBackgroundActive: lighten(@brandColor2, 10%); -@appBarColor: @white; - -// Taskbar -@taskBarBackground: #053046; -@taskBarItemHover: rgba(red(@white), green(@white), blue(@white), .1); -@taskBarItemActive: rgba(red(@white), green(@white), blue(@white), .3); - -// Form and Inputs -@inputBorder: #d9d9d9; -@checkBackground: darken(@inputBorder, 10%); - -// Disabled -@disabledBackground: #e9e9e9; -@disabledBorder: #e9e9e9; -@disabledColor: lighten(@dark, 50%); - -// Borders -@borderRadius: .25rem; -@borderColor: darken(@light, 10%); - -// Links -@linkColor: #0366d6; -@linkColorHover: #0056b3; - - -// Accent colors -@primaryColor: #0366d6; -@secondaryColor: @grayBlue; -@successColor: @green; -@alertColor: @red; -@warningColor: @lightOrange; -@yellowColor: #ffe484; -@infoColor: @lightCyan; -@darkColor: lighten(@dark, 20%); -@lightColor: @light; -@brand1Color: @brandColor1; -@brand2Color: @brandColor2; - -@accentColors: primary, secondary, success, alert, warning, yellow, info, dark, light; -@buttonPredefinedTypes: primary, secondary, success, alert, warning, yellow, info, dark, light, brand1, brand2; -@buttonPredefinedTypesLength: length(@buttonPredefinedTypes); - -// Z-index -@zindex-selectedCheck: 100; -@zindex-absolute: 500; -@zindex-dropdown: 1000; -@zindex-sticky: 1020; -@zindex-fixed: 1030; -@zindex-modal-backdrop: 1040; -@zindex-modal: 1050; -@zindex-popover: 1060; -@zindex-tooltip: 1070; -@zindex-top: 1080; -@zindex-notify: 1085; -@zindex-charms: 1090; -@zindex-overlay: 2000; -@zindex-fullscreen: 2147483647; - - -// Percents breakpoints -@percentBreakpointsList: 25, 50, 75, 100; -@percentBreakpointsLength: length(@percentBreakpointsList); - -// Tiles -@tileBaseSize: 25%; -@tileApp: 44px 44px; -@tileSmall: 70px 70px; -@tileMedium: 150px 150px; -@tileWide: 310px 150px; -@tileLarge: 310px 310px; -@tileMargin: 5px; -@tileCellSize: extract(@tileMedium, 1); -@tileOutlineColor: rgba(red(@dark), green(@dark), blue(@dark), .1); -@tileTransformPerspective: 500px; -@tileTransformRotate: 0.138372rad; -@tileSize: extract(@tileMedium, 1); - - -// Media breakpoints -@fs: 0; -@xs: 360px; -@sm: 576px; -@ld: 640px; -@md: 768px; -@lg: 992px; -@xl: 1200px; -@xxl: 1452px; - -@mediaBreakpointListMobile: fs, sm, md, lg, xl, xxl; -@mediaBreakpointListMobile2: sm, md, lg, xl, xxl; -@mediaBreakpointListMobile3: xs, sm, ld, md, lg, xl, xxl; -@mediaBreakpointListDesktop: xxl, xl, lg, md, sm, fs; -@mediaBreakpointListDesktop2: xxl, xl, lg, md, sm; -@mediaBreakpointListDesktop3: xxl, xl, lg, md, ld, sm, xs; - -@mediaBreakpointListMobileLength: length(@mediaBreakpointListMobile); -@mediaBreakpointListMobile2Length: length(@mediaBreakpointListMobile2); -@mediaBreakpointListMobile3Length: length(@mediaBreakpointListMobile3); -@mediaBreakpointListDesktopLength: length(@mediaBreakpointListDesktop); -@mediaBreakpointListDesktop2Length: length(@mediaBreakpointListDesktop2); -@mediaBreakpointListDesktop3Length: length(@mediaBreakpointListDesktop3); - -@percents: 25, 33, 50, 75, 100; -@percentsLength: length(@percents); - -// Transition -@transition-speed: .3s; -@transition-short: all .15s ease-in-out; -@transition-base: all .3s ease-in-out; -@transition-long: all 1s ease-in-out; -@transition-margin: margin .3s ease-in-out; -@transition-fade: opacity .15s linear; -@transition-color: color .3s linear; -@transition-collapse: max-height .3s ease; -@transition-width: width .3s ease; -@transition-left: left .3s ease; -@transition-right: right .3s ease; -@transition-top: top .3s ease; -@transition-bottom: bottom .3s ease; -@transition-transform: transform .3s ease; - -// Grid -@gridColumns12: 12; -@gridGapSize: 12px; -@gridCellBaseSize: 8.333335%; - -// Windows -@winBorderSize: .5rem; -@winBorderColor: #6badf6; -@winBorderColorInactive: #ebebeb; -@winDialogContentBackground: #ededed; -@winFlatBackgroundColor: #ffffff; -@winFlatBorderColor: #e9e9e9; -@winFlatSystemButtonHoverBackground: #cde6f7; -@winFlatSystemButtonActiveBackground: #92c0e0; -@winFlatSystemButtonActiveColor: #2a8dd4; -@winFlatSystemButtonRestColor: #777777; -@winCloseButtonColor: #c75050; -@winCloseButtonActiveColor: #e04343; -@winCloseButtonInActiveColor: #bcbcbc; -@winCaptionBackground: #3c6478; -@winCaptionColor: @white; - -@streamerItemWidth: 224px; -@streamerTimelineImage: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAAATCAYAAACJKwFWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2OWY4NzBhNi0zODU3LWFmNDEtYWMzZS03YzlkOTcxZjMxOTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEREMzg4NkJBQjkyMTFFN0JDQTVFMzg4RUE0RDc4RkQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEREMzg4NkFBQjkyMTFFN0JDQTVFMzg4RUE0RDc4RkQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzEyZGQ1NjktNmM3YS0yZTQ2LTg2MmQtZWY3OGU5MmQ4NWY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY5Zjg3MGE2LTM4NTctYWY0MS1hYzNlLTdjOWQ5NzFmMzE5MiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv3rUTMAAAIHSURBVHja7Jq/S0JRHMWfpj37oSA8qikIImioIaghaHDrD2hqaG4R6i8paGksh2iIQGhoCYewocChhkDEoAjsx5IGDZV2Ll6huXvoKZwPHHwuh3O/737f03tvpNVqeUKIcIiYBiwUCoe4LhH8FqAadO/oE0BT0AUh0xxUhyqOPklohpRpFvqEbh194tA8dGX9XJi2fteE8S1CN1DD0WcSSpHmpslUhl4dfcahMeiSMTdj9qKYyWR2/uKA5v39dd1OUNebOAKtQtuEQa5Bd9C5o4+pVRbaImRagd6hU4LXJinTMjQMHZEymfn05eizBE1AOUKmDegAeiY8PE0z7xIyZaP2op/0Rk1AaYKPeQP6pEyD9inqyigx05B9ozLG5ttPV5I2FwPf1suVFGlsnUwBwSdt5zmD/qh+hQsRHmpAIdSAQqgBhRBqQCHUgEKIfyBG9jP7SD4pV5KYibFs3EfMZJbWu+0I0oDH24ZI2nq5krD3j5UpTvDxiZnoDWg2Ot8IPmbjfI+UqQo9EXw+vPZJCgYn0HeXNeCjx9vfKtt6uVIjPqhMpjrBx5ykqXRrA1ZJPg3P/RhTh2OSzwu0T/J66MJfQ2dEL1adisRMOZJPyeMcjdN/QCHCRg0ohBpQCDWgECKkBgxUip4k4rVXLiMqRU8SdBowr1r0JE2vvbTeVCl6kvyPAAMASGlSBhr76A8AAAAASUVORK5CYII="; - -@activityRingTime: 4000ms; -@activityRingSize: 32px; -@activityColor: @white; -@activityColorDark: @darkGray; -@activityRingRotate: -14deg; -@activityRingTimeMute: 30; - -@hintBackground: rgba(255, 252, 192, 1); -@hintColor: @dark; - -@mpStep: 4; -@mpUnit: px; - -@playerInactiveColor: #555555; -@playerActiveColor: @green; -@playerHoverColor: @white; -@playerControlsBackground: rgba(34, 34, 34, 0.5); - -@ribbonMenuStaticBackground: #1979ca; -@ribbonMenuBackground: #ffffff; -@ribbonMenuActiveBackground: #f5f6f7; -@ribbonMenuBorder: #dadbdc; -@ribbonMenuItemBorder: #a4cef9; -@ribbonMenuItemActiveBorder: #1979ca; -@ribbonMenuItemHoverBackground: rgba(red(#a4cef9), green(#a4cef9), blue(#a4cef9), .2); -@ribbonMenuItemActiveBackground: rgba(red(#a4cef9), green(#a4cef9), blue(#a4cef9), .8); -@ribbonDropdownBackground: #fbfcfd; -@ribbonDropdownDivider: #dcddde; -@ribbonDropdownShadow: #e3e4e5; - -@inputHeight: 36px; - -@input-lx: 50px; -@input-sx: 28px; - -@badgeFontSize: 12px; - -@johnDoe: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTAK/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAUABQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+t+KKPxo/GgA70Yo/Gj8aADFH4VesdC1HUl3WtjcXCf344yV/PGKW+0HUtNXddWNzbp/fkjIX88YoAofhR+FH40fjQAfhR+FH40fjQAUUUUAFepeAPh5D9li1LVYhK8g3Q27j5VXszDuT6f5HA+FtOXVvEWn2rjMcko3j1UckfkDX0MBgYHAoARVCKFUBVHAA6ClZQwKkZBGCDS0UAec+Pvh3BJay6lpUQimjBeW3QYVx3Kjsfbv/PyqvpuvnvxfpqaT4l1C1QbY0lJUDsrfMB+RoAyKKKKACiiigDa8GXq6f4p02eQgIJQpJ7Bvlz+tfQP4V8yDg17P4A8cw65ZxWV5IE1KMbfmP+uA7j39R+NAHaUfhSUUAL+FeA+OL1NQ8WalNGQU83YCO+0Bf6V6b498cQ6BZyWlrIJNSkXaApz5QP8AEff0FeKk5OTyTQAUUUUAH40fjRU1naTX93DbQIXmlYIijuTQBc0Dw/eeI74W1mm49XkbhUHqTXsHhz4eaXoCpI8YvbscmaYZAP8Asr0H8/etHwv4cg8M6XHaxANIfmllxy7dz9PStigA/Gk/GlooA5bxJ8PdL19XkWMWd43PnwjGT/tL0P8AP3rx/X/D954cvjbXibT1SReVceoNfRFZHijw5B4m0uS1lAWQfNFLjlG7H6etAHz5+NH41NeWk1hdzW06FJonKMp7EGoaACvQfhBowudTudRkXK2y7I8j+Nup/Afzrz6vafhRaCDwmkgHM8zufwO3/wBloA7Kiij8KACkpaSgBaSj8KKAPJvi/owttTttRjXC3K7JMf3l6H8R/KvPq9p+K1qJ/CbyEcwTI4P1O3/2avFqAP/Z"; - -// animation -@defaultPerspective: 600px; -@defaultAnimationSpeed: .3s; - -// additional; colors -@ribbedSize: 20px; -@ribbedAlpha: .15; -@ribbedAngle: -45deg; -@alpha: .1; +@unitSize: 4px; + +// Fonts +@fontName: -apple-system, system-ui, BlinkMacSystemFont, + "Segoe UI", "Roboto", "Ubuntu", + "Helvetica Neue", sans-serif; + +@fontSize: @unitSize * 4; + + +// Colors +@lightenValue: 15%; +@darkenValue: 15%; + +@transparent: transparent; + +@brandColor1: #2ac4f4; +@brandColor2: #004d6f; + +@black: #000000; +@white: #ffffff; +@dark: #1d1d1d; +@light: #f8f8f8; +@gray: #bebebe; +@grayBlue: #607d8b; +@grayWhite: #f5f5f5; +@grayMouse: #455a64; + +@lime: #a4c400; +@green: #60a917; +@emerald: #008a00; +@blue: #00AFF0; +@teal: #00aba9; +@cyan: #1ba1e2; +@cobalt: #0050ef; +@indigo: #6a00ff; +@violet: #aa00ff; +@pink: #dc4fad; +@magenta: #d80073; +@crimson: #a20025; +@red: #CE352C; +@orange: #fa6800; +@amber: #f0a30a; +@yellow: #fff000; +@brown: #825a2c; +@olive: #6d8764; +@steel: #647687; +@mauve: #76608a; +@taupe: #87794e; + +@lightLime: lighten(@lime, @lightenValue); +@lightGreen: lighten(@green, @lightenValue); +@lightEmerald: lighten(@emerald, @lightenValue); +@lightBlue: lighten(@blue, @lightenValue); +@lightTeal: lighten(@teal, @lightenValue); +@lightCyan: lighten(@cyan, @lightenValue); +@lightCobalt: lighten(@cobalt, @lightenValue); +@lightIndigo: lighten(@indigo, @lightenValue); +@lightViolet: lighten(@violet, @lightenValue); +@lightPink: lighten(@pink, @lightenValue); +@lightMagenta: lighten(@magenta, @lightenValue); +@lightCrimson: lighten(@crimson, @lightenValue); +@lightRed: lighten(@red, @lightenValue); +@lightOrange: lighten(@orange, @lightenValue); +@lightAmber: lighten(@amber, @lightenValue); +@lightYellow: lighten(@yellow, @lightenValue); +@lightBrown: lighten(@brown, @lightenValue); +@lightOlive: lighten(@olive, @lightenValue); +@lightSteel: lighten(@steel, @lightenValue); +@lightMauve: lighten(@mauve, @lightenValue); +@lightTaupe: lighten(@taupe, @lightenValue); +@lightGray: lighten(@gray, @lightenValue); +@lightGrayBlue: lighten(@grayBlue, @lightenValue); + + +@darkLime: darken(@lime, @darkenValue); +@darkGreen: darken(@green, @darkenValue); +@darkEmerald: darken(@emerald, @darkenValue); +@darkBlue: darken(@blue, @darkenValue); +@darkTeal: darken(@teal, @darkenValue); +@darkCyan: darken(@cyan, @darkenValue); +@darkCobalt: darken(@cobalt, @darkenValue); +@darkIndigo: darken(@indigo, @darkenValue); +@darkViolet: darken(@violet, @darkenValue); +@darkPink: darken(@pink, @darkenValue); +@darkMagenta: darken(@magenta, @darkenValue); +@darkCrimson: darken(@crimson, @darkenValue); +@darkRed: darken(@red, @darkenValue); +@darkOrange: darken(@orange, @darkenValue); +@darkAmber: darken(@amber, @darkenValue); +@darkYellow: darken(@yellow, @darkenValue); +@darkBrown: darken(@brown, @darkenValue); +@darkOlive: darken(@olive, @darkenValue); +@darkSteel: darken(@steel, @darkenValue); +@darkMauve: darken(@mauve, @darkenValue); +@darkTaupe: darken(@taupe, @darkenValue); +@darkGray: darken(@gray, @darkenValue); +@darkGrayBlue: darken(@grayBlue, @darkenValue); + +@colorList: black, white, dark, light, grayBlue, grayWhite, grayMouse, brandColor1, brandColor2, + lime, green, emerald, blue, teal, cyan, cobalt, indigo, violet, pink, magenta, crimson, red, orange, amber, yellow, brown, olive, steel, mauve, taupe, gray, + lightLime, lightGreen, lightEmerald, lightBlue, lightTeal, lightCyan, lightCobalt, lightIndigo, lightViolet, lightPink, lightMagenta, lightCrimson, lightRed, lightOrange, lightAmber, lightYellow, lightBrown, lightOlive, lightSteel, lightMauve, lightTaupe, lightGray, lightGrayBlue, + darkLime, darkGreen, darkEmerald, darkBlue, darkTeal, darkCyan, darkCobalt, darkIndigo, darkViolet, darkPink, darkMagenta, darkCrimson, darkRed, darkOrange, darkAmber, darkYellow, darkBrown, darkOlive, darkSteel, darkMauve, darkTaupe, darkGray, darkGrayBlue; + +@colorListLength: length(@colorList); + +// Body +@bodyColor: lighten(@black, 13%); + +// Hover +@hoverBackground: rgba(red(@dark), green(@dark), blue(@dark), .1); +@hoverBackground2: rgba(red(@dark), green(@dark), blue(@dark), .5); +@hoverBackgroundLight3: rgba(red(@white), green(@white), blue(@white), .3); +@hoverBackgroundLight2: rgba(red(@white), green(@white), blue(@white), .2); +@hoverBackgroundLight1: rgba(red(@white), green(@white), blue(@white), .1); +@hoverBackgroundLight: rgba(red(@white), green(@white), blue(@white), .01); + +// Appbar +@appBarBackground: @brandColor2; +@appBarBackgroundActive: lighten(@brandColor2, 10%); +@appBarColor: @white; + +// Taskbar +@taskBarBackground: #053046; +@taskBarItemHover: rgba(red(@white), green(@white), blue(@white), .1); +@taskBarItemActive: rgba(red(@white), green(@white), blue(@white), .3); + +// Form and Inputs +@inputBorder: #d9d9d9; +@checkBackground: darken(@inputBorder, 10%); + +// Disabled +@disabledBackground: #e9e9e9; +@disabledBorder: #e9e9e9; +@disabledColor: lighten(@dark, 50%); + +// Borders +@borderRadius: .25rem; +@borderColor: darken(@light, 10%); + +// Links +@linkColor: #0366d6; +@linkColorHover: #0056b3; + + +// Accent colors +@primaryColor: #0366d6; +@secondaryColor: @grayBlue; +@successColor: @green; +@alertColor: @red; +@warningColor: @lightOrange; +@yellowColor: #ffe484; +@infoColor: @lightCyan; +@darkColor: lighten(@dark, 20%); +@lightColor: @light; +@brand1Color: @brandColor1; +@brand2Color: @brandColor2; + +@accentColors: primary, secondary, success, alert, warning, yellow, info, dark, light; +@buttonPredefinedTypes: primary, secondary, success, alert, warning, yellow, info, dark, light, brand1, brand2; +@buttonPredefinedTypesLength: length(@buttonPredefinedTypes); + +// Z-index +@zindex-selectedCheck: 100; +@zindex-absolute: 500; +@zindex-dropdown: 1000; +@zindex-sticky: 1020; +@zindex-fixed: 1030; +@zindex-modal-backdrop: 1040; +@zindex-modal: 1050; +@zindex-popover: 1060; +@zindex-tooltip: 1070; +@zindex-top: 1080; +@zindex-notify: 1085; +@zindex-charms: 1090; +@zindex-overlay: 2000; +@zindex-fullscreen: 2147483647; + + +// Percents breakpoints +@percentBreakpointsList: 25, 50, 75, 100; +@percentBreakpointsLength: length(@percentBreakpointsList); + +// Tiles +@tileBaseSize: 25%; +@tileApp: 44px 44px; +@tileSmall: 70px 70px; +@tileMedium: 150px 150px; +@tileWide: 310px 150px; +@tileLarge: 310px 310px; +@tileMargin: 5px; +@tileCellSize: extract(@tileMedium, 1); +@tileOutlineColor: rgba(red(@dark), green(@dark), blue(@dark), .1); +@tileTransformPerspective: 500px; +@tileTransformRotate: 0.138372rad; +@tileSize: extract(@tileMedium, 1); + + +// Media breakpoints +@fs: 0; +@xs: 360px; +@sm: 576px; +@ld: 640px; +@md: 768px; +@lg: 992px; +@xl: 1200px; +@xxl: 1452px; + +@mediaBreakpointListMobile: fs, sm, md, lg, xl, xxl; +@mediaBreakpointListMobile2: sm, md, lg, xl, xxl; +@mediaBreakpointListMobile3: xs, sm, ld, md, lg, xl, xxl; +@mediaBreakpointListDesktop: xxl, xl, lg, md, sm, fs; +@mediaBreakpointListDesktop2: xxl, xl, lg, md, sm; +@mediaBreakpointListDesktop3: xxl, xl, lg, md, ld, sm, xs; + +@mediaBreakpointListMobileLength: length(@mediaBreakpointListMobile); +@mediaBreakpointListMobile2Length: length(@mediaBreakpointListMobile2); +@mediaBreakpointListMobile3Length: length(@mediaBreakpointListMobile3); +@mediaBreakpointListDesktopLength: length(@mediaBreakpointListDesktop); +@mediaBreakpointListDesktop2Length: length(@mediaBreakpointListDesktop2); +@mediaBreakpointListDesktop3Length: length(@mediaBreakpointListDesktop3); + +@percents: 25, 33, 50, 75, 100; +@percentsLength: length(@percents); + +// Transition +@transition-speed: .3s; +@transition-short: all .15s ease-in-out; +@transition-base: all .3s ease-in-out; +@transition-long: all 1s ease-in-out; +@transition-margin: margin .3s ease-in-out; +@transition-fade: opacity .15s linear; +@transition-color: color .3s linear; +@transition-collapse: max-height .3s ease; +@transition-width: width .3s ease; +@transition-left: left .3s ease; +@transition-right: right .3s ease; +@transition-top: top .3s ease; +@transition-bottom: bottom .3s ease; +@transition-transform: transform .3s ease; + +// Grid +@gridColumns12: 12; +@gridGapSize: 12px; +@gridCellBaseSize: 8.333335%; + +// Windows +@winBorderSize: .5rem; +@winBorderColor: #6badf6; +@winBorderColorInactive: #ebebeb; +@winDialogContentBackground: #ededed; +@winFlatBackgroundColor: #ffffff; +@winFlatBorderColor: #e9e9e9; +@winFlatSystemButtonHoverBackground: #cde6f7; +@winFlatSystemButtonActiveBackground: #92c0e0; +@winFlatSystemButtonActiveColor: #2a8dd4; +@winFlatSystemButtonRestColor: #777777; +@winCloseButtonColor: #c75050; +@winCloseButtonActiveColor: #e04343; +@winCloseButtonInActiveColor: #bcbcbc; +@winCaptionBackground: #3c6478; +@winCaptionColor: @white; + +@streamerItemWidth: 224px; +@streamerTimelineImage: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAAATCAYAAACJKwFWAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2OWY4NzBhNi0zODU3LWFmNDEtYWMzZS03YzlkOTcxZjMxOTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEREMzg4NkJBQjkyMTFFN0JDQTVFMzg4RUE0RDc4RkQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEREMzg4NkFBQjkyMTFFN0JDQTVFMzg4RUE0RDc4RkQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzEyZGQ1NjktNmM3YS0yZTQ2LTg2MmQtZWY3OGU5MmQ4NWY2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY5Zjg3MGE2LTM4NTctYWY0MS1hYzNlLTdjOWQ5NzFmMzE5MiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv3rUTMAAAIHSURBVHja7Jq/S0JRHMWfpj37oSA8qikIImioIaghaHDrD2hqaG4R6i8paGksh2iIQGhoCYewocChhkDEoAjsx5IGDZV2Ll6huXvoKZwPHHwuh3O/737f03tvpNVqeUKIcIiYBiwUCoe4LhH8FqAadO/oE0BT0AUh0xxUhyqOPklohpRpFvqEbh194tA8dGX9XJi2fteE8S1CN1DD0WcSSpHmpslUhl4dfcahMeiSMTdj9qKYyWR2/uKA5v39dd1OUNebOAKtQtuEQa5Bd9C5o4+pVRbaImRagd6hU4LXJinTMjQMHZEymfn05eizBE1AOUKmDegAeiY8PE0z7xIyZaP2op/0Rk1AaYKPeQP6pEyD9inqyigx05B9ozLG5ttPV5I2FwPf1suVFGlsnUwBwSdt5zmD/qh+hQsRHmpAIdSAQqgBhRBqQCHUgEKIfyBG9jP7SD4pV5KYibFs3EfMZJbWu+0I0oDH24ZI2nq5krD3j5UpTvDxiZnoDWg2Ot8IPmbjfI+UqQo9EXw+vPZJCgYn0HeXNeCjx9vfKtt6uVIjPqhMpjrBx5ykqXRrA1ZJPg3P/RhTh2OSzwu0T/J66MJfQ2dEL1adisRMOZJPyeMcjdN/QCHCRg0ohBpQCDWgECKkBgxUip4k4rVXLiMqRU8SdBowr1r0JE2vvbTeVCl6kvyPAAMASGlSBhr76A8AAAAASUVORK5CYII="; + +@activityRingTime: 4000ms; +@activityRingSize: 32px; +@activityColor: @white; +@activityColorDark: @darkGray; +@activityRingRotate: -14deg; +@activityRingTimeMute: 30; + +@hintBackground: rgba(255, 252, 192, 1); +@hintColor: @dark; + +@mpStep: 4; +@mpUnit: px; + +@playerInactiveColor: #555555; +@playerActiveColor: @green; +@playerHoverColor: @white; +@playerControlsBackground: rgba(34, 34, 34, 0.5); + +@ribbonMenuStaticBackground: #1979ca; +@ribbonMenuBackground: #ffffff; +@ribbonMenuActiveBackground: #f5f6f7; +@ribbonMenuBorder: #dadbdc; +@ribbonMenuItemBorder: #a4cef9; +@ribbonMenuItemActiveBorder: #1979ca; +@ribbonMenuItemHoverBackground: rgba(red(#a4cef9), green(#a4cef9), blue(#a4cef9), .2); +@ribbonMenuItemActiveBackground: rgba(red(#a4cef9), green(#a4cef9), blue(#a4cef9), .8); +@ribbonDropdownBackground: #fbfcfd; +@ribbonDropdownDivider: #dcddde; +@ribbonDropdownShadow: #e3e4e5; + +@inputHeight: 36px; + +@input-lx: 50px; +@input-sx: 28px; + +@badgeFontSize: 12px; + +@johnDoe: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTAK/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAUABQAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+t+KKPxo/GgA70Yo/Gj8aADFH4VesdC1HUl3WtjcXCf344yV/PGKW+0HUtNXddWNzbp/fkjIX88YoAofhR+FH40fjQAfhR+FH40fjQAUUUUAFepeAPh5D9li1LVYhK8g3Q27j5VXszDuT6f5HA+FtOXVvEWn2rjMcko3j1UckfkDX0MBgYHAoARVCKFUBVHAA6ClZQwKkZBGCDS0UAec+Pvh3BJay6lpUQimjBeW3QYVx3Kjsfbv/PyqvpuvnvxfpqaT4l1C1QbY0lJUDsrfMB+RoAyKKKKACiiigDa8GXq6f4p02eQgIJQpJ7Bvlz+tfQP4V8yDg17P4A8cw65ZxWV5IE1KMbfmP+uA7j39R+NAHaUfhSUUAL+FeA+OL1NQ8WalNGQU83YCO+0Bf6V6b498cQ6BZyWlrIJNSkXaApz5QP8AEff0FeKk5OTyTQAUUUUAH40fjRU1naTX93DbQIXmlYIijuTQBc0Dw/eeI74W1mm49XkbhUHqTXsHhz4eaXoCpI8YvbscmaYZAP8Asr0H8/etHwv4cg8M6XHaxANIfmllxy7dz9PStigA/Gk/GlooA5bxJ8PdL19XkWMWd43PnwjGT/tL0P8AP3rx/X/D954cvjbXibT1SReVceoNfRFZHijw5B4m0uS1lAWQfNFLjlG7H6etAHz5+NH41NeWk1hdzW06FJonKMp7EGoaACvQfhBowudTudRkXK2y7I8j+Nup/Afzrz6vafhRaCDwmkgHM8zufwO3/wBloA7Kiij8KACkpaSgBaSj8KKAPJvi/owttTttRjXC3K7JMf3l6H8R/KvPq9p+K1qJ/CbyEcwTI4P1O3/2avFqAP/Z"; + +// animation +@defaultPerspective: 600px; +@defaultAnimationSpeed: .3s; + +// additional; colors +@ribbedSize: 20px; +@ribbedAlpha: .15; +@ribbedAngle: -45deg; +@alpha: .1; diff --git a/src/tile/tile.less b/src/tile/tile.less index 0c9b280..b2b29a9 100644 --- a/src/tile/tile.less +++ b/src/tile/tile.less @@ -1,482 +1,482 @@ -/* Please use node.js "less" module to complie this less */ -/* 请使用node.js的“less”模块来编译本less */ -@import (once) "./include/vars"; -@import (once) "./include/mixins"; - -.tile-small, -.tile-medium, -.tile-wide, -.tile-large, -.tile-app { - display: block; - background-color: @cyan; - color: @white; - width: extract(@tileMedium, 1); - height: extract(@tileMedium, 2); - box-shadow: inset 0 0 1px #FFFFCC; - cursor: pointer; - position: relative; - overflow: hidden; - user-select: none; - max-width: none!important; -} - -.tile { - &-small { - width: extract(@tileSmall, 1); - height: extract(@tileSmall, 2); - } - &-medium { - width: extract(@tileMedium, 1); - height: extract(@tileMedium, 2); - } - &-wide { - width: extract(@tileWide, 1); - height: extract(@tileWide, 2); - } - &-large { - width: extract(@tileLarge, 1); - height: extract(@tileLarge, 2); - } - &-app { - width: extract(@tileApp, 1); - height: extract(@tileApp, 2); - } -} - -.tile-small, -.tile-medium, -.tile-wide, -.tile-large, -.tile-app { - .icon { - max-width: 33%; - height: 33%; - position: absolute; - top: 50%; - left: 50%; - .translateY(-50%); - .translateX(-50%); - /*font-size: 50px;*/ - /*line-height: 50px;*/ - z-index: 2; - } - - .branding-bar { - height: 32px; - line-height: 32px; - position: absolute; - left: 0; - bottom: 0; - right: 0; - padding: 0 10px 5px; - font-size: .875rem; - font-weight: 500; - .text-ellipsis(); - z-index: 2; - } - - .badge-top, .badge-bottom { - position: absolute; - display: block; - padding: 4px 8px; - font-size: 12px; - text-align: center; - background-color: @hoverBackground; - z-index: 2; - } - - .badge-bottom { - right: 10px; - bottom: 0; - } - - .badge-top { - top: 10px; - right: 10px; - } - - &:hover { - outline: @tileOutlineColor solid 4px; - } -} - -.tile { - &-small { - .icon { - max-width: 50%; - font-size: 35px; - line-height: 35px; - } - - /*.branding-bar { - display: none; - }*/ - } - &-large { - .icon { - font-size: 102px; - line-height: 102px; - } - } - &-app { - .icon { - max-width: 75%; - height: 75%; - } - } -} - -.tile-small, -.tile-medium, -.tile-wide, -.tile-large, -.tile-app { - &.transform-right { - .transformOrigin(left 50%); - .perspective(@tileTransformPerspective)!important; - .rotateY(@tileTransformRotate)!important; - - &.tile-small { - .perspective(@tileTransformPerspective)!important; - .rotateY(@tileTransformRotate * 2)!important; - } - - &.tile-wide { - .perspective(@tileTransformPerspective)!important; - .rotateY(@tileTransformRotate / 2)!important; - } - - &.tile-large { - .perspective(@tileTransformPerspective)!important; - .rotateY(@tileTransformRotate / 3)!important; - } - } - - &.transform-left { - .transformOrigin(right 50%); - .perspective(@tileTransformPerspective)!important; - .rotateY(-@tileTransformRotate)!important; - - &.tile-small { - .perspective(@tileTransformPerspective)!important; - .rotateY(-@tileTransformRotate * 2)!important; - } - - &.tile-wide { - .perspective(@tileTransformPerspective)!important; - .rotateY(-@tileTransformRotate / 2)!important; - } - - &.tile-large { - .perspective(@tileTransformPerspective)!important; - .rotateY(-@tileTransformRotate / 3)!important; - } - } - - &.transform-top { - .transformOrigin(50% bottom); - .perspective(@tileTransformPerspective)!important; - .rotateX(@tileTransformRotate)!important; - - &.tile-small { - .perspective(@tileTransformPerspective)!important; - .rotateX(@tileTransformRotate * 2)!important; - } - - &.tile-wide { - .perspective(@tileTransformPerspective)!important; - .rotateX(@tileTransformRotate / 2)!important; - } - - &.tile-large { - .perspective(@tileTransformPerspective)!important; - .rotateX(@tileTransformRotate / 3)!important; - } - } - - &.transform-bottom { - .transformOrigin(50% top); - .perspective(@tileTransformPerspective)!important; - .rotateX(-@tileTransformRotate)!important; - - &.tile-small { - .perspective(@tileTransformPerspective)!important; - .rotateX(-@tileTransformRotate * 2)!important; - } - - &.tile-wide { - .perspective(@tileTransformPerspective)!important; - .rotateX(-@tileTransformRotate / 2)!important; - } - - &.tile-large { - .perspective(@tileTransformPerspective)!important; - .rotateX(-@tileTransformRotate / 3)!important; - } - } -} - - -.tiles-grid { - position: relative; - display: grid; - grid-template-columns: repeat(auto-fit, (@tileBaseSize - 1%)); - /*grid-template-rows: repeat(auto-fit, (@tileBaseSize - 1%));*/ - grid-gap: 5px; - - .tile-small { - height: 100%; - width: 100%; - grid-column: span 1; - grid-row: span 1; - } - - .tile-medium { - height: 100%; - width: 100%; - grid-column: span 2; - grid-row: span 2; - } - - .tile-wide { - height: 100%; - width: 100%; - grid-column: span 4; - grid-row: span 2; - } - - .tile-large { - height: 100%; - width: 100%; - grid-column: span 4; - grid-row: span 4; - } - - /*.tile-small::before, - .tile-medium::before, - .tile-large::before { - content: ''; - padding-bottom: 100%; - display: block; - } - - .tile-wide::before { - content: ''; - padding-bottom: 50%; - display: block; - }*/ -} - -.tiles-grid { - .create-tiles-cells(@i: 1, @k: 1) when (@k <= @i) { - - .tile-small.col-@{k} { - grid-column: @k / span 1; - } - - .tile-medium.col-@{k} { - grid-column: @k / span 2; - } - - .tile-wide.col-@{k} { - grid-column: @k / span 4; - } - - .tile-large.col-@{k} { - grid-column: @k / span 4; - } - - .tile-small.row-@{k} { - grid-row: @k / span 1; - } - - .tile-medium.row-@{k} { - grid-row: @k / span 2; - } - - .tile-wide.row-@{k} { - grid-row: @k / span 4; - } - - .tile-large.row-@{k} { - grid-row: @k / span 4; - } - - .create-tiles-cells(@i; @k + 1); - } - .create-tiles-cells(12); -} - -.tiles-grid { - &.size-half { - width: 50%; - } - - .create-tiles-grid-size(@i: 1, @k: 1) when (@k <= @i) { - &.size-@{k} { - width: (100% * @k / 12); - } - - .create-tiles-grid-size(@i; @k + 1); - } - .create-tiles-grid-size(12); -} - -.tiles-grid { - each(@mediaBreakpointListMobile, .(@m) { - @media screen and (min-width: @@m) { - each(range(12), .(@k) { - .col-@{m}-@{k} { - grid-column: @k; - } - .row-@{m}-@{k} { - grid-row: @k; - } - }) - each(range(12), .(@k) { - &.size-@{m}-@{k} { - width: (100% * @k / 12); - } - }) - } - }) -} - -.tiles-group { - width: 100%; - float: left; - overflow: visible; - - &::before { - content: attr(data-group-title); - display: block; - position: absolute; - left: 0; - top: -36px; - height: 1.5em; - line-height: 1.5em; - z-index: 1; - color: inherit; - } -} - -// Tiles effects -[class*=tile-] { - &.image-set { - .img { - width: 25%; - height: 50%; - display: block; - float: left; - border: 1px solid @dark; - background-size: cover; - - &:nth-child(1) { - width: 50%; - height: 100%; - } - } - - background-size: contain; - background-position: center; - } - - .slide { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - display: block; - } - - [class*=slide-] { - width: 100%; - height: 100%; - position: absolute; - transition: @transition-base; - } - - .slide-front { - top: 0; - left: 0; - } - - &.effect-hover-slide-up, &.effect-hover-zoom-up { - - .slide-back { - top: 100%; - left: 0; - } - - &:hover { - .slide-front { - .translateY(-100%); - } - .slide-back { - top: 0; - } - } - } - - &.effect-hover-slide-down, &.effect-hover-zoom-down { - .slide-back { - top: 0; - left: 0; - .translateY(-100%); - } - - &:hover { - .slide-front { - top: 100%; - } - .slide-back { - .translateY(0); - } - } - } - - &.effect-hover-slide-left, &.effect-hover-zoom-left { - .slide-back { - top: 0; - left: 100%; - } - - &:hover { - .slide-front { - .translateX(-100%); - } - .slide-back { - left: 0; - } - } - } - - &.effect-hover-slide-right, &.effect-hover-zoom-right { - .slide-back { - top: 0; - left: 0; - .translateX(-100%); - } - - &:hover { - .slide-front { - left: 100%; - } - .slide-back { - .translateX(0); - } - } - } - - &.effect-hover-zoom-up, &.effect-hover-zoom-down, &.effect-hover-zoom-left, &.effect-hover-zoom-right { - &:hover { - .slide-front { - left: 0; - top: 0; - .scale(2); - } - } - } -} +/* Please use node.js "less" module to complie this less */ +/* 请使用node.js的“less”模块来编译本less */ +@import (once) "./include/vars"; +@import (once) "./include/mixins"; + +.tile-small, +.tile-medium, +.tile-wide, +.tile-large, +.tile-app { + display: block; + background-color: @cyan; + color: @white; + width: extract(@tileMedium, 1); + height: extract(@tileMedium, 2); + box-shadow: inset 0 0 1px #FFFFCC; + cursor: pointer; + position: relative; + overflow: hidden; + user-select: none; + max-width: none!important; +} + +.tile { + &-small { + width: extract(@tileSmall, 1); + height: extract(@tileSmall, 2); + } + &-medium { + width: extract(@tileMedium, 1); + height: extract(@tileMedium, 2); + } + &-wide { + width: extract(@tileWide, 1); + height: extract(@tileWide, 2); + } + &-large { + width: extract(@tileLarge, 1); + height: extract(@tileLarge, 2); + } + &-app { + width: extract(@tileApp, 1); + height: extract(@tileApp, 2); + } +} + +.tile-small, +.tile-medium, +.tile-wide, +.tile-large, +.tile-app { + .icon { + max-width: 33%; + height: 33%; + position: absolute; + top: 50%; + left: 50%; + .translateY(-50%); + .translateX(-50%); + /*font-size: 50px;*/ + /*line-height: 50px;*/ + z-index: 2; + } + + .branding-bar { + height: 32px; + line-height: 32px; + position: absolute; + left: 0; + bottom: 0; + right: 0; + padding: 0 10px 5px; + font-size: .875rem; + font-weight: 500; + .text-ellipsis(); + z-index: 2; + } + + .badge-top, .badge-bottom { + position: absolute; + display: block; + padding: 4px 8px; + font-size: 12px; + text-align: center; + background-color: @hoverBackground; + z-index: 2; + } + + .badge-bottom { + right: 10px; + bottom: 0; + } + + .badge-top { + top: 10px; + right: 10px; + } + + &:hover { + outline: @tileOutlineColor solid 4px; + } +} + +.tile { + &-small { + .icon { + max-width: 50%; + font-size: 35px; + line-height: 35px; + } + + /*.branding-bar { + display: none; + }*/ + } + &-large { + .icon { + font-size: 102px; + line-height: 102px; + } + } + &-app { + .icon { + max-width: 75%; + height: 75%; + } + } +} + +.tile-small, +.tile-medium, +.tile-wide, +.tile-large, +.tile-app { + &.transform-right { + .transformOrigin(left 50%); + .perspective(@tileTransformPerspective)!important; + .rotateY(@tileTransformRotate)!important; + + &.tile-small { + .perspective(@tileTransformPerspective)!important; + .rotateY(@tileTransformRotate * 2)!important; + } + + &.tile-wide { + .perspective(@tileTransformPerspective)!important; + .rotateY(@tileTransformRotate / 2)!important; + } + + &.tile-large { + .perspective(@tileTransformPerspective)!important; + .rotateY(@tileTransformRotate / 3)!important; + } + } + + &.transform-left { + .transformOrigin(right 50%); + .perspective(@tileTransformPerspective)!important; + .rotateY(-@tileTransformRotate)!important; + + &.tile-small { + .perspective(@tileTransformPerspective)!important; + .rotateY(-@tileTransformRotate * 2)!important; + } + + &.tile-wide { + .perspective(@tileTransformPerspective)!important; + .rotateY(-@tileTransformRotate / 2)!important; + } + + &.tile-large { + .perspective(@tileTransformPerspective)!important; + .rotateY(-@tileTransformRotate / 3)!important; + } + } + + &.transform-top { + .transformOrigin(50% bottom); + .perspective(@tileTransformPerspective)!important; + .rotateX(@tileTransformRotate)!important; + + &.tile-small { + .perspective(@tileTransformPerspective)!important; + .rotateX(@tileTransformRotate * 2)!important; + } + + &.tile-wide { + .perspective(@tileTransformPerspective)!important; + .rotateX(@tileTransformRotate / 2)!important; + } + + &.tile-large { + .perspective(@tileTransformPerspective)!important; + .rotateX(@tileTransformRotate / 3)!important; + } + } + + &.transform-bottom { + .transformOrigin(50% top); + .perspective(@tileTransformPerspective)!important; + .rotateX(-@tileTransformRotate)!important; + + &.tile-small { + .perspective(@tileTransformPerspective)!important; + .rotateX(-@tileTransformRotate * 2)!important; + } + + &.tile-wide { + .perspective(@tileTransformPerspective)!important; + .rotateX(-@tileTransformRotate / 2)!important; + } + + &.tile-large { + .perspective(@tileTransformPerspective)!important; + .rotateX(-@tileTransformRotate / 3)!important; + } + } +} + + +.tiles-grid { + position: relative; + display: grid; + grid-template-columns: repeat(auto-fit, (@tileBaseSize - 1%)); + /*grid-template-rows: repeat(auto-fit, (@tileBaseSize - 1%));*/ + grid-gap: 5px; + + .tile-small { + height: 100%; + width: 100%; + grid-column: span 1; + grid-row: span 1; + } + + .tile-medium { + height: 100%; + width: 100%; + grid-column: span 2; + grid-row: span 2; + } + + .tile-wide { + height: 100%; + width: 100%; + grid-column: span 4; + grid-row: span 2; + } + + .tile-large { + height: 100%; + width: 100%; + grid-column: span 4; + grid-row: span 4; + } + + /*.tile-small::before, + .tile-medium::before, + .tile-large::before { + content: ''; + padding-bottom: 100%; + display: block; + } + + .tile-wide::before { + content: ''; + padding-bottom: 50%; + display: block; + }*/ +} + +.tiles-grid { + .create-tiles-cells(@i: 1, @k: 1) when (@k <= @i) { + + .tile-small.col-@{k} { + grid-column: @k / span 1; + } + + .tile-medium.col-@{k} { + grid-column: @k / span 2; + } + + .tile-wide.col-@{k} { + grid-column: @k / span 4; + } + + .tile-large.col-@{k} { + grid-column: @k / span 4; + } + + .tile-small.row-@{k} { + grid-row: @k / span 1; + } + + .tile-medium.row-@{k} { + grid-row: @k / span 2; + } + + .tile-wide.row-@{k} { + grid-row: @k / span 4; + } + + .tile-large.row-@{k} { + grid-row: @k / span 4; + } + + .create-tiles-cells(@i; @k + 1); + } + .create-tiles-cells(12); +} + +.tiles-grid { + &.size-half { + width: 50%; + } + + .create-tiles-grid-size(@i: 1, @k: 1) when (@k <= @i) { + &.size-@{k} { + width: (100% * @k / 12); + } + + .create-tiles-grid-size(@i; @k + 1); + } + .create-tiles-grid-size(12); +} + +.tiles-grid { + each(@mediaBreakpointListMobile, .(@m) { + @media screen and (min-width: @@m) { + each(range(12), .(@k) { + .col-@{m}-@{k} { + grid-column: @k; + } + .row-@{m}-@{k} { + grid-row: @k; + } + }) + each(range(12), .(@k) { + &.size-@{m}-@{k} { + width: (100% * @k / 12); + } + }) + } + }) +} + +.tiles-group { + width: 100%; + float: left; + overflow: visible; + + &::before { + content: attr(data-group-title); + display: block; + position: absolute; + left: 0; + top: -36px; + height: 1.5em; + line-height: 1.5em; + z-index: 1; + color: inherit; + } +} + +// Tiles effects +[class*=tile-] { + &.image-set { + .img { + width: 25%; + height: 50%; + display: block; + float: left; + border: 1px solid @dark; + background-size: cover; + + &:nth-child(1) { + width: 50%; + height: 100%; + } + } + + background-size: contain; + background-position: center; + } + + .slide { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + display: block; + } + + [class*=slide-] { + width: 100%; + height: 100%; + position: absolute; + transition: @transition-base; + } + + .slide-front { + top: 0; + left: 0; + } + + &.effect-hover-slide-up, &.effect-hover-zoom-up { + + .slide-back { + top: 100%; + left: 0; + } + + &:hover { + .slide-front { + .translateY(-100%); + } + .slide-back { + top: 0; + } + } + } + + &.effect-hover-slide-down, &.effect-hover-zoom-down { + .slide-back { + top: 0; + left: 0; + .translateY(-100%); + } + + &:hover { + .slide-front { + top: 100%; + } + .slide-back { + .translateY(0); + } + } + } + + &.effect-hover-slide-left, &.effect-hover-zoom-left { + .slide-back { + top: 0; + left: 100%; + } + + &:hover { + .slide-front { + .translateX(-100%); + } + .slide-back { + left: 0; + } + } + } + + &.effect-hover-slide-right, &.effect-hover-zoom-right { + .slide-back { + top: 0; + left: 0; + .translateX(-100%); + } + + &:hover { + .slide-front { + left: 100%; + } + .slide-back { + .translateX(0); + } + } + } + + &.effect-hover-zoom-up, &.effect-hover-zoom-down, &.effect-hover-zoom-left, &.effect-hover-zoom-right { + &:hover { + .slide-front { + left: 0; + top: 0; + .scale(2); + } + } + } +}