You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/p__Classrooms__Lists__Learn...

2283 lines
75 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

(self["webpackChunk"] = self["webpackChunk"] || []).push([[54928],{
/***/ 54094:
/*!***********************************************************************!*\
!*** ./src/pages/Classrooms/Lists/LearningPath/index.tsx + 2 modules ***!
\***********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
"default": function() { return /* binding */ LearningPath; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(26801);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.2@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(11006);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 8 modules
var _umi_production_exports = __webpack_require__(7181);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/skeleton/index.js + 12 modules
var skeleton = __webpack_require__(59981);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
var modal = __webpack_require__(43418);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/LearningPath/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var LearningPathmodules = ({"flex_box_center":"flex_box_center___yF0Vb","flex_space_between":"flex_space_between___vsNYO","flex_box_vertical_center":"flex_box_vertical_center___C4UqH","flex_box_center_end":"flex_box_center_end___EGtmE","flex_box_column":"flex_box_column___uX9g9","bg":"bg___sRga2","menu":"menu___s8xQl","desc":"desc___poG1Z","listItem":"listItem___ml9kN","info":"info___Z8R2Z","add":"add___jH8te","addForm":"addForm___O999t","attendanceCode":"attendanceCode___hPKyl","signInStatus":"signInStatus___usMPT","colorE02020":"colorE02020___hZvSz","color0152d9":"color0152d9___RgXzd","colorFA6400":"colorFA6400___g2yU6","iframe":"iframe___HRzMh"});
// EXTERNAL MODULE: ./src/utils/authority.ts
var authority = __webpack_require__(71633);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/LearningPath/data.ts
var learningData = {
init: [{
"stage_name": "初始学习",
"parent": 9999999,
"key": 0
}, {
"stage_name": "绪论",
"parent": 0,
"key": 1
}, {
"discipline_name": "绪论",
"shixun_count": "1",
"video_count": "2",
"parent": 1,
"key": "11"
}, {
"shixun_name": "绪论1",
"shixun_type": "视频",
"url": "https://video.educoder.net/f066ae1a9a8f418f837e5bf8d02b2690/76df907c20efd95bea0fa23424f10693-hd.m3u8",
"parent": "11",
"key": "111"
}, {
"shixun_name": "绪论2",
"shixun_type": "视频",
"url": "https://video.educoder.net/068ca7853da448c794eeffb0dee8bed4/5bb446a882043683e37474ff408f601b-hd.m3u8",
"parent": "11",
"key": "112"
}, {
"shixun_name": "C++开发环境应用入门",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/zxb937qn/challenges",
"parent": "11",
"key": "113"
}, {
"stage_name": "简单程序设计",
"parent": 0,
"key": 2
}, {
"discipline_name": "基础数据类型和表达式",
"shixun_count": "1",
"video_count": "1",
"parent": 2,
"key": "21"
}, {
"shixun_name": "基础数据类型和表达式",
"shixun_type": "视频",
"url": "https://video.educoder.net/f5f9c87860cb4a98ba86da37b5bfac70/8d50a9c4d5d4d3382c09bad3f4c5dcb6-hd.m3u8",
"parent": "21",
"key": "211"
}, {
"shixun_name": "C++简单程序设计",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/lg5afhzv/challenges",
"parent": "21",
"key": "212"
}, {
"discipline_name": "判断语句",
"shixun_count": "2",
"video_count": "2",
"parent": 2,
"key": "22"
}, {
"shixun_name": "if语句",
"shixun_type": "视频",
"url": "https://video.educoder.net/3b4e821b200443948c553e4c6b51d940/b9601216238e60440192c2deb58adc53-hd.m3u8",
"parent": "22",
"key": "221"
}, {
"shixun_name": "C++选择结构——if多重选择",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/23xkyrmn/challenges",
"parent": "22",
"key": "222"
}, {
"shixun_name": "switch语句",
"shixun_type": "视频",
"url": "https://video.educoder.net/3b4e821b200443948c553e4c6b51d940/b9601216238e60440192c2deb58adc53-hd.m3u8",
"parent": "22",
"key": "223"
}, {
"shixun_name": "C++选择结构——巧用switch",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/sm3c5a7v/challenges",
"parent": "22",
"key": "224"
}, {
"discipline_name": "循环",
"shixun_count": "2",
"video_count": "2",
"parent": 2,
"key": "23"
}, {
"shixun_name": "while语句",
"shixun_type": "视频",
"url": "https://video.educoder.net/dda06371a1594f5d865479a0fadc77bb/cb504e3af36ebe2ba979e8fe5fbb2222-hd.m3u8",
"parent": "23",
"key": "231"
}, {
"shixun_name": "C++循环结构——熟悉while",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/8yhf4sn6/challenges",
"parent": "23",
"key": "232"
}, {
"shixun_name": "for语句",
"shixun_type": "视频",
"url": "https://video.educoder.net/503194c483f44ccfacc7f9ee14cda70a/36cbd964c6657d1bbc43eb33b98f0c51-hd.m3u8",
"parent": "23",
"key": "233"
}, {
"shixun_name": "C++选择结构——巧用switch",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/sm3c5a7v/challenges",
"parent": "23",
"key": "234"
}, {
"stage_name": "函数",
"parent": 0,
"key": 3
}, {
"discipline_name": "函数的定义与调用",
"shixun_count": "2",
"video_count": "1",
"parent": 3,
"key": "31"
}, {
"shixun_name": "函数的定义与调用",
"shixun_type": "视频",
"url": "https://video.educoder.net/c10e39b3afb14ad0b890368aa1751821/ef361445294452e1d9bfacae80b3ec2f-hd.m3u8",
"parent": "31",
"key": "311"
}, {
"shixun_name": "C++函数的定义与调用1",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/3q4isevr/challenges",
"parent": "31",
"key": "312"
}, {
"shixun_name": "C++函数的定义与调用2",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/tlhxwo64/challenges",
"parent": "31",
"key": "313"
}, {
"discipline_name": "传输传递",
"shixun_count": "2",
"video_count": "1",
"parent": 3,
"key": "32"
}, {
"shixun_name": "函数的参数",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7785?subject_id=jpl5vs26",
"parent": "32",
"key": "321"
}, {
"shixun_name": "C++参数传递1",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/2phrn8yk/challenges",
"parent": "32",
"key": "322"
}, {
"shixun_name": "C++参数传递2",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/xsq7p4a6/challenges",
"parent": "32",
"key": "323"
}, {
"discipline_name": "函数重载",
"shixun_count": "1",
"video_count": "1",
"parent": 3,
"key": "33"
}, {
"shixun_name": "函数重载",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7785?subject_id=jpl5vs26",
"parent": "33",
"key": "331"
}, {
"shixun_name": "C++函数重载",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/6hbqpv7e/challenges",
"parent": "33",
"key": "332"
}, {
"discipline_name": "递归函数",
"shixun_count": "2",
"video_count": "1",
"parent": 3,
"key": "34"
}, {
"shixun_name": "函数的递归调用",
"shixun_type": "视频",
"url": "https://video.educoder.net/51a0935ddc884f1b9f6c1395f2011425/7308cd65a7fe1d13eebe2600054d29c7-hd.m3u8",
"parent": "34",
"key": "341"
}, {
"shixun_name": "递归函数编写入门",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/4qjw9t32/challenges",
"parent": "34",
"key": "342"
}, {
"shixun_name": "逆序输出(使用递归解决)",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/oxtrf27l/challenges",
"parent": "34",
"key": "343"
}, {
"stage_name": "类和对象",
"parent": 0,
"key": 4
}, {
"discipline_name": "构造函数和析构函数",
"shixun_count": "2",
"video_count": "1",
"parent": 4,
"key": "41"
}, {
"shixun_name": "构造函数和析构函数",
"shixun_type": "视频",
"url": "https://video.educoder.net/b4e17c1e8c8d449f862af9ea94fa9522/bad9e739addf73679a70e38a9d2cc32c-hd.m3u8",
"parent": "41",
"key": "411"
}, {
"shixun_name": "定义和使用结构",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/igwom4hs/challenges",
"parent": "41",
"key": "412"
}, {
"shixun_name": "定义和使用结构体",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/5yo6rw3f/challenges",
"parent": "41",
"key": "413"
}, {
"stage_name": "数据的共享与保护",
"parent": 0,
"key": 5
}, {
"discipline_name": "数据的共享与保护",
"shixun_count": "1",
"video_count": "1",
"parent": 5,
"key": "51"
}, {
"shixun_name": "数据的共享与保护",
"shixun_type": "视频",
"url": "https://video.educoder.net/fde33b24ff2b4bf5bc5e238dc473df8e/3cf407a74af29554226084d17fa17858-hd.m3u8",
"parent": "51",
"key": "511"
}, {
"shixun_name": "C++程序的结构",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/yqbh3fx5/challenges",
"parent": "51",
"key": "512"
}, {
"stage_name": "数组、指针与字符串",
"parent": 0,
"key": 6
}, {
"discipline_name": "数组",
"shixun_count": "1",
"video_count": "1",
"parent": 6,
"key": "61"
}, {
"shixun_name": "数组",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7785?subject_id=jpl5vs26",
"parent": "61",
"key": "611"
}, {
"shixun_name": "平均成绩与简单统计",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/4wcfgm5q/challenges",
"parent": "61",
"key": "612"
}, {
"discipline_name": "指针",
"shixun_count": "3",
"video_count": "1",
"parent": 6,
"key": "62"
}, {
"shixun_name": "指针",
"shixun_type": "视频",
"url": "https://video.educoder.net/00a5448862c84c42b1a369ac2be88ae9/9b9627710a725e570ede478663c2589d-hd.m3u8",
"parent": "62",
"key": "621"
}, {
"shixun_name": "指针练手-字符串倒序",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/lkn6xuc3/challenges",
"parent": "62",
"key": "622"
}, {
"shixun_name": "指针数组-单词倒序",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/vtk73ny2/challenges",
"parent": "62",
"key": "623"
}, {
"shixun_name": "用指针解决问题-文本格式处理",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/xfnp73fz/challenges",
"parent": "62",
"key": "624"
}, {
"stage_name": "类的继承",
"parent": 0,
"key": 7
}, {
"discipline_name": "类的继承",
"shixun_count": "1",
"video_count": "3",
"parent": 7,
"key": "71"
}, {
"shixun_name": "类的继承(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/1eedcdb9ec43442c93780f04859c9aa9/631b8c88eb263877d24637d5b8d54dc5-hd.m3u8",
"parent": "71",
"key": "711"
}, {
"shixun_name": "类的继承(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/fc1e7d8d8140469ba1bc01ee64fcc3c1/9256d13f4a14ae17ba9cac9f895b8a9d-hd.m3u8",
"parent": "71",
"key": "712"
}, {
"shixun_name": "类的继承(3)",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7806?subject_id=jpl5vs26",
"parent": "71",
"key": "713"
}, {
"shixun_name": "继承与派生",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/f83ipgyo/challenges",
"parent": "71",
"key": "714"
}, {
"stage_name": "多态性",
"parent": 0,
"key": 8
}, {
"discipline_name": "多态性",
"shixun_count": "1",
"video_count": "2",
"parent": 8,
"key": "81"
}, {
"shixun_name": "多态性(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/5a960b51ebf346d2b77afb3b70d00768/73d6fa00824f4c73b885d33f688c3294-hd.m3u8",
"parent": "81",
"key": "811"
}, {
"shixun_name": "多态性(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/08fe97a36e184cf1bf27cdd7a24794c9/625c4e9e863840443f5332ccc02761fc-hd.m3u8",
"parent": "81",
"key": "812"
}, {
"shixun_name": "虚函数与多态性",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/9pjmg7uf/challenges",
"parent": "81",
"key": "813"
}, {
"stage_name": "模板与群体数据",
"parent": 0,
"key": 9
}, {
"discipline_name": "模板与群体数据",
"shixun_count": "1",
"video_count": "3",
"parent": 9,
"key": "91"
}, {
"shixun_name": "模板与群体数据(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/8dcf418d2d16404d91af1780f669e549/eb538592d8a3b98e1c2f7f844f85b778-hd.m3u8",
"parent": "91",
"key": "911"
}, {
"shixun_name": "模板与群体数据(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/459f2693af7b48f8b854033e666a77f8/f5b140c5adc0f24ac56b72492373306a-hd.m3u8",
"parent": "91",
"key": "912"
}, {
"shixun_name": "模板与群体数据(3)",
"shixun_type": "视频",
"url": "https://video.educoder.net/ccea50bc15d2468aab99aff19eb69e16/a5ecac1ee0c07360d07880187a787085-hd.m3u8",
"parent": "91",
"key": "913"
}, {
"shixun_name": "群体类和群体数据的组织",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/kfv3my9o/challenges",
"parent": "91",
"key": "914"
}, {
"stage_name": "泛型程序设计与C++标准模板库",
"parent": 0,
"key": 10
}, {
"discipline_name": "泛型程序设计与C++标准模板库",
"shixun_count": "1",
"video_count": "3",
"parent": 10,
"key": "101"
}, {
"shixun_name": "泛型程序设计与C++标准模板库(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/2f3154d695a542fbaba5c483d8d7f7a9/aea4302c51501634469ed4b91462c810-hd.m3u8",
"parent": "101",
"key": "1011"
}, {
"shixun_name": "泛型程序设计与C++标准模板库(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/23be6a61e4e54db398b9172b1213a1f2/3f1e88f97957369e29ef2bde63640004-hd.m3u8",
"parent": "101",
"key": "1012"
}, {
"shixun_name": "泛型程序设计与C++标准模板库(3)",
"shixun_type": "视频",
"url": "https://video.educoder.net/a5887adcc34445bba695de7dcadb781e/0fb3a6a6ad38f7a107054c5f2f0de262-hd.m3u8",
"parent": "101",
"key": "1013"
}, {
"shixun_name": "泛型程序设计与C++标准模板库",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/hmtw5iq6/challenges",
"parent": "101",
"key": "1014"
}, {
"stage_name": "流类库与输入/输出11",
"parent": 0,
"key": 1911
}, {
"discipline_name": "流类库与输入/输出",
"shixun_count": "1",
"video_count": "2",
"parent": 1911,
"key": 9111
}, {
"shixun_name": "流类库与输入输出(1)22222",
"shixun_type": "视频",
"url": "https://video.educoder.net/c9e76b949ee847fbb89a926220526692/b80ff8d09a87bfde1064f5b73ae7c34b-hd.m3u8",
"parent": 9111,
"key": "91111"
}, {
"shixun_name": "流类库与输入输出(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/65c02365a4ad40858b69b8cbe3ca4aa1/18a2c5697d4a84a971c500565509f038-hd.m3u8",
"parent": "9111",
"key": "91112"
}, {
"shixun_name": "流类库与输入/输出",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/hsvuixpm/challenges",
"parent": "9111",
"key": "91113"
}, {
"stage_name": "异常处理",
"parent": 0,
"key": 12
}, {
"discipline_name": "异常处理",
"shixun_count": "1",
"video_count": "1",
"parent": 12,
"key": "121"
}, {
"shixun_name": "异常处理",
"shixun_type": "视频",
"url": "https://video.educoder.net/c95499dd4c064584914e32fca9563717/98a8be24326e3eb35375713f5ccbb8bb-hd.m3u8",
"parent": "121",
"key": "1211"
}, {
"shixun_name": "编写异常处理的类",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/nlt6f7ae/challenges",
"parent": "121",
"key": "1212"
}].map(function (item) {
item.parent = Number(item.parent);
item.key = Number(item.key);
return item;
}),
review: [{
"stage_name": "复习学习",
"parent": 9999999,
"key": 0
}, {
"stage_name": "简单程序设计",
"parent": 0,
"key": 1
}, {
"discipline_name": "基础数据类型和表达式",
"shixun_count": "1",
"video_count": "1",
"parent": 1,
"key": "11"
}, {
"shixun_name": "基础数据类型和表达式",
"shixun_type": "视频",
"url": "https://video.educoder.net/f5f9c87860cb4a98ba86da37b5bfac70/8d50a9c4d5d4d3382c09bad3f4c5dcb6-hd.m3u8",
"parent": "11",
"key": "111"
}, {
"shixun_name": "C++简单程序设计",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/lg5afhzv/challenges",
"parent": "11",
"key": "112"
}, {
"discipline_name": "循环",
"shixun_count": "2",
"video_count": "2",
"parent": 1,
"key": "12"
}, {
"shixun_name": "while语句",
"shixun_type": "视频",
"url": "https://video.educoder.net/dda06371a1594f5d865479a0fadc77bb/cb504e3af36ebe2ba979e8fe5fbb2222-hd.m3u8",
"parent": "12",
"key": "121"
}, {
"shixun_name": "C++循环结构——熟悉while",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/8yhf4sn6/challenges",
"parent": "12",
"key": "122"
}, {
"shixun_name": "for语句",
"shixun_type": "视频",
"url": "https://video.educoder.net/503194c483f44ccfacc7f9ee14cda70a/36cbd964c6657d1bbc43eb33b98f0c51-hd.m3u8",
"parent": "12",
"key": "123"
}, {
"shixun_name": "C++选择结构——巧用switch",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/sm3c5a7v/challenges",
"parent": "12",
"key": "124"
}, {
"stage_name": "函数",
"parent": 0,
"key": 2
}, {
"discipline_name": "函数的定义与调用",
"shixun_count": "2",
"video_count": "1",
"parent": 2,
"key": "21"
}, {
"shixun_name": "函数的定义与调用",
"shixun_type": "视频",
"url": "https://video.educoder.net/c10e39b3afb14ad0b890368aa1751821/ef361445294452e1d9bfacae80b3ec2f-hd.m3u8",
"parent": "21",
"key": "211"
}, {
"shixun_name": "C++函数的定义与调用1",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/3q4isevr/challenges",
"parent": "21",
"key": "212"
}, {
"shixun_name": "C++函数的定义与调用2",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/tlhxwo64/challenges",
"parent": "21",
"key": "213"
}, {
"discipline_name": "传输传递",
"shixun_count": "2",
"video_count": "1",
"parent": 2,
"key": "22"
}, {
"shixun_name": "函数的参数",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7785?subject_id=jpl5vs26",
"parent": "22",
"key": "221"
}, {
"shixun_name": "C++参数传递1",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/2phrn8yk/challenges",
"parent": "22",
"key": "222"
}, {
"shixun_name": "C++参数传递2",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/xsq7p4a6/challenges",
"parent": "22",
"key": "223"
}, {
"discipline_name": "递归函数",
"shixun_count": "2",
"video_count": "2",
"parent": 2,
"key": "23"
}, {
"shixun_name": "函数的递归调用",
"shixun_type": "视频",
"url": "https://video.educoder.net/51a0935ddc884f1b9f6c1395f2011425/7308cd65a7fe1d13eebe2600054d29c7-hd.m3u8",
"parent": "23",
"key": "231"
}, {
"shixun_name": "递归函数编写入门",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/4qjw9t32/challenges",
"parent": "23",
"key": "232"
}, {
"shixun_name": "逆序输出(使用递归解决)",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/oxtrf27l/challenges",
"parent": "23",
"key": "233"
}, {
"stage_name": "类和对象",
"parent": 0,
"key": 3
}, {
"discipline_name": "构造函数和析构函数",
"shixun_count": "2",
"video_count": "1",
"parent": 3,
"key": "31"
}, {
"shixun_name": "构造函数和析构函数",
"shixun_type": "视频",
"url": "https://video.educoder.net/b4e17c1e8c8d449f862af9ea94fa9522/bad9e739addf73679a70e38a9d2cc32c-hd.m3u8",
"parent": "31",
"key": "311"
}, {
"shixun_name": "定义和使用结构",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/igwom4hs/challenges",
"parent": "31",
"key": "312"
}, {
"shixun_name": "定义和使用结构体",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/5yo6rw3f/challenges",
"parent": "31",
"key": "313"
}, {
"stage_name": "数据的共享与保护",
"parent": 0,
"key": 4
}, {
"discipline_name": "数据的共享与保护",
"shixun_count": "1",
"video_count": "1",
"parent": 4,
"key": "41"
}, {
"shixun_name": "数据的共享与保护",
"shixun_type": "视频",
"url": "https://video.educoder.net/fde33b24ff2b4bf5bc5e238dc473df8e/3cf407a74af29554226084d17fa17858-hd.m3u8",
"parent": "41",
"key": "411"
}, {
"shixun_name": "C++程序的结构",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/yqbh3fx5/challenges",
"parent": "41",
"key": "412"
}, {
"stage_name": "数组、指针与字符串",
"parent": 0,
"key": 5
}, {
"discipline_name": "数组",
"shixun_count": "1",
"video_count": "1",
"parent": 5,
"key": "51"
}, {
"shixun_name": "数组",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7785?subject_id=jpl5vs26",
"parent": "51",
"key": "511"
}, {
"shixun_name": "平均成绩与简单统计",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/4wcfgm5q/challenges",
"parent": "51",
"key": "512"
}, {
"discipline_name": "指针",
"shixun_count": "1",
"video_count": "1",
"parent": 5,
"key": "52"
}, {
"shixun_name": "指针",
"shixun_type": "视频",
"url": "https://video.educoder.net/00a5448862c84c42b1a369ac2be88ae9/9b9627710a725e570ede478663c2589d-hd.m3u8",
"parent": "52",
"key": "521"
}, {
"shixun_name": "用指针解决问题-文本格式处理",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/xfnp73fz/challenges",
"parent": "52",
"key": "522"
}, {
"stage_name": "类的继承",
"parent": 0,
"key": 6
}, {
"discipline_name": "类的继承",
"shixun_count": "0",
"video_count": "2",
"parent": 6,
"key": "61"
}, {
"shixun_name": "类的继承(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/1eedcdb9ec43442c93780f04859c9aa9/631b8c88eb263877d24637d5b8d54dc5-hd.m3u8",
"parent": "61",
"key": "611"
}, {
"shixun_name": "类的继承(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/fc1e7d8d8140469ba1bc01ee64fcc3c1/9256d13f4a14ae17ba9cac9f895b8a9d-hd.m3u8",
"parent": "61",
"key": "612"
}, {
"stage_name": "多态性",
"parent": 0,
"key": 7
}, {
"discipline_name": "多态性",
"shixun_count": "1",
"video_count": "2",
"parent": 7,
"key": "71"
}, {
"shixun_name": "多态性(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/5a960b51ebf346d2b77afb3b70d00768/73d6fa00824f4c73b885d33f688c3294-hd.m3u8",
"parent": "71",
"key": "711"
}, {
"shixun_name": "多态性(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/08fe97a36e184cf1bf27cdd7a24794c9/625c4e9e863840443f5332ccc02761fc-hd.m3u8",
"parent": "71",
"key": "712"
}, {
"shixun_name": "虚函数与多态性",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/9pjmg7uf/challenges",
"parent": "71",
"key": "713"
}, {
"stage_name": "模板与群体数据",
"parent": 0,
"key": 8
}, {
"discipline_name": "模板与群体数据",
"shixun_count": "1",
"video_count": "1",
"parent": 8,
"key": "81"
}, {
"shixun_name": "模板与群体数据(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/8dcf418d2d16404d91af1780f669e549/eb538592d8a3b98e1c2f7f844f85b778-hd.m3u8",
"parent": "81",
"key": "811"
}, {
"shixun_name": "群体类和群体数据的组织",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/kfv3my9o/challenges",
"parent": "81",
"key": "812"
}, {
"stage_name": "泛型程序设计与C++标准模板库",
"parent": 0,
"key": 9
}, {
"discipline_name": "泛型程序设计与C++标准模板库",
"shixun_count": "1",
"video_count": "1",
"parent": 9,
"key": "91"
}, {
"shixun_name": "泛型程序设计与C++标准模板库(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/2f3154d695a542fbaba5c483d8d7f7a9/aea4302c51501634469ed4b91462c810-hd.m3u8",
"parent": "91",
"key": "911"
}, {
"shixun_name": "泛型程序设计与C++标准模板库",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/hmtw5iq6/challenges",
"parent": "91",
"key": "912"
}, {
"stage_name": "流类库与输入/输出",
"parent": 0,
"key": 10
}, {
"discipline_name": "流类库与输入/输出",
"shixun_count": "0",
"video_count": "2",
"parent": 10,
"key": "101"
}, {
"shixun_name": "流类库与输入输出(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/c9e76b949ee847fbb89a926220526692/b80ff8d09a87bfde1064f5b73ae7c34b-hd.m3u8",
"parent": "101",
"key": "1011"
}, {
"shixun_name": "流类库与输入输出(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/65c02365a4ad40858b69b8cbe3ca4aa1/18a2c5697d4a84a971c500565509f038-hd.m3u8",
"parent": "101",
"key": "1012"
}, {
"shixun_name": "流类库与输入/输出",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/hsvuixpm/challenges",
"parent": "101",
"key": "1013"
}, {
"stage_name": "异常处理",
"parent": 0,
"key": 9911
}, {
"discipline_name": "异常处理",
"shixun_count": "1",
"video_count": "1",
"parent": 9911,
"key": "99111"
}, {
"shixun_name": "异常处理",
"shixun_type": "视频",
"url": "https://video.educoder.net/c95499dd4c064584914e32fca9563717/98a8be24326e3eb35375713f5ccbb8bb-hd.m3u8",
"parent": "99111",
"key": "991111"
}, {
"shixun_name": "编写异常处理的类",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/nlt6f7ae/challenges",
"parent": "99111",
"key": "991112"
}].map(function (item) {
item.parent = Number(item.parent);
item.key = Number(item.key);
return item;
}),
before: [{
"stage_name": "考前学习",
"parent": 9999999,
"key": 0
}, {
"stage_name": "绪论",
"parent": 0,
"key": 1
}, {
"discipline_name": "绪论",
"shixun_count": "1",
"video_count": "2",
"parent": 1,
"key": "11"
}, {
"shixun_name": "绪论1",
"shixun_type": "视频",
"url": "https://video.educoder.net/f066ae1a9a8f418f837e5bf8d02b2690/76df907c20efd95bea0fa23424f10693-hd.m3u8",
"parent": "11",
"key": "111"
}, {
"shixun_name": "绪论2",
"shixun_type": "视频",
"url": "https://video.educoder.net/068ca7853da448c794eeffb0dee8bed4/5bb446a882043683e37474ff408f601b-hd.m3u8",
"parent": "11",
"key": "112"
}, {
"shixun_name": "C++开发环境应用入门",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/zxb937qn/challenges",
"parent": "11",
"key": "113"
}, {
"stage_name": "简单程序设计",
"parent": 0,
"key": 2
}, {
"discipline_name": "基础数据类型和表达式",
"shixun_count": "1",
"video_count": "1",
"parent": 2,
"key": "21"
}, {
"shixun_name": "基础数据类型和表达式",
"shixun_type": "视频",
"url": "https://video.educoder.net/f5f9c87860cb4a98ba86da37b5bfac70/8d50a9c4d5d4d3382c09bad3f4c5dcb6-hd.m3u8",
"parent": "21",
"key": "211"
}, {
"shixun_name": "C++简单程序设计",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/lg5afhzv/challenges",
"parent": "21",
"key": "212"
}, {
"stage_name": "函数",
"parent": 0,
"key": 3
}, {
"discipline_name": "函数的定义与调用",
"shixun_count": "2",
"video_count": "1",
"parent": 3,
"key": "31"
}, {
"shixun_name": "函数的定义与调用",
"shixun_type": "视频",
"url": "https://video.educoder.net/c10e39b3afb14ad0b890368aa1751821/ef361445294452e1d9bfacae80b3ec2f-hd.m3u8",
"parent": "31",
"key": "311"
}, {
"shixun_name": "C++函数的定义与调用1",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/3q4isevr/challenges",
"parent": "31",
"key": "312"
}, {
"shixun_name": "C++函数的定义与调用2",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/tlhxwo64/challenges",
"parent": "31",
"key": "313"
}, {
"discipline_name": "递归函数",
"shixun_count": "2",
"video_count": "1",
"parent": 3,
"key": "32"
}, {
"shixun_name": "函数的递归调用",
"shixun_type": "视频",
"url": "https://video.educoder.net/51a0935ddc884f1b9f6c1395f2011425/7308cd65a7fe1d13eebe2600054d29c7-hd.m3u8",
"parent": "32",
"key": "321"
}, {
"shixun_name": "递归函数编写入门",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/4qjw9t32/challenges",
"parent": "32",
"key": "322"
}, {
"shixun_name": "逆序输出(使用递归解决)",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/oxtrf27l/challenges",
"parent": "32",
"key": "323"
}, {
"stage_name": "类和对象",
"parent": 0,
"key": 4
}, {
"discipline_name": "构造函数和析构函数",
"shixun_count": "2",
"video_count": "1",
"parent": 4,
"key": "41"
}, {
"shixun_name": "构造函数和析构函数",
"shixun_type": "视频",
"url": "https://video.educoder.net/b4e17c1e8c8d449f862af9ea94fa9522/bad9e739addf73679a70e38a9d2cc32c-hd.m3u8",
"parent": "41",
"key": "411"
}, {
"shixun_name": "定义和使用结构",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/igwom4hs/challenges",
"parent": "41",
"key": "412"
}, {
"shixun_name": "定义和使用结构体",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/5yo6rw3f/challenges",
"parent": "41",
"key": "413"
}, {
"stage_name": "数据的共享与保护",
"parent": 0,
"key": 5
}, {
"discipline_name": "数据的共享与保护",
"shixun_count": "1",
"video_count": "1",
"parent": 5,
"key": "51"
}, {
"shixun_name": "数据的共享与保护",
"shixun_type": "视频",
"url": "https://video.educoder.net/fde33b24ff2b4bf5bc5e238dc473df8e/3cf407a74af29554226084d17fa17858-hd.m3u8",
"parent": "51",
"key": "511"
}, {
"shixun_name": "C++程序的结构",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/yqbh3fx5/challenges",
"parent": "51",
"key": "512"
}, {
"stage_name": "数组、指针与字符串",
"parent": 0,
"key": 6
}, {
"discipline_name": "数组",
"shixun_count": "1",
"video_count": "1",
"parent": 6,
"key": "61"
}, {
"shixun_name": "数组",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7785?subject_id=jpl5vs26",
"parent": "61",
"key": "611"
}, {
"shixun_name": "平均成绩与简单统计",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/4wcfgm5q/challenges",
"parent": "61",
"key": "612"
}, {
"stage_name": "类的继承",
"parent": 0,
"key": 7
}, {
"discipline_name": "类的继承",
"shixun_count": "1",
"video_count": "3",
"parent": 7,
"key": "71"
}, {
"shixun_name": "类的继承(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/1eedcdb9ec43442c93780f04859c9aa9/631b8c88eb263877d24637d5b8d54dc5-hd.m3u8",
"parent": "71",
"key": "711"
}, {
"shixun_name": "类的继承(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/fc1e7d8d8140469ba1bc01ee64fcc3c1/9256d13f4a14ae17ba9cac9f895b8a9d-hd.m3u8",
"parent": "71",
"key": "712"
}, {
"shixun_name": "类的继承(3)",
"shixun_type": "视频",
"url": "https://www.educoder.net/video/7806?subject_id=jpl5vs26",
"parent": "71",
"key": "713"
}, {
"shixun_name": "继承与派生",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/f83ipgyo/challenges",
"parent": "71",
"key": "714"
}, {
"stage_name": "模板与群体数据",
"parent": 0,
"key": 8
}, {
"discipline_name": "模板与群体数据",
"shixun_count": "0",
"video_count": "1",
"parent": 8,
"key": "81"
}, {
"shixun_name": "模板与群体数据(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/8dcf418d2d16404d91af1780f669e549/eb538592d8a3b98e1c2f7f844f85b778-hd.m3u8",
"parent": "81",
"key": "811"
}, {
"stage_name": "泛型程序设计与C++标准模板库",
"parent": 0,
"key": 9
}, {
"discipline_name": "泛型程序设计与C++标准模板库",
"shixun_count": "0",
"video_count": "1",
"parent": 9,
"key": "91"
}, {
"shixun_name": "泛型程序设计与C++标准模板库(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/2f3154d695a542fbaba5c483d8d7f7a9/aea4302c51501634469ed4b91462c810-hd.m3u8",
"parent": "91",
"key": "911"
}, {
"shixun_name": "泛型程序设计与C++标准模板库(2)",
"shixun_type": "视频",
"url": "https://video.educoder.net/23be6a61e4e54db398b9172b1213a1f2/3f1e88f97957369e29ef2bde63640004-hd.m3u8",
"parent": "91",
"key": "912"
}, {
"stage_name": "流类库与输入/输出",
"parent": 0,
"key": 10
}, {
"discipline_name": "流类库与输入/输出",
"shixun_count": "0",
"video_count": "1",
"parent": 10,
"key": "101"
}, {
"shixun_name": "流类库与输入输出(1)",
"shixun_type": "视频",
"url": "https://video.educoder.net/c9e76b949ee847fbb89a926220526692/b80ff8d09a87bfde1064f5b73ae7c34b-hd.m3u8",
"parent": "101",
"key": "1011"
}, {
"stage_name": "异常处理",
"parent": 0,
"key": 9911
}, {
"discipline_name": "异常处理",
"shixun_count": "1",
"video_count": "1",
"parent": 9911,
"key": "99111"
}, {
"shixun_name": "异常处理",
"shixun_type": "视频",
"url": "https://video.educoder.net/c95499dd4c064584914e32fca9563717/98a8be24326e3eb35375713f5ccbb8bb-hd.m3u8",
"parent": "99111",
"key": "991111"
}, {
"shixun_name": "编写异常处理的类",
"shixun_type": "实训",
"url": "https://www.educoder.net/shixuns/nlt6f7ae/challenges",
"parent": "99111",
"key": "991112"
}].map(function (item) {
item.parent = Number(item.parent);
item.key = Number(item.key);
return item;
})
};
// EXTERNAL MODULE: ./src/pages/Classrooms/Lists/components/TabMenu/index.tsx + 1 modules
var TabMenu = __webpack_require__(79512);
// EXTERNAL MODULE: ./src/components/Video/Play/index.jsx + 1 modules
var Play = __webpack_require__(64716);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/LearningPath/index.tsx
var ShixunsListPage = function ShixunsListPage(_ref) {
var classroomList = _ref.classroomList,
loading = _ref.loading,
dispatch = _ref.dispatch;
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
var _useState = (0,_react_17_0_2_react.useState)(objectSpread2_default()({}, (0,_umi_production_exports.useParams)())),
_useState2 = slicedToArray_default()(_useState, 1),
params = _useState2[0];
var _useState3 = (0,_react_17_0_2_react.useState)("init"),
_useState4 = slicedToArray_default()(_useState3, 2),
currentKey = _useState4[0],
setCurrentKey = _useState4[1];
var _useState5 = (0,_react_17_0_2_react.useState)(""),
_useState6 = slicedToArray_default()(_useState5, 2),
videoUrl = _useState6[0],
setVideoUrl = _useState6[1];
var iframeRef = (0,_react_17_0_2_react.useRef)();
(0,_react_17_0_2_react.useEffect)(function () {
var key = searchParams.get("tabId");
if (key) {
setCurrentKey(key);
params.status = key;
//似乎没用到
}
}, [params['categoryId'], searchParams.get("tabId")]);
var onMenuSelect = function onMenuSelect(v) {
setCurrentKey(v.key);
};
var Menus = [{
name: '初始学习',
id: 'init'
}, {
name: '复习学习',
id: 'review'
}, {
name: '考前学习',
id: 'before'
}];
var onMessage = function onMessage(data) {
if (data.data.type === "playVideo") {
setVideoUrl(data.data.url);
}
};
(0,_react_17_0_2_react.useEffect)(function () {
if (currentKey) {
sendData();
}
window.addEventListener("message", onMessage);
}, [currentKey]);
var sendData = function sendData() {
var _iframeRef$current$co;
(_iframeRef$current$co = iframeRef.current.contentWindow) === null || _iframeRef$current$co === void 0 || _iframeRef$current$co.postMessage({
data: learningData[currentKey]
}, '*');
// Fetch(`/api/courses/${params.coursesId}/ilearning_study.json`, {
// method: 'get',
// params: {
// scene: currentKey == 'init' ? 0 : (currentKey == 'review' ? 1 : 2)
// }
// }).then((res) => {
// if (res.status === 0) {
// iframeRef.current.contentWindow?.postMessage(
// {
// data: learningData[currentKey]
// // data: res?.data?.stages
// },
// '*',
// );
// }
// })
};
return /*#__PURE__*/(0,jsx_runtime.jsxs)("section", {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(TabMenu/* default */.Z, {
isLoading: loading['classroomList/getClassroomAttendancesList'],
tabDataSource: Menus,
isAdmin: (0,authority/* isAdmin */.GJ)(),
onTabMenuClick: onMenuSelect,
defaultSelectedKeys: [currentKey]
}), /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)(skeleton/* default */.Z, {
loading: loading['classroomList/getClassroomAttendancesList'],
active: true,
avatar: {
size: 40
},
paragraph: {
rows: 5
},
className: "mt30",
children: /*#__PURE__*/(0,jsx_runtime.jsx)("iframe", {
src: "/knowledgegraph/parseTree.html",
onLoad: sendData,
className: LearningPathmodules.iframe,
ref: iframeRef
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
open: !!videoUrl,
onCancel: function onCancel() {
return setVideoUrl("");
},
width: 800,
footer: null,
bodyStyle: {
padding: 0
},
centered: true,
destroyOnClose: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Play/* default */.Z
// ref={videoRef}
// startTime={video_item?.last_point}
, {
src: videoUrl,
autoPlay: true,
toLog: false
// videoId={video_item?.video_id}
// logWatchHistory={handlLogWatchHistory}
// handlePause={handlePause}
// handlePlay={handlePlay}
// videoSpeed={radioValue}
// handlePlayEnded={handlePlayEnded}
})
})]
});
};
/* harmony default export */ var LearningPath = ((0,_umi_production_exports.connect)(function (_ref2) {
var classroomList = _ref2.classroomList,
loading = _ref2.loading,
globalSetting = _ref2.globalSetting;
return {
classroomList: classroomList,
globalSetting: globalSetting,
loading: loading.effects
};
})(ShixunsListPage));
/***/ }),
/***/ 79512:
/*!*****************************************************************************!*\
!*** ./src/pages/Classrooms/Lists/components/TabMenu/index.tsx + 1 modules ***!
\*****************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ components_TabMenu; }
});
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
var row = __webpack_require__(95237);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
var col = __webpack_require__(43604);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/menu/index.js + 11 modules
var menu = __webpack_require__(20834);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/index.js + 1 modules
var dropdown = __webpack_require__(38854);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/components/TabMenu/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var TabMenumodules = ({"tabMenuContainer":"tabMenuContainer___uf5IP","control":"control___GheLs","iconH":"iconH___Wzw_r","selectBtn":"selectBtn___mfEnI"});
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/pages/Classrooms/Lists/components/TabMenu/index.tsx
var TabMenu = function TabMenu(_ref) {
var isLoading = _ref.isLoading,
addText = _ref.addText,
tabDataSource = _ref.tabDataSource,
isAdmin = _ref.isAdmin,
defaultSelectedKeys = _ref.defaultSelectedKeys,
onTabMenuClick = _ref.onTabMenuClick,
getDropdownMenu = _ref.getDropdownMenu,
showControlButton = _ref.showControlButton,
buttonText = _ref.buttonText,
_ref$buttonIcon = _ref.buttonIcon,
buttonIcon = _ref$buttonIcon === void 0 ? 'icon-tianjiadaohang' : _ref$buttonIcon,
extraNode = _ref.extraNode,
_ref$onButtonClick = _ref.onButtonClick,
onButtonClick = _ref$onButtonClick === void 0 ? function () {} : _ref$onButtonClick;
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: TabMenumodules.tabMenuContainer,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
flex: "1",
children: /*#__PURE__*/(0,jsx_runtime.jsx)(menu/* default */.Z, {
onSelect: function onSelect(v) {
return !isLoading ? onTabMenuClick(v) : {};
},
mode: "horizontal",
selectedKeys: defaultSelectedKeys,
children: tabDataSource.map(function (item) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)(menu/* default */.Z.Item, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-grey-666",
children: item.name
}), item.total !== undefined && isAdmin && /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "c-grey-999 ml20",
children: item.total || 0
})]
}, typeof item.index === 'number' ? item.index : item.id);
})
})
}), isAdmin && /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
className: "mr20",
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: TabMenumodules.control,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: TabMenumodules.extra,
children: extraNode
}), showControlButton && /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
onClick: onButtonClick,
style: {
cursor: 'pointer'
},
className: TabMenumodules.selectBtn,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont ".concat(buttonIcon)
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: buttonText
})]
}), !!getDropdownMenu && /*#__PURE__*/(0,jsx_runtime.jsx)(dropdown/* default */.Z, {
className: "ml10",
dropdownRender: getDropdownMenu,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
className: TabMenumodules.selectBtn,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-tianjiadaohang"
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: addText ? addText : '创建试卷'
})]
})
})]
})
})]
})
});
};
/* harmony default export */ var components_TabMenu = (TabMenu);
/***/ }),
/***/ 38854:
/*!************************************************************************!*\
!*** ./node_modules/_antd@5.9.0@antd/es/dropdown/index.js + 1 modules ***!
\************************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ es_dropdown; }
});
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/dropdown.js
var dropdown = __webpack_require__(91857);
// EXTERNAL MODULE: ./node_modules/_classnames@2.3.2@classnames/index.js
var _classnames_2_3_2_classnames = __webpack_require__(12124);
var _classnames_2_3_2_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_3_2_classnames);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.2.6@@ant-design/icons/es/icons/EllipsisOutlined.js + 1 modules
var EllipsisOutlined = __webpack_require__(93319);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
var context = __webpack_require__(36355);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/index.js + 3 modules
var space = __webpack_require__(81327);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/Compact.js
var Compact = __webpack_require__(33234);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/style/index.js + 1 modules
var style = __webpack_require__(47211);
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/dropdown-button.js
"use client";
var __rest = undefined && undefined.__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
const DropdownButton = props => {
const {
getPopupContainer: getContextPopupContainer,
getPrefixCls,
direction
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
const {
prefixCls: customizePrefixCls,
type = 'default',
danger,
disabled,
loading,
onClick,
htmlType,
children,
className,
menu,
arrow,
autoFocus,
overlay,
trigger,
align,
open,
onOpenChange,
placement,
getPopupContainer,
href,
icon = /*#__PURE__*/_react_17_0_2_react.createElement(EllipsisOutlined/* default */.Z, null),
title,
buttonsRender = buttons => buttons,
mouseEnterDelay,
mouseLeaveDelay,
overlayClassName,
overlayStyle,
destroyPopupOnHide,
dropdownRender
} = props,
restProps = __rest(props, ["prefixCls", "type", "danger", "disabled", "loading", "onClick", "htmlType", "children", "className", "menu", "arrow", "autoFocus", "overlay", "trigger", "align", "open", "onOpenChange", "placement", "getPopupContainer", "href", "icon", "title", "buttonsRender", "mouseEnterDelay", "mouseLeaveDelay", "overlayClassName", "overlayStyle", "destroyPopupOnHide", "dropdownRender"]);
const prefixCls = getPrefixCls('dropdown', customizePrefixCls);
const buttonPrefixCls = `${prefixCls}-button`;
const [wrapSSR, hashId] = (0,style/* default */.Z)(prefixCls);
const dropdownProps = {
menu,
arrow,
autoFocus,
align,
disabled,
trigger: disabled ? [] : trigger,
onOpenChange,
getPopupContainer: getPopupContainer || getContextPopupContainer,
mouseEnterDelay,
mouseLeaveDelay,
overlayClassName,
overlayStyle,
destroyPopupOnHide,
dropdownRender
};
const {
compactSize,
compactItemClassnames
} = (0,Compact/* useCompactItemContext */.ri)(prefixCls, direction);
const classes = _classnames_2_3_2_classnames_default()(buttonPrefixCls, compactItemClassnames, className, hashId);
if ('overlay' in props) {
dropdownProps.overlay = overlay;
}
if ('open' in props) {
dropdownProps.open = open;
}
if ('placement' in props) {
dropdownProps.placement = placement;
} else {
dropdownProps.placement = direction === 'rtl' ? 'bottomLeft' : 'bottomRight';
}
const leftButton = /*#__PURE__*/_react_17_0_2_react.createElement(es_button/* default */.ZP, {
type: type,
danger: danger,
disabled: disabled,
loading: loading,
onClick: onClick,
htmlType: htmlType,
href: href,
title: title
}, children);
const rightButton = /*#__PURE__*/_react_17_0_2_react.createElement(es_button/* default */.ZP, {
type: type,
danger: danger,
icon: icon
});
const [leftButtonToRender, rightButtonToRender] = buttonsRender([leftButton, rightButton]);
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement(space/* default */.Z.Compact, Object.assign({
className: classes,
size: compactSize,
block: true
}, restProps), leftButtonToRender, /*#__PURE__*/_react_17_0_2_react.createElement(dropdown/* default */.Z, Object.assign({}, dropdownProps), rightButtonToRender)));
};
DropdownButton.__ANT_BUTTON = true;
/* harmony default export */ var dropdown_button = (DropdownButton);
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/dropdown/index.js
"use client";
const Dropdown = dropdown/* default */.Z;
Dropdown.Button = dropdown_button;
/* harmony default export */ var es_dropdown = (Dropdown);
/***/ }),
/***/ 81327:
/*!*********************************************************************!*\
!*** ./node_modules/_antd@5.9.0@antd/es/space/index.js + 3 modules ***!
\*********************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Z: function() { return /* binding */ space; }
});
// UNUSED EXPORTS: SpaceContext
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
// EXTERNAL MODULE: ./node_modules/_classnames@2.3.2@classnames/index.js
var _classnames_2_3_2_classnames = __webpack_require__(12124);
var _classnames_2_3_2_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_3_2_classnames);
// EXTERNAL MODULE: ./node_modules/_rc-util@5.38.1@rc-util/es/Children/toArray.js
var toArray = __webpack_require__(45659);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/config-provider/context.js
var context = __webpack_require__(36355);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/Compact.js
var Compact = __webpack_require__(33234);
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/context.js
const SpaceContext = /*#__PURE__*/_react_17_0_2_react.createContext({
latestIndex: 0
});
const SpaceContextProvider = SpaceContext.Provider;
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/Item.js
"use client";
const Item = _ref => {
let {
className,
index,
children,
split,
style
} = _ref;
const {
latestIndex
} = _react_17_0_2_react.useContext(SpaceContext);
if (children === null || children === undefined) {
return null;
}
return /*#__PURE__*/_react_17_0_2_react.createElement(_react_17_0_2_react.Fragment, null, /*#__PURE__*/_react_17_0_2_react.createElement("div", {
className: className,
style: style
}, children), index < latestIndex && split && /*#__PURE__*/_react_17_0_2_react.createElement("span", {
className: `${className}-split`
}, split));
};
/* harmony default export */ var space_Item = (Item);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/style/index.js + 1 modules
var space_style = __webpack_require__(2856);
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/utils.js
function isPresetSize(size) {
return ['small', 'middle', 'large'].includes(size);
}
function isValidGapNumber(size) {
if (!size) {
// The case of size = 0 is deliberately excluded here, because the default value of the gap attribute in CSS is 0, so if the user passes 0 in, we can directly ignore it.
return false;
}
return typeof size === 'number' && !Number.isNaN(size);
}
;// CONCATENATED MODULE: ./node_modules/_antd@5.9.0@antd/es/space/index.js
"use client";
var __rest = undefined && undefined.__rest || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
}
return t;
};
const Space = /*#__PURE__*/_react_17_0_2_react.forwardRef((props, ref) => {
var _a, _b;
const {
getPrefixCls,
space,
direction: directionConfig
} = _react_17_0_2_react.useContext(context/* ConfigContext */.E_);
const {
size = (space === null || space === void 0 ? void 0 : space.size) || 'small',
align,
className,
rootClassName,
children,
direction = 'horizontal',
prefixCls: customizePrefixCls,
split,
style,
wrap = false,
classNames: customClassNames,
styles
} = props,
otherProps = __rest(props, ["size", "align", "className", "rootClassName", "children", "direction", "prefixCls", "split", "style", "wrap", "classNames", "styles"]);
const [horizontalSize, verticalSize] = Array.isArray(size) ? size : [size, size];
const isPresetVerticalSize = isPresetSize(verticalSize);
const isPresetHorizontalSize = isPresetSize(horizontalSize);
const isValidVerticalSize = isValidGapNumber(verticalSize);
const isValidHorizontalSize = isValidGapNumber(horizontalSize);
const childNodes = (0,toArray/* default */.Z)(children, {
keepEmpty: true
});
const mergedAlign = align === undefined && direction === 'horizontal' ? 'center' : align;
const prefixCls = getPrefixCls('space', customizePrefixCls);
const [wrapSSR, hashId] = (0,space_style/* default */.Z)(prefixCls);
const cls = _classnames_2_3_2_classnames_default()(prefixCls, space === null || space === void 0 ? void 0 : space.className, hashId, `${prefixCls}-${direction}`, {
[`${prefixCls}-rtl`]: directionConfig === 'rtl',
[`${prefixCls}-align-${mergedAlign}`]: mergedAlign,
[`${prefixCls}-gap-row-${verticalSize}`]: isPresetVerticalSize,
[`${prefixCls}-gap-col-${horizontalSize}`]: isPresetHorizontalSize
}, className, rootClassName);
const itemClassName = _classnames_2_3_2_classnames_default()(`${prefixCls}-item`, (_a = customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.classNames) === null || _b === void 0 ? void 0 : _b.item);
// Calculate latest one
let latestIndex = 0;
const nodes = childNodes.map((child, i) => {
var _a, _b;
if (child !== null && child !== undefined) {
latestIndex = i;
}
const key = child && child.key || `${itemClassName}-${i}`;
return /*#__PURE__*/_react_17_0_2_react.createElement(space_Item, {
className: itemClassName,
key: key,
index: i,
split: split,
style: (_a = styles === null || styles === void 0 ? void 0 : styles.item) !== null && _a !== void 0 ? _a : (_b = space === null || space === void 0 ? void 0 : space.styles) === null || _b === void 0 ? void 0 : _b.item
}, child);
});
const spaceContext = _react_17_0_2_react.useMemo(() => ({
latestIndex
}), [latestIndex]);
// =========================== Render ===========================
if (childNodes.length === 0) {
return null;
}
const gapStyle = {};
if (wrap) {
gapStyle.flexWrap = 'wrap';
}
if (!isPresetHorizontalSize && isValidHorizontalSize) {
gapStyle.columnGap = horizontalSize;
}
if (!isPresetVerticalSize && isValidVerticalSize) {
gapStyle.rowGap = verticalSize;
}
return wrapSSR( /*#__PURE__*/_react_17_0_2_react.createElement("div", Object.assign({
ref: ref,
className: cls,
style: Object.assign(Object.assign(Object.assign({}, gapStyle), space === null || space === void 0 ? void 0 : space.style), style)
}, otherProps), /*#__PURE__*/_react_17_0_2_react.createElement(SpaceContextProvider, {
value: spaceContext
}, nodes)));
});
if (false) {}
const CompoundedSpace = Space;
CompoundedSpace.Compact = Compact/* default */.ZP;
/* harmony default export */ var space = (CompoundedSpace);
/***/ }),
/***/ 92899:
/*!***************************************************************!*\
!*** ./node_modules/_antd@5.9.0@antd/es/style/motion/move.js ***!
\***************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ Fm: function() { return /* binding */ initMoveMotion; }
/* harmony export */ });
/* unused harmony exports moveDownIn, moveDownOut, moveLeftIn, moveLeftOut, moveRightIn, moveRightOut, moveUpIn, moveUpOut */
/* harmony import */ var _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ant-design/cssinjs */ 84608);
/* harmony import */ var _motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./motion */ 95406);
const moveDownIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveDownIn', {
'0%': {
transform: 'translate3d(0, 100%, 0)',
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveDownOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveDownOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: 'translate3d(0, 100%, 0)',
transformOrigin: '0 0',
opacity: 0
}
});
const moveLeftIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveLeftIn', {
'0%': {
transform: 'translate3d(-100%, 0, 0)',
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveLeftOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveLeftOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: 'translate3d(-100%, 0, 0)',
transformOrigin: '0 0',
opacity: 0
}
});
const moveRightIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveRightIn', {
'0%': {
transform: 'translate3d(100%, 0, 0)',
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveRightOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveRightOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: 'translate3d(100%, 0, 0)',
transformOrigin: '0 0',
opacity: 0
}
});
const moveUpIn = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveUpIn', {
'0%': {
transform: 'translate3d(0, -100%, 0)',
transformOrigin: '0 0',
opacity: 0
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
}
});
const moveUpOut = new _ant_design_cssinjs__WEBPACK_IMPORTED_MODULE_0__.Keyframes('antMoveUpOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1
},
'100%': {
transform: 'translate3d(0, -100%, 0)',
transformOrigin: '0 0',
opacity: 0
}
});
const moveMotion = {
'move-up': {
inKeyframes: moveUpIn,
outKeyframes: moveUpOut
},
'move-down': {
inKeyframes: moveDownIn,
outKeyframes: moveDownOut
},
'move-left': {
inKeyframes: moveLeftIn,
outKeyframes: moveLeftOut
},
'move-right': {
inKeyframes: moveRightIn,
outKeyframes: moveRightOut
}
};
const initMoveMotion = (token, motionName) => {
const {
antCls
} = token;
const motionCls = `${antCls}-${motionName}`;
const {
inKeyframes,
outKeyframes
} = moveMotion[motionName];
return [(0,_motion__WEBPACK_IMPORTED_MODULE_1__/* .initMotion */ .R)(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {
[`
${motionCls}-enter,
${motionCls}-appear
`]: {
opacity: 0,
animationTimingFunction: token.motionEaseOutCirc
},
[`${motionCls}-leave`]: {
animationTimingFunction: token.motionEaseInOutCirc
}
}];
};
/***/ }),
/***/ 25769:
/*!**************************************************************************!*\
!*** ./node_modules/_copy-to-clipboard@3.3.3@copy-to-clipboard/index.js ***!
\**************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
var deselectCurrent = __webpack_require__(/*! toggle-selection */ 98040);
var clipboardToIE11Formatting = {
"text/plain": "Text",
"text/html": "Url",
"default": "Text"
}
var defaultMessage = "Copy to clipboard: #{key}, Enter";
function format(message) {
var copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
return message.replace(/#{\s*key\s*}/g, copyKey);
}
function copy(text, options) {
var debug,
message,
reselectPrevious,
range,
selection,
mark,
success = false;
if (!options) {
options = {};
}
debug = options.debug || false;
try {
reselectPrevious = deselectCurrent();
range = document.createRange();
selection = document.getSelection();
mark = document.createElement("span");
mark.textContent = text;
// avoid screen readers from reading out loud the text
mark.ariaHidden = "true"
// reset user styles for span element
mark.style.all = "unset";
// prevents scrolling to the end of the page
mark.style.position = "fixed";
mark.style.top = 0;
mark.style.clip = "rect(0, 0, 0, 0)";
// used to preserve spaces and line breaks
mark.style.whiteSpace = "pre";
// do not inherit user-select (it may be `none`)
mark.style.webkitUserSelect = "text";
mark.style.MozUserSelect = "text";
mark.style.msUserSelect = "text";
mark.style.userSelect = "text";
mark.addEventListener("copy", function(e) {
e.stopPropagation();
if (options.format) {
e.preventDefault();
if (typeof e.clipboardData === "undefined") { // IE 11
debug && console.warn("unable to use e.clipboardData");
debug && console.warn("trying IE specific stuff");
window.clipboardData.clearData();
var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"]
window.clipboardData.setData(format, text);
} else { // all other browsers
e.clipboardData.clearData();
e.clipboardData.setData(options.format, text);
}
}
if (options.onCopy) {
e.preventDefault();
options.onCopy(e.clipboardData);
}
});
document.body.appendChild(mark);
range.selectNodeContents(mark);
selection.addRange(range);
var successful = document.execCommand("copy");
if (!successful) {
throw new Error("copy command was unsuccessful");
}
success = true;
} catch (err) {
debug && console.error("unable to copy using execCommand: ", err);
debug && console.warn("trying IE specific stuff");
try {
window.clipboardData.setData(options.format || "text", text);
options.onCopy && options.onCopy(window.clipboardData);
success = true;
} catch (err) {
debug && console.error("unable to copy using clipboardData: ", err);
debug && console.error("falling back to prompt");
message = format("message" in options ? options.message : defaultMessage);
window.prompt(message, text);
}
} finally {
if (selection) {
if (typeof selection.removeRange == "function") {
selection.removeRange(range);
} else {
selection.removeAllRanges();
}
}
if (mark) {
document.body.removeChild(mark);
}
reselectPrevious();
}
return success;
}
module.exports = copy;
/***/ }),
/***/ 83145:
/*!**********************************************************************************************!*\
!*** ./node_modules/_react-copy-to-clipboard@5.0.2@react-copy-to-clipboard/lib/Component.js ***!
\**********************************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.CopyToClipboard = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ 59301));
var _copyToClipboard = _interopRequireDefault(__webpack_require__(/*! copy-to-clipboard */ 25769));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var CopyToClipboard =
/*#__PURE__*/
function (_React$PureComponent) {
_inherits(CopyToClipboard, _React$PureComponent);
function CopyToClipboard() {
var _getPrototypeOf2;
var _this;
_classCallCheck(this, CopyToClipboard);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CopyToClipboard)).call.apply(_getPrototypeOf2, [this].concat(args)));
_defineProperty(_assertThisInitialized(_this), "onClick", function (event) {
var _this$props = _this.props,
text = _this$props.text,
onCopy = _this$props.onCopy,
children = _this$props.children,
options = _this$props.options;
var elem = _react["default"].Children.only(children);
var result = (0, _copyToClipboard["default"])(text, options);
if (onCopy) {
onCopy(text, result);
} // Bypass onClick if it was present
if (elem && elem.props && typeof elem.props.onClick === 'function') {
elem.props.onClick(event);
}
});
return _this;
}
_createClass(CopyToClipboard, [{
key: "render",
value: function render() {
var _this$props2 = this.props,
_text = _this$props2.text,
_onCopy = _this$props2.onCopy,
_options = _this$props2.options,
children = _this$props2.children,
props = _objectWithoutProperties(_this$props2, ["text", "onCopy", "options", "children"]);
var elem = _react["default"].Children.only(children);
return _react["default"].cloneElement(elem, _objectSpread({}, props, {
onClick: this.onClick
}));
}
}]);
return CopyToClipboard;
}(_react["default"].PureComponent);
exports.CopyToClipboard = CopyToClipboard;
_defineProperty(CopyToClipboard, "defaultProps", {
onCopy: undefined,
options: undefined
});
/***/ }),
/***/ 56102:
/*!******************************************************************************************!*\
!*** ./node_modules/_react-copy-to-clipboard@5.0.2@react-copy-to-clipboard/lib/index.js ***!
\******************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
"use strict";
var _require = __webpack_require__(/*! ./Component */ 83145),
CopyToClipboard = _require.CopyToClipboard;
CopyToClipboard.CopyToClipboard = CopyToClipboard;
module.exports = CopyToClipboard;
/***/ }),
/***/ 98040:
/*!************************************************************************!*\
!*** ./node_modules/_toggle-selection@1.0.6@toggle-selection/index.js ***!
\************************************************************************/
/***/ (function(module) {
module.exports = function () {
var selection = document.getSelection();
if (!selection.rangeCount) {
return function () {};
}
var active = document.activeElement;
var ranges = [];
for (var i = 0; i < selection.rangeCount; i++) {
ranges.push(selection.getRangeAt(i));
}
switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
case 'INPUT':
case 'TEXTAREA':
active.blur();
break;
default:
active = null;
break;
}
selection.removeAllRanges();
return function () {
selection.type === 'Caret' &&
selection.removeAllRanges();
if (!selection.rangeCount) {
ranges.forEach(function(range) {
selection.addRange(range);
});
}
active &&
active.focus();
};
};
/***/ })
}]);