{"version":3,"sources":["plugins/editor.js"],"names":["Editor","$","NAME","DATA_KEY","JQUERY_NO_CONFLICT","fn","Default","focus","buttons","tableClassName","height","toolbar","Selector","CLASS_NAME","element","config","_config","_element","_$element","prop","summernote","next","children","addClass","on","content","_blur","$element","validate","closest","val","removeData","each","$this","data","extend","_jQueryInterface","call","document","ajaxStop","Constructor","noConflict","jQuery"],"mappings":"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","file":"editor.js","sourcesContent":["const Editor = (($) => {\r\n\r\n const NAME = 'editor';\r\n const DATA_KEY = `bs.${NAME}`;\r\n const JQUERY_NO_CONFLICT = $.fn[NAME];\r\n\r\n const Default = {\r\n focus: false,\r\n buttons: {},\r\n tableClassName: 'table table-xxs table-bordered',\r\n height: null,\r\n toolbar: [\r\n ['style', ['style']],\r\n ['font', ['bold', 'underline', 'clear']],\r\n ['fontname', ['fontname']],\r\n ['color', ['color']],\r\n ['para', ['ul', 'ol', 'paragraph']],\r\n ['insert', ['hr', 'table', 'link']],\r\n ['view', ['fullscreen', 'codeview', 'help']]\r\n ]\r\n \r\n };\r\n const Selector = {\r\n CLASS_NAME: `.js-${NAME}`\r\n }\r\n\r\n class Editor {\r\n constructor(element, config) {\r\n this._config = config;\r\n this._element = element;\r\n this._$element = $(this._element);\r\n if (this._$element.prop('readonly') || this._$element.prop('disabled')) {\r\n this._$element.summernote('disable');\r\n this._$element.next().children('.note-toolbar').addClass('hidden');\r\n }\r\n \r\n this._$element.on('summernote.blur', (content) => this._blur(content));\r\n\r\n }\r\n\r\n _blur(content) {\r\n const $element = $(this._element),\r\n validate = $element.closest('form').validate();\r\n\r\n if ($element.summernote('isEmpty')) {\r\n $element.val('');\r\n }\r\n validate.element($element);\r\n }\r\n\r\n dispose() {\r\n $.removeData(this._element, DATA_KEY);\r\n this._config = null;\r\n this._element = null;\r\n }\r\n \r\n static _jQueryInterface() {\r\n return this.each(function () {\r\n const $this = $(this);\r\n let data = $this.data(DATA_KEY);\r\n const config = $.extend({}, Default, $this.data());\r\n if (!data) {\r\n data = new Editor(this, config);\r\n $this.data(DATA_KEY, data).summernote(config);\r\n }\r\n });\r\n }\r\n }\r\n\r\n $(() => Editor._jQueryInterface.call($(Selector.CLASS_NAME)));\r\n $(document).ajaxStop(() => Editor._jQueryInterface.call($(Selector.CLASS_NAME)));\r\n\r\n $.fn[NAME] = Editor._jQueryInterface;\r\n $.fn[NAME].Constructor = Editor;\r\n $.fn[NAME].noConflict = function () {\r\n $.fn[NAME] = JQUERY_NO_CONFLICT;\r\n return Editor._jQueryInterface;\r\n }\r\n\r\n return Editor;\r\n})(jQuery);"]}