@e10in/videojs-record
Version:
A video.js plugin for recording audio/video/image files.
1,306 lines (980 loc) • 159 kB
JavaScript
/*!
* @e10in/videojs-record
* @version 4.4.4
* @see https://github.com/collab-project/videojs-record
* @copyright 2014-2021 Collab
* @license MIT
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("recordrtc"), require("video.js"));
else if(typeof define === 'function' && define.amd)
define("VideojsRecord", ["recordrtc", "video.js"], factory);
else if(typeof exports === 'object')
exports["VideojsRecord"] = factory(require("recordrtc"), require("video.js"));
else
root["VideojsRecord"] = factory(root["RecordRTC"], root["videojs"]);
})(self, function(__WEBPACK_EXTERNAL_MODULE_recordrtc__, __WEBPACK_EXTERNAL_MODULE_video_js__) {
return /******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
\**********************************************************************/
/***/ ((module) => {
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
module.exports = _assertThisInitialized;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js":
/*!*****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
\*****************************************************************/
/***/ ((module) => {
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
function _asyncToGenerator(fn) {
return function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
module.exports = _asyncToGenerator;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
\***************************************************************/
/***/ ((module) => {
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
module.exports = _classCallCheck;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/createClass.js":
/*!************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
\************************************************************/
/***/ ((module) => {
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;
}
module.exports = _createClass;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/get.js":
/*!****************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/get.js ***!
\****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var superPropBase = __webpack_require__(/*! ./superPropBase */ "./node_modules/@babel/runtime/helpers/superPropBase.js");
function _get(target, property, receiver) {
if (typeof Reflect !== "undefined" && Reflect.get) {
module.exports = _get = Reflect.get;
} else {
module.exports = _get = function _get(target, property, receiver) {
var base = superPropBase(target, property);
if (!base) return;
var desc = Object.getOwnPropertyDescriptor(base, property);
if (desc.get) {
return desc.get.call(receiver);
}
return desc.value;
};
}
return _get(target, property, receiver || target);
}
module.exports = _get;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
\***************************************************************/
/***/ ((module) => {
function _getPrototypeOf(o) {
module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
module.exports = _getPrototypeOf;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/inherits.js":
/*!*********************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/inherits.js ***!
\*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js");
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);
}
module.exports = _inherits;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
\**********************************************************************/
/***/ ((module) => {
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
"default": obj
};
}
module.exports = _interopRequireDefault;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
/*!**************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
\**************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var _typeof = __webpack_require__(/*! ../helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized */ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js");
function _possibleConstructorReturn(self, call) {
if (call && (_typeof(call) === "object" || typeof call === "function")) {
return call;
}
return assertThisInitialized(self);
}
module.exports = _possibleConstructorReturn;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js":
/*!***************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
\***************************************************************/
/***/ ((module) => {
function _setPrototypeOf(o, p) {
module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
module.exports = _setPrototypeOf;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/superPropBase.js":
/*!**************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/superPropBase.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js");
function _superPropBase(object, property) {
while (!Object.prototype.hasOwnProperty.call(object, property)) {
object = getPrototypeOf(object);
if (object === null) break;
}
return object;
}
module.exports = _superPropBase;
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
\*******************************************************/
/***/ ((module) => {
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return typeof obj;
};
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
module.exports = _typeof;
/***/ }),
/***/ "./node_modules/@babel/runtime/regenerator/index.js":
/*!**********************************************************!*\
!*** ./node_modules/@babel/runtime/regenerator/index.js ***!
\**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
module.exports = __webpack_require__(/*! regenerator-runtime */ "./node_modules/regenerator-runtime/runtime.js");
/***/ }),
/***/ "./node_modules/add-zero/index.js":
/*!****************************************!*\
!*** ./node_modules/add-zero/index.js ***!
\****************************************/
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_RESULT__;(function(exports) {
'use strict';
function addZero(value, digits) {
digits = digits || 2;
var isNegative = Number(value) < 0;
var buffer = value.toString();
var size = 0;
// Strip minus sign if number is negative
if(isNegative) {
buffer = buffer.slice(1);
}
size = digits - buffer.length + 1;
buffer = new Array(size).join('0').concat(buffer);
// Adds back minus sign if needed
return (isNegative ? '-' : '') + buffer;
}
if(true) {
!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { return addZero; }).call(exports, __webpack_require__, exports, module),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {}
})(this);
/***/ }),
/***/ "./src/js/controls/animation-display.js":
/*!**********************************************!*\
!*** ./src/js/controls/animation-display.js ***!
\**********************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "./node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Component = _video.default.getComponent('Component');
var AnimationDisplay = function (_Component) {
(0, _inherits2.default)(AnimationDisplay, _Component);
var _super = _createSuper(AnimationDisplay);
function AnimationDisplay() {
(0, _classCallCheck2.default)(this, AnimationDisplay);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(AnimationDisplay, [{
key: "createEl",
value: function createEl() {
var imgElement = _video.default.dom.createEl('img');
var el = (0, _get2.default)((0, _getPrototypeOf2.default)(AnimationDisplay.prototype), "createEl", this).call(this, 'div', {
className: 'vjs-animation-display',
dir: 'ltr'
});
el.appendChild(imgElement);
return el;
}
}]);
return AnimationDisplay;
}(Component);
Component.registerComponent('AnimationDisplay', AnimationDisplay);
var _default = AnimationDisplay;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/controls/camera-button.js":
/*!******************************************!*\
!*** ./src/js/controls/camera-button.js ***!
\******************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "./node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
var _event = _interopRequireDefault(__webpack_require__(/*! ../event */ "./src/js/event.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Button = _video.default.getComponent('Button');
var Component = _video.default.getComponent('Component');
var CameraButton = function (_Button) {
(0, _inherits2.default)(CameraButton, _Button);
var _super = _createSuper(CameraButton);
function CameraButton() {
(0, _classCallCheck2.default)(this, CameraButton);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(CameraButton, [{
key: "buildCSSClass",
value: function buildCSSClass() {
return 'vjs-camera-button vjs-control vjs-button vjs-icon-photo-camera';
}
}, {
key: "enable",
value: function enable() {
(0, _get2.default)((0, _getPrototypeOf2.default)(CameraButton.prototype), "enable", this).call(this);
this.on(this.player_, _event.default.START_RECORD, this.onStart);
this.on(this.player_, _event.default.STOP_RECORD, this.onStop);
}
}, {
key: "disable",
value: function disable() {
(0, _get2.default)((0, _getPrototypeOf2.default)(CameraButton.prototype), "disable", this).call(this);
this.off(this.player_, _event.default.START_RECORD, this.onStart);
this.off(this.player_, _event.default.STOP_RECORD, this.onStop);
}
}, {
key: "show",
value: function show() {
if (this.layoutExclude && this.layoutExclude === true) {
return;
}
(0, _get2.default)((0, _getPrototypeOf2.default)(CameraButton.prototype), "show", this).call(this);
}
}, {
key: "handleClick",
value: function handleClick(event) {
var recorder = this.player_.record();
if (!recorder.isProcessing()) {
recorder.start();
} else {
recorder.retrySnapshot();
this.onStop();
this.player_.trigger(_event.default.RETRY);
}
}
}, {
key: "onStart",
value: function onStart(event) {
this.removeClass('vjs-icon-photo-camera');
this.addClass('vjs-icon-replay');
this.controlText('Retry');
}
}, {
key: "onStop",
value: function onStop(event) {
this.removeClass('vjs-icon-replay');
this.addClass('vjs-icon-photo-camera');
this.controlText('Image');
}
}]);
return CameraButton;
}(Button);
CameraButton.prototype.controlText_ = 'Image';
Component.registerComponent('CameraButton', CameraButton);
var _default = CameraButton;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/controls/device-button.js":
/*!******************************************!*\
!*** ./src/js/controls/device-button.js ***!
\******************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "./node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Button = _video.default.getComponent('Button');
var Component = _video.default.getComponent('Component');
var DeviceButton = function (_Button) {
(0, _inherits2.default)(DeviceButton, _Button);
var _super = _createSuper(DeviceButton);
function DeviceButton() {
(0, _classCallCheck2.default)(this, DeviceButton);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(DeviceButton, [{
key: "handleClick",
value: function handleClick(event) {
this.player_.record().getDevice();
}
}, {
key: "show",
value: function show() {
if (this.layoutExclude && this.layoutExclude === true) {
return;
}
(0, _get2.default)((0, _getPrototypeOf2.default)(DeviceButton.prototype), "show", this).call(this);
}
}]);
return DeviceButton;
}(Button);
DeviceButton.prototype.controlText_ = 'Device';
Component.registerComponent('DeviceButton', DeviceButton);
var _default = DeviceButton;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/controls/picture-in-picture-toggle.js":
/*!******************************************************!*\
!*** ./src/js/controls/picture-in-picture-toggle.js ***!
\******************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "./node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
var _event = _interopRequireDefault(__webpack_require__(/*! ../event */ "./src/js/event.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Button = _video.default.getComponent('Button');
var Component = _video.default.getComponent('Component');
var PictureInPictureToggle = function (_Button) {
(0, _inherits2.default)(PictureInPictureToggle, _Button);
var _super = _createSuper(PictureInPictureToggle);
function PictureInPictureToggle(player, options) {
var _this;
(0, _classCallCheck2.default)(this, PictureInPictureToggle);
_this = _super.call(this, player, options);
_this.on(_this.player_, _event.default.ENTER_PIP, _this.onStart);
_this.on(_this.player_, _event.default.LEAVE_PIP, _this.onStop);
return _this;
}
(0, _createClass2.default)(PictureInPictureToggle, [{
key: "buildCSSClass",
value: function buildCSSClass() {
return 'vjs-pip-button vjs-control vjs-button vjs-icon-picture-in-picture-start';
}
}, {
key: "show",
value: function show() {
if (this.layoutExclude && this.layoutExclude === true) {
return;
}
(0, _get2.default)((0, _getPrototypeOf2.default)(PictureInPictureToggle.prototype), "show", this).call(this);
}
}, {
key: "handleClick",
value: function () {
var _handleClick = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(event) {
var recorder;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
recorder = this.player_.record();
this.disable();
_context.prev = 2;
if (!(recorder.mediaElement !== document.pictureInPictureElement)) {
_context.next = 8;
break;
}
_context.next = 6;
return recorder.mediaElement.requestPictureInPicture();
case 6:
_context.next = 10;
break;
case 8:
_context.next = 10;
return document.exitPictureInPicture();
case 10:
_context.next = 15;
break;
case 12:
_context.prev = 12;
_context.t0 = _context["catch"](2);
this.player_.trigger(_event.default.ERROR, _context.t0);
case 15:
_context.prev = 15;
this.enable();
return _context.finish(15);
case 18:
case "end":
return _context.stop();
}
}
}, _callee, this, [[2, 12, 15, 18]]);
}));
function handleClick(_x) {
return _handleClick.apply(this, arguments);
}
return handleClick;
}()
}, {
key: "onStart",
value: function onStart(event) {
this.removeClass('vjs-icon-picture-in-picture-start');
this.addClass('vjs-icon-picture-in-picture-stop');
}
}, {
key: "onStop",
value: function onStop(event) {
this.removeClass('vjs-icon-picture-in-picture-stop');
this.addClass('vjs-icon-picture-in-picture-start');
}
}]);
return PictureInPictureToggle;
}(Button);
PictureInPictureToggle.prototype.controlText_ = 'Picture in Picture';
Component.registerComponent('PictureInPictureToggle', PictureInPictureToggle);
var _default = PictureInPictureToggle;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/controls/record-canvas.js":
/*!******************************************!*\
!*** ./src/js/controls/record-canvas.js ***!
\******************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "./node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Component = _video.default.getComponent('Component');
var RecordCanvas = function (_Component) {
(0, _inherits2.default)(RecordCanvas, _Component);
var _super = _createSuper(RecordCanvas);
function RecordCanvas() {
(0, _classCallCheck2.default)(this, RecordCanvas);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(RecordCanvas, [{
key: "createEl",
value: function createEl() {
var canvasElement = _video.default.dom.createEl('canvas');
var el = (0, _get2.default)((0, _getPrototypeOf2.default)(RecordCanvas.prototype), "createEl", this).call(this, 'div', {
className: 'vjs-record-canvas',
dir: 'ltr'
});
el.appendChild(canvasElement);
return el;
}
}]);
return RecordCanvas;
}(Component);
Component.registerComponent('RecordCanvas', RecordCanvas);
var _default = RecordCanvas;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/controls/record-indicator.js":
/*!*********************************************!*\
!*** ./src/js/controls/record-indicator.js ***!
\*********************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "./node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
var _event = _interopRequireDefault(__webpack_require__(/*! ../event */ "./src/js/event.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Component = _video.default.getComponent('Component');
var RecordIndicator = function (_Component) {
(0, _inherits2.default)(RecordIndicator, _Component);
var _super = _createSuper(RecordIndicator);
function RecordIndicator(player, options) {
var _this;
(0, _classCallCheck2.default)(this, RecordIndicator);
_this = _super.call(this, player, options);
_this.enable();
return _this;
}
(0, _createClass2.default)(RecordIndicator, [{
key: "createEl",
value: function createEl() {
var props = {
className: 'vjs-record-indicator vjs-control',
dir: 'ltr'
};
var attr = {
'data-label': this.localize('REC')
};
return (0, _get2.default)((0, _getPrototypeOf2.default)(RecordIndicator.prototype), "createEl", this).call(this, 'div', props, attr);
}
}, {
key: "enable",
value: function enable() {
this.on(this.player_, _event.default.START_RECORD, this.show);
this.on(this.player_, _event.default.STOP_RECORD, this.hide);
}
}, {
key: "disable",
value: function disable() {
this.off(this.player_, _event.default.START_RECORD, this.show);
this.off(this.player_, _event.default.STOP_RECORD, this.hide);
}
}, {
key: "show",
value: function show() {
if (this.layoutExclude && this.layoutExclude === true) {
return;
}
(0, _get2.default)((0, _getPrototypeOf2.default)(RecordIndicator.prototype), "show", this).call(this);
}
}]);
return RecordIndicator;
}(Component);
Component.registerComponent('RecordIndicator', RecordIndicator);
var _default = RecordIndicator;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/controls/record-toggle.js":
/*!******************************************!*\
!*** ./src/js/controls/record-toggle.js ***!
\******************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "./node_modules/@babel/runtime/helpers/get.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
var _event = _interopRequireDefault(__webpack_require__(/*! ../event */ "./src/js/event.js"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Button = _video.default.getComponent('Button');
var Component = _video.default.getComponent('Component');
var RecordToggle = function (_Button) {
(0, _inherits2.default)(RecordToggle, _Button);
var _super = _createSuper(RecordToggle);
function RecordToggle() {
(0, _classCallCheck2.default)(this, RecordToggle);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(RecordToggle, [{
key: "buildCSSClass",
value: function buildCSSClass() {
return 'vjs-record-button vjs-control vjs-button vjs-icon-record-start';
}
}, {
key: "enable",
value: function enable() {
(0, _get2.default)((0, _getPrototypeOf2.default)(RecordToggle.prototype), "enable", this).call(this);
this.on(this.player_, _event.default.START_RECORD, this.onStart);
this.on(this.player_, _event.default.STOP_RECORD, this.onStop);
}
}, {
key: "disable",
value: function disable() {
(0, _get2.default)((0, _getPrototypeOf2.default)(RecordToggle.prototype), "disable", this).call(this);
this.off(this.player_, _event.default.START_RECORD, this.onStart);
this.off(this.player_, _event.default.STOP_RECORD, this.onStop);
}
}, {
key: "show",
value: function show() {
if (this.layoutExclude && this.layoutExclude === true) {
return;
}
(0, _get2.default)((0, _getPrototypeOf2.default)(RecordToggle.prototype), "show", this).call(this);
}
}, {
key: "handleClick",
value: function handleClick(event) {
var recorder = this.player_.record();
if (!recorder.isRecording()) {
recorder.start();
} else {
recorder.stop();
}
}
}, {
key: "onStart",
value: function onStart(event) {
this.removeClass('vjs-icon-record-start');
this.addClass('vjs-icon-record-stop');
this.controlText('Stop');
}
}, {
key: "onStop",
value: function onStop(event) {
this.removeClass('vjs-icon-record-stop');
this.addClass('vjs-icon-record-start');
this.controlText('Record');
}
}]);
return RecordToggle;
}(Button);
RecordToggle.prototype.controlText_ = 'Record';
Component.registerComponent('RecordToggle', RecordToggle);
var _default = RecordToggle;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/defaults.js":
/*!****************************!*\
!*** ./src/js/defaults.js ***!
\****************************/
/***/ ((module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.default = void 0;
var pluginDefaultOptions = {
image: false,
audio: false,
video: false,
animation: false,
screen: false,
maxLength: 10,
maxFileSize: 0,
displayMilliseconds: false,
formatTime: undefined,
frameWidth: 320,
frameHeight: 240,
debug: false,
pip: false,
autoMuteDevice: false,
videoBitRate: 1200,
videoEngine: 'recordrtc',
videoFrameRate: 30,
videoMimeType: 'video/webm',
videoRecorderType: 'auto',
videoWorkerURL: '',
videoWebAssemblyURL: '',
audioEngine: 'recordrtc',
audioRecorderType: 'auto',
audioMimeType: 'auto',
audioBufferSize: 4096,
audioSampleRate: 44100,
audioBitRate: 128,
audioChannels: 2,
audioWorkerURL: '',
audioWebAssemblyURL: '',
audioBufferUpdate: false,
animationFrameRate: 200,
animationQuality: 10,
imageOutputType: 'dataURL',
imageOutputFormat: 'image/png',
imageOutputQuality: 0.92,
timeSlice: 0,
convertEngine: '',
convertWorkerURL: '',
convertOptions: [],
hotKeys: false,
pluginLibraryOptions: {}
};
var _default = pluginDefaultOptions;
exports.default = _default;
module.exports = exports.default;
/***/ }),
/***/ "./src/js/engine/convert-engine.js":
/*!*****************************************!*\
!*** ./src/js/engine/convert-engine.js ***!
\*****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.FFMPEGWASM = exports.FFMPEGJS = exports.TSEBML = exports.CONVERT_PLUGINS = exports.ConvertEngine = void 0;
var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/classCallCheck.js"));
var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/createClass.js"));
var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/inherits.js"));
var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
var _fileUtil = __webpack_require__(/*! ../utils/file-util */ "./src/js/utils/file-util.js");
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var Component = _video.default.getComponent('Component');
var TSEBML = 'ts-ebml';
exports.TSEBML = TSEBML;
var FFMPEGJS = 'ffmpeg.js';
exports.FFMPEGJS = FFMPEGJS;
var FFMPEGWASM = 'ffmpeg.wasm';
exports.FFMPEGWASM = FFMPEGWASM;
var CONVERT_PLUGINS = [TSEBML, FFMPEGJS, FFMPEGWASM];
exports.CONVERT_PLUGINS = CONVERT_PLUGINS;
var ConvertEngine = function (_Component) {
(0, _inherits2.default)(ConvertEngine, _Component);
var _super = _createSuper(ConvertEngine);
function ConvertEngine(player, options) {
(0, _classCallCheck2.default)(this, ConvertEngine);
options.evented = true;
return _super.call(this, player, options);
}
(0, _createClass2.default)(ConvertEngine, [{
key: "setup",
value: function setup(mediaType, debug) {
this.mediaType = mediaType;
this.debug = debug;
}
}, {
key: "loadBlob",
value: function loadBlob(data) {
return (0, _fileUtil.blobToArrayBuffer)(data);
}
}, {
key: "addFileInfo",
value: function addFileInfo(fileObj, now) {
(0, _fileUtil.addFileInfo)(fileObj, now);
}
}, {
key: "saveAs",
value: function saveAs(name) {
var fileName = name[Object.keys(name)[0]];
(0, _fileUtil.downloadBlob)(fileName, this.player().convertedData);
}
}]);
return ConvertEngine;
}(Component);
exports.ConvertEngine = ConvertEngine;
_video.default.ConvertEngine = ConvertEngine;
Component.registerComponent('ConvertEngine', ConvertEngine);
/***/ }),
/***/ "./src/js/engine/engine-loader.js":
/*!****************************************!*\
!*** ./src/js/engine/engine-loader.js ***!
\****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports.getConvertEngine = exports.getVideoEngine = exports.isAudioPluginActive = exports.getAudioEngine = void 0;
var _video = _interopRequireDefault(__webpack_require__(/*! video.js */ "video.js"));
var _recordRtc = _interopRequireDefault(__webpack_require__(/*! ./record-rtc */ "./src/js/engine/record-rtc.js"));
var _convertEngine = __webpack_require__(/*! ./convert-engine */ "./src/js/engine/convert-engine.js");
var _recordEngine = __webpack_require__(/*! ./record-engine */ "./src/js/engine/record-engine.js");
var getAudioEngine = function getAudioEngine(audioEngine) {
var AudioEngineClass;
switch (audioEngine) {
case _recordEngine.RECORDRTC:
AudioEngineClass = _recordRtc.default;
break;
case _recordEngine.LIBVORBISJS:
AudioEngineClass = _video.default.LibVorbisEngine;
break;
case _recordEngine.RECORDERJS:
AudioEngineClass = _video.default.RecorderjsEngine;
break;
case _recordEngine.LAMEJS:
AudioEngineClass = _video.default.LamejsEngine;
break;
case _recordEngine.OPUSRECORDER:
AudioEngineClass = _video.default.OpusRecorderEngine;
break;
case _recordEngine.OPUSMEDIARECORDER:
AudioEngineClass = _video.default.OpusMediaRecorderEngine;
break;
case _recordEngine.VMSG:
AudioEngineClass = _video.default.VmsgEngine;
break;
default:
throw new Error('Unknown audioEngine: ' + audioEngine);
}
return AudioEngineClass;
};
exports.getAudioEngine = getAudioEngine;
var getVideoEngine = function getVideoEngine(videoEngine) {
var VideoEngineClass;
switch (videoEngine) {
case _recordEngine.RECORDRTC:
VideoEngineClass = _recordRtc.default;
break;
case _recordEngine.WEBMWASM:
VideoEngineClass = _video.default.WebmWasmEngine;
break;
default:
throw new Error('Unknown videoEngine: ' + videoEngine);
}
return VideoEngineClass;
};
exports.getVideoEngine = getVideoEngine;
var isAudioPluginActive = function isAudioPluginActive(audioEngine) {
return _recordEngine.AUDIO_PLUGINS.indexOf(audioEngine) > -1;
};
exports.isAudioPluginActive = isAudioPluginActive;
var getConvertEngine = function getConvertEngine(convertEngine) {
var ConvertEngineClass;
switch (convertEngine) {
case '':
break;
case _c