UNPKG

50.4 kBJavaScriptView Raw
1/* eslint-disable */
2!function(root, factory) {
3 "object" == typeof exports && "object" == typeof module ? module.exports = factory(require("react"), require("prop-types")) : "function" == typeof define && define.amd ? define([ "react", "prop-types" ], factory) : "object" == typeof exports ? exports.MB_REACT_TINYMCE = factory(require("react"), require("prop-types")) : root.MB_REACT_TINYMCE = factory(root.react, root["prop-types"]);
4}(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__) {
5 return function(modules) {
6 var installedModules = {};
7 function __webpack_require__(moduleId) {
8 if (installedModules[moduleId]) return installedModules[moduleId].exports;
9 var module = installedModules[moduleId] = {
10 i: moduleId,
11 l: !1,
12 exports: {}
13 };
14 modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
15 module.l = !0;
16 return module.exports;
17 }
18 __webpack_require__.m = modules;
19 __webpack_require__.c = installedModules;
20 __webpack_require__.d = function(exports, name, getter) {
21 __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {
22 configurable: !1,
23 enumerable: !0,
24 get: getter
25 });
26 };
27 __webpack_require__.n = function(module) {
28 var getter = module && module.__esModule ? function() {
29 return module.default;
30 } : function() {
31 return module;
32 };
33 __webpack_require__.d(getter, "a", getter);
34 return getter;
35 };
36 __webpack_require__.o = function(object, property) {
37 return Object.prototype.hasOwnProperty.call(object, property);
38 };
39 __webpack_require__.p = "";
40 return __webpack_require__(__webpack_require__.s = 2);
41 }([ function(module, exports) {
42 module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
43 }, function(module, exports) {
44 module.exports = __WEBPACK_EXTERNAL_MODULE_1__;
45 }, function(module, __webpack_exports__, __webpack_require__) {
46 "use strict";
47 Object.defineProperty(__webpack_exports__, "__esModule", {
48 value: !0
49 });
50 var locale_zh_CN_defaultExport = function() {
51 return {
52 "TinyMCE:fontSize": function(d) {
53 return "字号";
54 },
55 "TinyMCE:bold": function(d) {
56 return "粗体";
57 },
58 "TinyMCE:italic": function(d) {
59 return "斜体";
60 },
61 "TinyMCE:underline": function(d) {
62 return "下划线";
63 },
64 "TinyMCE:strikeThrough": function(d) {
65 return "中划线";
66 },
67 "TinyMCE:foreColor": function(d) {
68 return "文字颜色";
69 },
70 "TinyMCE:alignment": function(d) {
71 return "水平对齐";
72 },
73 "TinyMCE:insertUnorderedList": function(d) {
74 return "项目符号";
75 },
76 "TinyMCE:insertOrderedList": function(d) {
77 return "编号";
78 },
79 "TinyMCE:insertTable": function(d) {
80 return "表格";
81 },
82 "TinyMCE:insertLink": function(d) {
83 return "超链接";
84 },
85 "TinyMCE:insertImage": function(d) {
86 return "图片";
87 },
88 "TinyMCE:alert:upload-error": function(d) {
89 return "未能成功上传至服务器";
90 },
91 "TinyMCE:pending:image-upload": function(d) {
92 return "正在上传图片";
93 },
94 default: function(d) {
95 return "文本缺失";
96 }
97 };
98 }();
99 var locale_en_US_defaultExport = function() {
100 return {
101 "TinyMCE:fontSize": function(d) {
102 return "Font Size";
103 },
104 "TinyMCE:bold": function(d) {
105 return "Bold";
106 },
107 "TinyMCE:italic": function(d) {
108 return "Italic";
109 },
110 "TinyMCE:underline": function(d) {
111 return "Underline";
112 },
113 "TinyMCE:strikeThrough": function(d) {
114 return "Strike Through";
115 },
116 "TinyMCE:foreColor": function(d) {
117 return "Text Color";
118 },
119 "TinyMCE:alignment": function(d) {
120 return "Alignment";
121 },
122 "TinyMCE:insertUnorderedList": function(d) {
123 return "Bulleted List";
124 },
125 "TinyMCE:insertOrderedList": function(d) {
126 return "Numbered List";
127 },
128 "TinyMCE:insertTable": function(d) {
129 return "Insert Table";
130 },
131 "TinyMCE:insertLink": function(d) {
132 return "Insert Link";
133 },
134 "TinyMCE:insertImage": function(d) {
135 return "Insert Image";
136 },
137 "TinyMCE:alert:upload-error": function(d) {
138 return "Failed to upload to server";
139 },
140 "TinyMCE:pending:image-upload": function(d) {
141 return "Uploading Image";
142 },
143 default: function(d) {
144 return "Translation Missing";
145 }
146 };
147 }();
148 var localeList = [ "zh_CN", "en_US" ];
149 var translation_defaultExport = {
150 zh_CN: locale_zh_CN_defaultExport,
151 en_US: locale_en_US_defaultExport,
152 localeList: localeList
153 };
154 var LOCALE_LIST = translation_defaultExport.localeList;
155 var DEFAULT_LOCALE = LOCALE_LIST[0];
156 var TRANSLATION_DATA = {
157 locale: "",
158 missingDefaultKey: "default",
159 translation: function(key, variables) {
160 return "TRANSLATION_DATA-" + key + "-" + variables;
161 }
162 };
163 var TRANSLATE = function(key, variables) {
164 return TRANSLATION_DATA.translation(key, variables) || TRANSLATION_DATA.translation(TRANSLATION_DATA.missingDefaultKey) + " = " + key;
165 };
166 var GET_LOCALE = function() {
167 return TRANSLATION_DATA.locale;
168 };
169 var Locale_SET_LOCALE = function() {
170 var locale = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : DEFAULT_LOCALE;
171 if (TRANSLATION_DATA.locale !== locale) {
172 locale = locale.toLowerCase().replace("-", "_").split("_")[0];
173 locale = LOCALE_LIST.find(function(v) {
174 return v.includes(locale);
175 }) || LOCALE_LIST.find(function(v) {
176 return locale.includes(v);
177 }) || DEFAULT_LOCALE;
178 var translateLocale = translation_defaultExport[locale];
179 if (!translateLocale) throw new Error("[SET_LOCALE] error locale: " + locale + ", LOCALE_LIST: " + LOCALE_LIST);
180 TRANSLATION_DATA.locale = locale;
181 TRANSLATION_DATA.translation = function(key, variables) {
182 return translateLocale[key] && translateLocale[key](variables);
183 };
184 }
185 };
186 var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
187 var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
188 var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
189 var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
190 var ICON_NAME_MAP = {
191 bold: "icon-t-bold",
192 italic: "icon-t-italic",
193 underline: "icon-t-underline",
194 strikeThrough: "icon-t-strikethrough",
195 foreColor: "icon-font",
196 justifyLeft: "icon-t-align-left",
197 justifyCenter: "icon-t-align-center",
198 justifyRight: "icon-t-align-right",
199 insertOrderedList: "icon-t-ol",
200 insertUnorderedList: "icon-t-ul",
201 insertTable: "icon-t-table",
202 insertLink: "icon-mobile-copy-link",
203 insertImage: "icon-img",
204 "arrow-down": "icon-tri-arrow-down",
205 DEFAULT: "icon-question"
206 };
207 var MockingBotIcon = function(_ref) {
208 var name = _ref.name, className = _ref.className;
209 return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("i", {
210 className: (ICON_NAME_MAP[name] || ICON_NAME_MAP.DEFAULT) + " " + (className || "")
211 });
212 };
213 MockingBotIcon.propTypes = {
214 name: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string.isRequired,
215 className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string
216 };
217 function getRandomId() {
218 return "" + (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "") + Date.now().toString(36) + "-" + Math.random().toString(36).substr(2, 10);
219 }
220 var _extends = Object.assign || function(target) {
221 for (var i = 1; i < arguments.length; i++) {
222 var source = arguments[i];
223 for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
224 }
225 return target;
226 };
227 var TINY_MCE = window.tinyMCE || window.tinymce;
228 var CREATE_TINY_MCE_EDITOR = function(config) {
229 "en_US" === config.language && delete config.language;
230 TINY_MCE.init(config);
231 };
232 var REMOVE_TINY_MCE_EDITOR = function(editor) {
233 return TINY_MCE.EditorManager.remove(editor);
234 };
235 var EDITOR_CONFIG = {
236 plugins: "paste link image lists table textcolor colorpicker",
237 toolbar: "table link image",
238 menubar: !1,
239 inline: !0,
240 image_advtab: !0,
241 custom_undo_redo_levels: 30,
242 insert_button_items: "inserttable link image",
243 default_link_target: "_blank",
244 fixed_toolbar_container: ".TINY_MCE_FIXED_TOOLBAR"
245 };
246 var TINY_MCE_TOOLBAR_COMPONENT = null;
247 var SET_TINY_MCE_TOOLBAR_COMPONENT = function(component) {
248 return TINY_MCE_TOOLBAR_COMPONENT = component;
249 };
250 var DEFAULT_EDITOR_STATE = {
251 value: "",
252 getLockedValue: function() {
253 return null;
254 },
255 isValid: function() {
256 return !1;
257 },
258 setInvalid: function() {}
259 };
260 function reducerCreateEditor(editorState, _ref) {
261 var domElement = _ref.domElement, language = _ref.language, _ref$onBlur = _ref.onBlur, onBlur = void 0 === _ref$onBlur ? null : _ref$onBlur;
262 editorState.isValid() && reducerRemoveEditor(editorState);
263 var _getValueLock = getValueLock(), getLockedValue = _getValueLock.getLockedValue, setLockedValue = _getValueLock.setLockedValue, isValid = _getValueLock.isValid, setInvalid = _getValueLock.setInvalid;
264 CREATE_TINY_MCE_EDITOR(_extends({}, EDITOR_CONFIG, {
265 language: language,
266 target: domElement,
267 setup: function(editor) {
268 editor.on("init", function() {
269 editor.setContent(editorState.value);
270 editor.selection.select(editor.getBody(), !0);
271 editor.focus();
272 });
273 editor.on("focus", function() {
274 return TINY_MCE_TOOLBAR_COMPONENT.activateEditor();
275 });
276 editor.on("nodeChange", function() {
277 return TINY_MCE_TOOLBAR_COMPONENT.updateEditorState();
278 });
279 editor.on("blur", function(event) {
280 TINY_MCE_TOOLBAR_COMPONENT.deactivateEditor();
281 onBlur && setTimeout(function() {
282 return onBlur(event);
283 }, 0);
284 });
285 isValid() ? setLockedValue(editor) : REMOVE_TINY_MCE_EDITOR(editor);
286 }
287 }));
288 return _extends({}, editorState, {
289 getLockedValue: getLockedValue,
290 isValid: isValid,
291 setInvalid: setInvalid
292 });
293 }
294 function reducerRemoveEditor(editorState) {
295 if (!editorState.isValid()) return editorState;
296 editorState.setInvalid();
297 var editor = editorState.getLockedValue();
298 if (!editor) return editorState;
299 var value = editor.getContent();
300 REMOVE_TINY_MCE_EDITOR(editor);
301 return _extends({}, editorState, DEFAULT_EDITOR_STATE, {
302 value: value
303 });
304 }
305 function getValueLock() {
306 var valid = !0;
307 var lockedValue = null;
308 return {
309 getLockedValue: function() {
310 return lockedValue;
311 },
312 setLockedValue: function(value) {
313 return lockedValue = value;
314 },
315 isValid: function() {
316 return valid;
317 },
318 setInvalid: function() {
319 return valid = !1;
320 }
321 };
322 }
323 var TinyMCEComponent___WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
324 var TinyMCEComponent___WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(TinyMCEComponent___WEBPACK_IMPORTED_MODULE_0_react__);
325 var TinyMCEComponent___WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
326 var TinyMCEComponent___WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(TinyMCEComponent___WEBPACK_IMPORTED_MODULE_1_prop_types__);
327 var __WEBPACK_IMPORTED_MODULE_4__tiny_mce_component_pcss__ = __webpack_require__(3);
328 __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__tiny_mce_component_pcss__);
329 var TinyMCEComponent__extends = Object.assign || function(target) {
330 for (var i = 1; i < arguments.length; i++) {
331 var source = arguments[i];
332 for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
333 }
334 return target;
335 };
336 var _createClass = function() {
337 function defineProperties(target, props) {
338 for (var i = 0; i < props.length; i++) {
339 var descriptor = props[i];
340 descriptor.enumerable = descriptor.enumerable || !1;
341 descriptor.configurable = !0;
342 "value" in descriptor && (descriptor.writable = !0);
343 Object.defineProperty(target, descriptor.key, descriptor);
344 }
345 }
346 return function(Constructor, protoProps, staticProps) {
347 protoProps && defineProperties(Constructor.prototype, protoProps);
348 staticProps && defineProperties(Constructor, staticProps);
349 return Constructor;
350 };
351 }();
352 function _classCallCheck(instance, Constructor) {
353 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
354 }
355 function _possibleConstructorReturn(self, call) {
356 if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
357 return !call || "object" != typeof call && "function" != typeof call ? self : call;
358 }
359 function _inherits(subClass, superClass) {
360 if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
361 subClass.prototype = Object.create(superClass && superClass.prototype, {
362 constructor: {
363 value: subClass,
364 enumerable: !1,
365 writable: !0,
366 configurable: !0
367 }
368 });
369 superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass);
370 }
371 var TinyMCEComponent_TinyMCEComponent = function(_PureComponent) {
372 _inherits(TinyMCEComponent, _PureComponent);
373 function TinyMCEComponent(props) {
374 _classCallCheck(this, TinyMCEComponent);
375 var _this = _possibleConstructorReturn(this, (TinyMCEComponent.__proto__ || Object.getPrototypeOf(TinyMCEComponent)).call(this, props));
376 _this.editorState = TinyMCEComponent__extends({}, DEFAULT_EDITOR_STATE, {
377 editorId: getRandomId()
378 });
379 _this.setElementRef = function(ref) {
380 return _this.divElement = ref;
381 };
382 _this.divElement = null;
383 return _this;
384 }
385 _createClass(TinyMCEComponent, [ {
386 key: "doCreateEditor",
387 value: function() {
388 this.editorState = TinyMCEComponent__extends({}, this.editorState, {
389 value: this.props.value
390 });
391 this.editorState = reducerCreateEditor(this.editorState, {
392 domElement: this.divElement,
393 language: this.props.locale
394 });
395 }
396 }, {
397 key: "doRemoveEditor",
398 value: function() {
399 if (this.editorState.isValid()) {
400 this.editorState = reducerRemoveEditor(this.editorState);
401 this.props.onEditEnd(this.editorState.value);
402 }
403 }
404 }, {
405 key: "componentDidMount",
406 value: function() {
407 this.props.isActive && this.doCreateEditor();
408 }
409 }, {
410 key: "componentWillUnmount",
411 value: function() {
412 this.doRemoveEditor();
413 }
414 }, {
415 key: "componentDidUpdate",
416 value: function() {
417 this.props.isActive !== this.editorState.isValid() && (this.props.isActive ? this.doCreateEditor() : this.doRemoveEditor());
418 }
419 }, {
420 key: "render",
421 value: function() {
422 var value = this.props.value;
423 return TinyMCEComponent___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
424 id: this.editorState.editorId,
425 ref: this.setElementRef,
426 className: "tiny-mce-content",
427 dangerouslySetInnerHTML: {
428 __html: value
429 }
430 });
431 }
432 } ]);
433 return TinyMCEComponent;
434 }(TinyMCEComponent___WEBPACK_IMPORTED_MODULE_0_react__.PureComponent);
435 TinyMCEComponent_TinyMCEComponent.propTypes = {
436 isActive: TinyMCEComponent___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,
437 value: TinyMCEComponent___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,
438 onEditEnd: TinyMCEComponent___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,
439 locale: TinyMCEComponent___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string
440 };
441 var editor_item___WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
442 var editor_item___WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(editor_item___WEBPACK_IMPORTED_MODULE_0_react__);
443 var editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
444 var editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types__);
445 var __WEBPACK_IMPORTED_MODULE_2__editor_item_pcss__ = __webpack_require__(5);
446 __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__editor_item_pcss__);
447 var editor_item__createClass = function() {
448 function defineProperties(target, props) {
449 for (var i = 0; i < props.length; i++) {
450 var descriptor = props[i];
451 descriptor.enumerable = descriptor.enumerable || !1;
452 descriptor.configurable = !0;
453 "value" in descriptor && (descriptor.writable = !0);
454 Object.defineProperty(target, descriptor.key, descriptor);
455 }
456 }
457 return function(Constructor, protoProps, staticProps) {
458 protoProps && defineProperties(Constructor.prototype, protoProps);
459 staticProps && defineProperties(Constructor, staticProps);
460 return Constructor;
461 };
462 }();
463 function editor_item__classCallCheck(instance, Constructor) {
464 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
465 }
466 function editor_item__possibleConstructorReturn(self, call) {
467 if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
468 return !call || "object" != typeof call && "function" != typeof call ? self : call;
469 }
470 function editor_item__inherits(subClass, superClass) {
471 if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
472 subClass.prototype = Object.create(superClass && superClass.prototype, {
473 constructor: {
474 value: subClass,
475 enumerable: !1,
476 writable: !0,
477 configurable: !0
478 }
479 });
480 superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass);
481 }
482 var getOptionDisplay = function(opt) {
483 return opt.item || opt.val || opt;
484 };
485 var editor_item_Select = function(_PureComponent) {
486 editor_item__inherits(Select, _PureComponent);
487 function Select(props) {
488 editor_item__classCallCheck(this, Select);
489 var _this = editor_item__possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));
490 _this.onToggle = function() {
491 return _this.setState(function(prevState) {
492 return {
493 isOpen: !prevState.isOpen
494 };
495 });
496 };
497 _this.state = {
498 isOpen: !1
499 };
500 return _this;
501 }
502 editor_item__createClass(Select, [ {
503 key: "componentDidMount",
504 value: function() {
505 var _this2 = this;
506 var $elmt = this.refs.$elmt;
507 Object.assign(this, {
508 closeListOnClickOutside: function(_ref) {
509 var target = _ref.target;
510 return _this2.state.isOpen && !$elmt.contains(target) && _this2.setState({
511 isOpen: !1
512 });
513 }
514 });
515 document.addEventListener("click", this.closeListOnClickOutside);
516 }
517 }, {
518 key: "ComponentWillUnmount",
519 value: function() {
520 document.removeEventListener("click", this.closeListOnClickOutside);
521 }
522 }, {
523 key: "render",
524 value: function() {
525 var _props = this.props, className = _props.className, optionList = _props.optionList, currentOptionIdx = _props.currentOptionIdx, createOnSelectHandler = _props.createOnSelectHandler, _props$currentOption = _props.currentOption, currentOption = void 0 === _props$currentOption ? optionList["function" == typeof currentOptionIdx ? currentOptionIdx(this.props) : currentOptionIdx] : _props$currentOption, getListItem = _props.getListItem, dataTooltipContent = _props.dataTooltipContent;
526 var isOpen = this.state.isOpen;
527 var hiddenProp = isOpen ? {} : {
528 hidden: !0
529 };
530 return editor_item___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
531 ref: "$elmt",
532 className: "editor-select " + className + " " + (isOpen ? "is-open" : "is-close")
533 }, editor_item___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("button", {
534 onClick: this.onToggle,
535 className: "tooltip-top",
536 "data-tooltip-content": dataTooltipContent
537 }, getOptionDisplay(currentOption), editor_item___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
538 name: "arrow-down",
539 className: "caret"
540 })), editor_item___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("ul", hiddenProp, optionList.map(function(opt, idx) {
541 return editor_item___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("li", {
542 key: idx,
543 onClick: createOnSelectHandler(opt)
544 }, editor_item___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("button", null, getListItem(opt) || getOptionDisplay(opt)));
545 })));
546 }
547 } ]);
548 return Select;
549 }(editor_item___WEBPACK_IMPORTED_MODULE_0_react__.PureComponent);
550 editor_item_Select.propTypes = {
551 className: editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,
552 optionList: editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.array.isRequired,
553 currentOption: editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.any,
554 currentOptionIdx: editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([ editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.number, editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func ]),
555 getListItem: editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,
556 createOnSelectHandler: editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,
557 dataTooltipContent: editor_item___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string
558 };
559 editor_item_Select.defaultProps = {
560 className: "",
561 currentOptionIdx: 0,
562 getListItem: function() {
563 return null;
564 },
565 createOnSelectHandler: function() {
566 return function() {
567 return null;
568 };
569 }
570 };
571 var EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);
572 var EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react__);
573 var EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(1);
574 var EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types__);
575 var __WEBPACK_IMPORTED_MODULE_2__editor_toolbar_pcss__ = __webpack_require__(4);
576 __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__editor_toolbar_pcss__);
577 var _slicedToArray = function() {
578 function sliceIterator(arr, i) {
579 var _arr = [];
580 var _n = !0;
581 var _d = !1;
582 var _e = void 0;
583 try {
584 for (var _s, _i = arr[Symbol.iterator](); !(_n = (_s = _i.next()).done); _n = !0) {
585 _arr.push(_s.value);
586 if (i && _arr.length === i) break;
587 }
588 } catch (err) {
589 _d = !0;
590 _e = err;
591 } finally {
592 try {
593 !_n && _i.return && _i.return();
594 } finally {
595 if (_d) throw _e;
596 }
597 }
598 return _arr;
599 }
600 return function(arr, i) {
601 if (Array.isArray(arr)) return arr;
602 if (Symbol.iterator in Object(arr)) return sliceIterator(arr, i);
603 throw new TypeError("Invalid attempt to destructure non-iterable instance");
604 };
605 }();
606 var EditorToolbar__createClass = function() {
607 function defineProperties(target, props) {
608 for (var i = 0; i < props.length; i++) {
609 var descriptor = props[i];
610 descriptor.enumerable = descriptor.enumerable || !1;
611 descriptor.configurable = !0;
612 "value" in descriptor && (descriptor.writable = !0);
613 Object.defineProperty(target, descriptor.key, descriptor);
614 }
615 }
616 return function(Constructor, protoProps, staticProps) {
617 protoProps && defineProperties(Constructor.prototype, protoProps);
618 staticProps && defineProperties(Constructor, staticProps);
619 return Constructor;
620 };
621 }();
622 function EditorToolbar__classCallCheck(instance, Constructor) {
623 if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
624 }
625 function EditorToolbar__possibleConstructorReturn(self, call) {
626 if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
627 return !call || "object" != typeof call && "function" != typeof call ? self : call;
628 }
629 function EditorToolbar__inherits(subClass, superClass) {
630 if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
631 subClass.prototype = Object.create(superClass && superClass.prototype, {
632 constructor: {
633 value: subClass,
634 enumerable: !1,
635 writable: !0,
636 configurable: !0
637 }
638 });
639 superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass);
640 }
641 function _toConsumableArray(arr) {
642 if (Array.isArray(arr)) {
643 for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
644 return arr2;
645 }
646 return Array.from(arr);
647 }
648 function $(selector) {
649 return (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : document).querySelector(selector);
650 }
651 function $$(selector) {
652 return [].concat(_toConsumableArray((arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : document).querySelectorAll(selector)));
653 }
654 function hide($elmt) {
655 return Object.assign($elmt.style, {
656 display: "none"
657 });
658 }
659 function show($elmt) {
660 return Object.assign($elmt.style, {
661 display: "initial"
662 });
663 }
664 var EDITOR_TOOLBAR_LIST = [ "fontSize", "bold", "italic", "underline", "strikeThrough", "foreColor", "alignment", "insertUnorderedList", "insertOrderedList", "insertTable", "insertLink", "insertImage" ];
665 var EDITOR_COLOR_LIST = [ "#000", "#9B9B9B", "#4A4A4A", "#417505", "#B8E986", "#7ED321", "#FF001F", "#8B572A", "#F6A623", "#F8E71C", "#BD0FE1", "#9013FE", "#4990E2", "#50E3C2" ];
666 var EDITOR_ALIGNMENT_LIST = [ {
667 val: "justifyLeft",
668 item: EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
669 name: "justifyLeft"
670 })
671 }, {
672 val: "justifyCenter",
673 item: EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
674 name: "justifyCenter"
675 })
676 }, {
677 val: "justifyRight",
678 item: EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
679 name: "justifyRight"
680 })
681 } ];
682 var EDITOR_TOOLBAR_MAP = {
683 fontSize: function(_ref) {
684 var _fontSize = _ref.state.editor.fontSize;
685 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(editor_item_Select, {
686 key: "fontSize",
687 className: "font-size-picker",
688 optionList: [ 12, 14, 16, 18, 20, 22, 24 ],
689 createOnSelectHandler: function(fontSize) {
690 return function() {
691 return tinyMCE.execCommand("fontSize", !0, fontSize + "px");
692 };
693 },
694 getListItem: function(fontSize) {
695 return fontSize + "px";
696 },
697 currentOption: EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
698 className: "font-size-indicator"
699 }, /px$/i.test(_fontSize) ? _fontSize : _fontSize + "px"),
700 dataTooltipContent: TRANSLATE("TinyMCE:fontSize")
701 });
702 },
703 foreColor: function(_ref2) {
704 var _foreColor = _ref2.state.editor.foreColor;
705 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(editor_item_Select, {
706 key: "foreColor",
707 className: "color-picker",
708 optionList: EDITOR_COLOR_LIST,
709 createOnSelectHandler: function(color) {
710 return function() {
711 return tinyMCE.execCommand("foreColor", !0, color);
712 };
713 },
714 currentOption: EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
715 className: "foreColor"
716 }, EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
717 name: "foreColor"
718 }), EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
719 className: "fore-color-indicator",
720 style: {
721 background: _foreColor
722 }
723 })),
724 getListItem: function(color) {
725 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
726 className: "color-item",
727 style: {
728 background: color
729 }
730 });
731 },
732 dataTooltipContent: TRANSLATE("TinyMCE:foreColor")
733 });
734 },
735 alignment: function(_ref3) {
736 var _alignment = _ref3.state.editor.alignment;
737 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(editor_item_Select, {
738 key: "alignment",
739 className: "alignment",
740 optionList: EDITOR_ALIGNMENT_LIST,
741 currentOptionIdx: Math.max(0, EDITOR_ALIGNMENT_LIST.findIndex(function(_ref4) {
742 return _ref4.val === _alignment;
743 })),
744 createOnSelectHandler: function(_ref5) {
745 var val = _ref5.val;
746 return function() {
747 return tinyMCE.execCommand(val, !0);
748 };
749 },
750 dataTooltipContent: TRANSLATE("TinyMCE:alignment")
751 });
752 },
753 insertTable: function(toolbar) {
754 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("button", {
755 key: "insertTable",
756 className: "tooltip-top",
757 onClick: toolbar.onCreateTable,
758 "data-tooltip-content": TRANSLATE("TinyMCE:insertTable")
759 }, EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
760 name: "insertTable"
761 }));
762 },
763 insertLink: function(toolbar) {
764 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("button", {
765 key: "insertLink",
766 className: "tooltip-top",
767 onClick: toolbar.onCreateLink,
768 "data-tooltip-content": TRANSLATE("TinyMCE:insertLink")
769 }, EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
770 name: "insertLink"
771 }));
772 },
773 insertImage: function(toolbar) {
774 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("button", {
775 key: "insertImage",
776 className: "tooltip-top",
777 onClick: toolbar.onClickUploadBtn,
778 "data-tooltip-content": TRANSLATE("TinyMCE:insertImage")
779 }, EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
780 name: "insertImage"
781 }));
782 }
783 };
784 var EditorToolbar_EditorToolbar = function(_PureComponent) {
785 EditorToolbar__inherits(EditorToolbar, _PureComponent);
786 function EditorToolbar(props) {
787 EditorToolbar__classCallCheck(this, EditorToolbar);
788 var _this = EditorToolbar__possibleConstructorReturn(this, (EditorToolbar.__proto__ || Object.getPrototypeOf(EditorToolbar)).call(this, props));
789 _this.onFocus = function() {
790 return _this.setState({
791 isFocused: !0
792 });
793 };
794 _this.onBlur = function() {
795 return _this.setState({
796 isFocused: !1,
797 isEditorActivated: !!tinyMCE.activeEditor
798 });
799 };
800 _this.activateEditor = function() {
801 return _this.setState({
802 isEditorActivated: !0
803 });
804 };
805 _this.deactivateEditor = function() {
806 return _this.setState({
807 isEditorActivated: _this.state.isFocused
808 });
809 };
810 _this.setFontSize = function(fontSize) {
811 return tinyMCE.execCommand("fontSize", !0, fontSize + "px");
812 };
813 _this.createExecCommandToggler = function(style) {
814 return function() {
815 return tinyMCE.execCommand(style, !0);
816 };
817 };
818 _this.onCreateTable = function(_ref6) {
819 var currentTarget = _ref6.currentTarget;
820 var $tableBtn = $(".TINY_MCE_FIXED_TOOLBAR button");
821 if ($tableBtn) {
822 $tableBtn.click();
823 var $tableCreateBtn = $('body > .mce-menu [role="menuitem"]');
824 if ($tableCreateBtn) {
825 $tableCreateBtn.click();
826 var _$$ = $$('body > .mce-menu[role="application"]'), _$$2 = _slicedToArray(_$$, 2), $tableMenu = _$$2[0], $tableCreateMenu = _$$2[1];
827 var $tableCreator = currentTarget;
828 hide($tableMenu);
829 hide($tableCreateMenu);
830 setTimeout(function() {
831 show($tableCreateMenu);
832 $("table.mce-grid a.mce-active").classList.remove("mce-active");
833 $("table.mce-grid td:last-child a").classList.add("mce-active");
834 }, 200);
835 $tableCreateMenu.addEventListener("click", function() {
836 return hide($tableCreateMenu);
837 });
838 var _$tableCreator$getBou = $tableCreator.getBoundingClientRect(), top = _$tableCreator$getBou.top, left = _$tableCreator$getBou.left, height = _$tableCreator$getBou.height;
839 Object.assign($tableCreateMenu.style, {
840 top: top + height + "px",
841 left: left - 150 + "px",
842 marginTop: 0
843 });
844 }
845 }
846 };
847 _this.onCreateLink = function() {
848 var $linkCreateBtn = $$(".TINY_MCE_FIXED_TOOLBAR button")[1];
849 $linkCreateBtn && $linkCreateBtn.click();
850 };
851 _this.onClickUploadBtn = function() {
852 if (_this.state.isEditorActivated && _this.elementRef) {
853 var inputFileElement = _this.elementRef;
854 var _this$props = _this.props, showPendingModal = _this$props.showPendingModal, showAlertModal = _this$props.showAlertModal, uploadSingleAsset = _this$props.uploadSingleAsset;
855 var onFileSelectEvent = function onFileSelectEvent() {
856 inputFileElement.removeEventListener("change", onFileSelectEvent);
857 var imageFile = inputFileElement.files[0];
858 inputFileElement.value = "";
859 var pendingPromise = uploadSingleAsset(imageFile).then(function(_ref7) {
860 var image = _ref7.image, width = _ref7.width;
861 tinyMCE.activeEditor.insertContent("<img src=" + image + ' width="' + Math.min(width, 500) + '" />');
862 }).catch(function(error) {
863 return showAlertModal({
864 title: TRANSLATE("TinyMCE:alert:upload-error"),
865 message: error.message
866 });
867 });
868 showPendingModal({
869 title: TRANSLATE("TinyMCE:pending:image-upload"),
870 pendingPromise: pendingPromise
871 });
872 };
873 inputFileElement.addEventListener("change", onFileSelectEvent);
874 inputFileElement.click();
875 }
876 };
877 _this.setElementRef = function(ref) {
878 return _this.elementRef = ref;
879 };
880 _this.elementRef = null;
881 _this.state = {
882 isEditorActivated: !1,
883 isFocused: !1,
884 isTableMenuOpen: !1,
885 editor: {
886 fontSize: 12,
887 bold: !1,
888 italic: !1,
889 underline: !1,
890 strikeThrough: !1,
891 foreColor: "#000",
892 alignment: "left",
893 insertOrderedList: !1,
894 insertUnorderedList: !1
895 }
896 };
897 return _this;
898 }
899 EditorToolbar__createClass(EditorToolbar, [ {
900 key: "componentDidMount",
901 value: function() {
902 SET_TINY_MCE_TOOLBAR_COMPONENT(this);
903 }
904 }, {
905 key: "updateEditorState",
906 value: function() {
907 var editor = tinyMCE.activeEditor;
908 editor && this.setState({
909 editor: {
910 fontSize: editor.queryCommandValue("fontSize") || 12,
911 bold: editor.queryCommandState("bold"),
912 italic: editor.queryCommandState("italic"),
913 underline: editor.queryCommandState("underline"),
914 strikeThrough: editor.queryCommandState("strikeThrough"),
915 foreColor: editor.queryCommandValue("foreColor"),
916 insertOrderedList: editor.queryCommandState("insertOrderedList"),
917 insertUnorderedList: editor.queryCommandState("insertUnorderedList"),
918 alignment: "true" === editor.queryCommandValue("justifyLeft") ? "justifyLeft" : "true" === editor.queryCommandValue("justifyCenter") ? "justifyCenter" : "true" === editor.queryCommandValue("justifyRight") ? "justifyRight" : "justifyFull"
919 }
920 });
921 }
922 }, {
923 key: "render",
924 value: function() {
925 var _this2 = this;
926 var _props = this.props, isLock = _props.isLock, className = _props.className;
927 var _state = this.state, isEditorActivated = _state.isEditorActivated, editor = _state.editor;
928 return EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
929 className: "tinymce-editor-toolbar " + className + " " + (!isLock && isEditorActivated ? "is-activated" : "isnt-activated tooltip-lock"),
930 onFocus: this.onFocus,
931 onBlur: this.onBlur
932 }, EDITOR_TOOLBAR_LIST.map(function(it) {
933 return EDITOR_TOOLBAR_MAP[it] ? EDITOR_TOOLBAR_MAP[it](_this2) : EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("button", {
934 key: it,
935 className: it + " " + (editor[it] ? "is-active" : "") + " tooltip-top",
936 "data-tooltip-content": TRANSLATE("TinyMCE:" + it),
937 onClick: _this2.createExecCommandToggler(it)
938 }, EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(MockingBotIcon, {
939 name: it
940 }));
941 }), EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("div", {
942 className: "TINY_MCE_FIXED_TOOLBAR"
943 }), EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("input", {
944 hidden: !0,
945 type: "file",
946 accept: "image/png,image/jpeg,image/gif",
947 ref: this.setElementRef
948 }));
949 }
950 } ]);
951 return EditorToolbar;
952 }(EditorToolbar___WEBPACK_IMPORTED_MODULE_0_react__.PureComponent);
953 EditorToolbar_EditorToolbar.propTypes = {
954 isLock: EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,
955 className: EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,
956 showAlertModal: EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,
957 showPendingModal: EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,
958 uploadSingleAsset: EditorToolbar___WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired
959 };
960 var EditorToolbar_defaultExport = EditorToolbar_EditorToolbar;
961 __webpack_require__.d(__webpack_exports__, "TinyMCEComponent", function() {
962 return TinyMCEComponent_TinyMCEComponent;
963 });
964 __webpack_require__.d(__webpack_exports__, "EditorToolbar", function() {
965 return EditorToolbar_defaultExport;
966 });
967 __webpack_require__.d(__webpack_exports__, "LOCALE_LIST", function() {
968 return LOCALE_LIST;
969 });
970 __webpack_require__.d(__webpack_exports__, "GET_LOCALE", function() {
971 return GET_LOCALE;
972 });
973 __webpack_require__.d(__webpack_exports__, "SET_LOCALE", function() {
974 return Locale_SET_LOCALE;
975 });
976 }, function(module, exports) {}, function(module, exports) {}, function(module, exports) {} ]);
977});
\No newline at end of file